Mercurial > hg > truffle
comparison src/cpu/sparc/vm/sparc.ad @ 6143:8b0a4867acf0
7174218: remove AtomicLongCSImpl intrinsics
Reviewed-by: kvn, twisti
Contributed-by: Krystal Mok <sajia@taobao.com>
author | twisti |
---|---|
date | Tue, 12 Jun 2012 14:31:44 -0700 |
parents | 61b82be3b1ff |
children | 8c92982cbbc4 |
comparison
equal
deleted
inserted
replaced
6142:121e5708ae96 | 6143:8b0a4867acf0 |
---|---|
825 | 825 |
826 if (ld_op) { | 826 if (ld_op) { |
827 // a Load | 827 // a Load |
828 // inputs are (0:control, 1:memory, 2:address) | 828 // inputs are (0:control, 1:memory, 2:address) |
829 if (!(n->ideal_Opcode()==ld_op) && // Following are special cases | 829 if (!(n->ideal_Opcode()==ld_op) && // Following are special cases |
830 !(n->ideal_Opcode()==Op_LoadLLocked && ld_op==Op_LoadI) && | |
831 !(n->ideal_Opcode()==Op_LoadPLocked && ld_op==Op_LoadP) && | 830 !(n->ideal_Opcode()==Op_LoadPLocked && ld_op==Op_LoadP) && |
832 !(n->ideal_Opcode()==Op_LoadI && ld_op==Op_LoadF) && | 831 !(n->ideal_Opcode()==Op_LoadI && ld_op==Op_LoadF) && |
833 !(n->ideal_Opcode()==Op_LoadF && ld_op==Op_LoadI) && | 832 !(n->ideal_Opcode()==Op_LoadF && ld_op==Op_LoadI) && |
834 !(n->ideal_Opcode()==Op_LoadRange && ld_op==Op_LoadI) && | 833 !(n->ideal_Opcode()==Op_LoadRange && ld_op==Op_LoadI) && |
835 !(n->ideal_Opcode()==Op_LoadKlass && ld_op==Op_LoadP) && | 834 !(n->ideal_Opcode()==Op_LoadKlass && ld_op==Op_LoadP) && |
7301 #else | 7300 #else |
7302 format %{ "LDX $mem,$dst\t! ptr" %} | 7301 format %{ "LDX $mem,$dst\t! ptr" %} |
7303 opcode(Assembler::ldx_op3, 0, REGP_OP); | 7302 opcode(Assembler::ldx_op3, 0, REGP_OP); |
7304 #endif | 7303 #endif |
7305 ins_encode( form3_mem_reg( mem, dst ) ); | 7304 ins_encode( form3_mem_reg( mem, dst ) ); |
7306 ins_pipe(iload_mem); | |
7307 %} | |
7308 | |
7309 // LoadL-locked. Same as a regular long load when used with a compare-swap | |
7310 instruct loadLLocked(iRegL dst, memory mem) %{ | |
7311 match(Set dst (LoadLLocked mem)); | |
7312 ins_cost(MEMORY_REF_COST); | |
7313 size(4); | |
7314 format %{ "LDX $mem,$dst\t! long" %} | |
7315 opcode(Assembler::ldx_op3); | |
7316 ins_encode(simple_form3_mem_reg( mem, dst ) ); | |
7317 ins_pipe(iload_mem); | 7305 ins_pipe(iload_mem); |
7318 %} | 7306 %} |
7319 | 7307 |
7320 instruct storePConditional( iRegP heap_top_ptr, iRegP oldval, g3RegP newval, flagsRegP pcc ) %{ | 7308 instruct storePConditional( iRegP heap_top_ptr, iRegP oldval, g3RegP newval, flagsRegP pcc ) %{ |
7321 match(Set pcc (StorePConditional heap_top_ptr (Binary oldval newval))); | 7309 match(Set pcc (StorePConditional heap_top_ptr (Binary oldval newval))); |