src/cpu/x86/vm/x86_32.ad
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 7069452 Cdiff src/cpu/x86/vm/x86_32.ad

src/cpu/x86/vm/x86_32.ad

Print this page

        

*** 4494,4504 **** op_attrib op_cost(0); // Required cost attribute //----------Instruction Attributes--------------------------------------------- ins_attrib ins_cost(100); // Required cost attribute ins_attrib ins_size(8); // Required size attribute (in bits) - ins_attrib ins_pc_relative(0); // Required PC Relative flag ins_attrib ins_short_branch(0); // Required flag: is this instruction a // non-matching short branch variant of some // long branch? ins_attrib ins_alignment(1); // Required alignment attribute (must be a power of 2) // specifies the alignment that some part of the instruction (not --- 4494,4503 ----
*** 13045,13055 **** ins_encode %{ // Jump to Address(table_base + switch_reg) Address index(noreg, $switch_val$$Register, Address::times_1); __ jump(ArrayAddress($constantaddress, index)); %} - ins_pc_relative(1); ins_pipe(pipe_jmp); %} // Jump Direct - Label defines a relative address from JMP+1 instruct jmpDir(label labl) %{ --- 13044,13053 ----
*** 13060,13070 **** format %{ "JMP $labl" %} size(5); opcode(0xE9); ins_encode( OpcP, Lbl( labl ) ); ins_pipe( pipe_jmp ); - ins_pc_relative(1); %} // Jump Direct Conditional - Label defines a relative address from Jcc+1 instruct jmpCon(cmpOp cop, eFlagsReg cr, label labl) %{ match(If cop cr); --- 13058,13067 ----
*** 13074,13084 **** format %{ "J$cop $labl" %} size(6); opcode(0x0F, 0x80); ins_encode( Jcc( cop, labl) ); ins_pipe( pipe_jcc ); - ins_pc_relative(1); %} // Jump Direct Conditional - Label defines a relative address from Jcc+1 instruct jmpLoopEnd(cmpOp cop, eFlagsReg cr, label labl) %{ match(CountedLoopEnd cop cr); --- 13071,13080 ----
*** 13088,13098 **** format %{ "J$cop $labl\t# Loop end" %} size(6); opcode(0x0F, 0x80); ins_encode( Jcc( cop, labl) ); ins_pipe( pipe_jcc ); - ins_pc_relative(1); %} // Jump Direct Conditional - Label defines a relative address from Jcc+1 instruct jmpLoopEndU(cmpOpU cop, eFlagsRegU cmp, label labl) %{ match(CountedLoopEnd cop cmp); --- 13084,13093 ----
*** 13102,13112 **** format %{ "J$cop,u $labl\t# Loop end" %} size(6); opcode(0x0F, 0x80); ins_encode( Jcc( cop, labl) ); ins_pipe( pipe_jcc ); - ins_pc_relative(1); %} instruct jmpLoopEndUCF(cmpOpUCF cop, eFlagsRegUCF cmp, label labl) %{ match(CountedLoopEnd cop cmp); effect(USE labl); --- 13097,13106 ----
*** 13115,13125 **** format %{ "J$cop,u $labl\t# Loop end" %} size(6); opcode(0x0F, 0x80); ins_encode( Jcc( cop, labl) ); ins_pipe( pipe_jcc ); - ins_pc_relative(1); %} // Jump Direct Conditional - using unsigned comparison instruct jmpConU(cmpOpU cop, eFlagsRegU cmp, label labl) %{ match(If cop cmp); --- 13109,13118 ----
*** 13129,13139 **** format %{ "J$cop,u $labl" %} size(6); opcode(0x0F, 0x80); ins_encode(Jcc(cop, labl)); ins_pipe(pipe_jcc); - ins_pc_relative(1); %} instruct jmpConUCF(cmpOpUCF cop, eFlagsRegUCF cmp, label labl) %{ match(If cop cmp); effect(USE labl); --- 13122,13131 ----
*** 13142,13152 **** format %{ "J$cop,u $labl" %} size(6); opcode(0x0F, 0x80); ins_encode(Jcc(cop, labl)); ins_pipe(pipe_jcc); - ins_pc_relative(1); %} instruct jmpConUCF2(cmpOpUCF2 cop, eFlagsRegUCF cmp, label labl) %{ match(If cop cmp); effect(USE labl); --- 13134,13143 ----
*** 13184,13194 **** emit_cc(cbuf, $secondary, $cop$$cmpcode); int disp = l->loc_pos() - (cbuf.insts_size() + 4); emit_d32(cbuf, disp); %} ins_pipe(pipe_jcc); - ins_pc_relative(1); %} // ============================================================================ // The 2nd slow-half of a subtype check. Scan the subklass's 2ndary superklass // array for an instance of the superklass. Set a hidden internal cache on a --- 13175,13184 ----
*** 13252,13262 **** format %{ "JMP,s $labl" %} size(2); opcode(0xEB); ins_encode( OpcP, LblShort( labl ) ); ins_pipe( pipe_jmp ); - ins_pc_relative(1); ins_short_branch(1); %} // Jump Direct Conditional - Label defines a relative address from Jcc+1 instruct jmpCon_short(cmpOp cop, eFlagsReg cr, label labl) %{ --- 13242,13251 ----
*** 13267,13277 **** format %{ "J$cop,s $labl" %} size(2); opcode(0x70); ins_encode( JccShort( cop, labl) ); ins_pipe( pipe_jcc ); - ins_pc_relative(1); ins_short_branch(1); %} // Jump Direct Conditional - Label defines a relative address from Jcc+1 instruct jmpLoopEnd_short(cmpOp cop, eFlagsReg cr, label labl) %{ --- 13256,13265 ----
*** 13282,13292 **** format %{ "J$cop,s $labl\t# Loop end" %} size(2); opcode(0x70); ins_encode( JccShort( cop, labl) ); ins_pipe( pipe_jcc ); - ins_pc_relative(1); ins_short_branch(1); %} // Jump Direct Conditional - Label defines a relative address from Jcc+1 instruct jmpLoopEndU_short(cmpOpU cop, eFlagsRegU cmp, label labl) %{ --- 13270,13279 ----
*** 13297,13307 **** format %{ "J$cop,us $labl\t# Loop end" %} size(2); opcode(0x70); ins_encode( JccShort( cop, labl) ); ins_pipe( pipe_jcc ); - ins_pc_relative(1); ins_short_branch(1); %} instruct jmpLoopEndUCF_short(cmpOpUCF cop, eFlagsRegUCF cmp, label labl) %{ match(CountedLoopEnd cop cmp); --- 13284,13293 ----
*** 13311,13321 **** format %{ "J$cop,us $labl\t# Loop end" %} size(2); opcode(0x70); ins_encode( JccShort( cop, labl) ); ins_pipe( pipe_jcc ); - ins_pc_relative(1); ins_short_branch(1); %} // Jump Direct Conditional - using unsigned comparison instruct jmpConU_short(cmpOpU cop, eFlagsRegU cmp, label labl) %{ --- 13297,13306 ----
*** 13326,13336 **** format %{ "J$cop,us $labl" %} size(2); opcode(0x70); ins_encode( JccShort( cop, labl) ); ins_pipe( pipe_jcc ); - ins_pc_relative(1); ins_short_branch(1); %} instruct jmpConUCF_short(cmpOpUCF cop, eFlagsRegUCF cmp, label labl) %{ match(If cop cmp); --- 13311,13320 ----
*** 13340,13350 **** format %{ "J$cop,us $labl" %} size(2); opcode(0x70); ins_encode( JccShort( cop, labl) ); ins_pipe( pipe_jcc ); - ins_pc_relative(1); ins_short_branch(1); %} instruct jmpConUCF2_short(cmpOpUCF2 cop, eFlagsRegUCF cmp, label labl) %{ match(If cop cmp); --- 13324,13333 ----
*** 13380,13390 **** emit_d8(cbuf, disp); assert(-128 <= disp && disp <= 127, "Displacement too large for short jmp"); assert(-128 <= parity_disp && parity_disp <= 127, "Displacement too large for short jmp"); %} ins_pipe(pipe_jcc); - ins_pc_relative(1); ins_short_branch(1); %} // ============================================================================ // Long Compare --- 13363,13372 ----
*** 13853,13863 **** ins_encode( pre_call_FPU, Java_Static_Call( meth ), call_epilog, post_call_FPU ); ins_pipe( pipe_slow ); - ins_pc_relative(1); ins_alignment(4); %} // Call Java Static Instruction (method handle version) // Note: If this code changes, the corresponding ret_addr_offset() and --- 13835,13844 ----
*** 13877,13887 **** Java_Static_Call( meth ), restore_SP, call_epilog, post_call_FPU ); ins_pipe( pipe_slow ); - ins_pc_relative(1); ins_alignment(4); %} // Call Java Dynamic Instruction // Note: If this code changes, the corresponding ret_addr_offset() and --- 13858,13867 ----
*** 13897,13907 **** ins_encode( pre_call_FPU, Java_Dynamic_Call( meth ), call_epilog, post_call_FPU ); ins_pipe( pipe_slow ); - ins_pc_relative(1); ins_alignment(4); %} // Call Runtime Instruction instruct CallRuntimeDirect(method meth) %{ --- 13877,13886 ----
*** 13915,13925 **** ins_encode( pre_call_FPU, FFree_Float_Stack_All, Java_To_Runtime( meth ), post_call_FPU ); ins_pipe( pipe_slow ); - ins_pc_relative(1); %} // Call runtime without safepoint instruct CallLeafDirect(method meth) %{ match(CallLeaf); --- 13894,13903 ----
*** 13931,13941 **** ins_encode( pre_call_FPU, FFree_Float_Stack_All, Java_To_Runtime( meth ), Verify_FPU_For_Leaf, post_call_FPU ); ins_pipe( pipe_slow ); - ins_pc_relative(1); %} instruct CallLeafNoFPDirect(method meth) %{ match(CallLeafNoFP); effect(USE meth); --- 13909,13918 ----
*** 13943,13953 **** ins_cost(300); format %{ "CALL_LEAF_NOFP,runtime " %} opcode(0xE8); /* E8 cd */ ins_encode(Java_To_Runtime(meth)); ins_pipe( pipe_slow ); - ins_pc_relative(1); %} // Return Instruction // Remove the return address & jump to it. --- 13920,13929 ----
*** 14022,14042 **** effect( TEMP tmp, TEMP scr ); ins_cost(300); format %{ "FASTLOCK $object, $box KILLS $tmp,$scr" %} ins_encode( Fast_Lock(object,box,tmp,scr) ); ins_pipe( pipe_slow ); - ins_pc_relative(1); %} instruct cmpFastUnlock( eFlagsReg cr, eRegP object, eAXRegP box, eRegP tmp ) %{ match( Set cr (FastUnlock object box) ); effect( TEMP tmp ); ins_cost(300); format %{ "FASTUNLOCK $object, $box, $tmp" %} ins_encode( Fast_Unlock(object,box,tmp) ); ins_pipe( pipe_slow ); - ins_pc_relative(1); %} // ============================================================================ --- 13998,14016 ----
src/cpu/x86/vm/x86_32.ad
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File