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))); |