src/cpu/sparc/vm/sparc.ad

changeset 3846
8b0a4867acf0
parent 3637
61b82be3b1ff
child 3882
8c92982cbbc4
equal deleted inserted replaced
3845:121e5708ae96 3846: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)));

mercurial