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

src/cpu/sparc/vm/sparc.ad

Print this page

        

*** 3313,3323 **** op_attrib op_cost(1); // Required cost attribute //----------Instruction Attributes--------------------------------------------- ins_attrib ins_cost(DEFAULT_COST); // Required cost attribute ins_attrib ins_size(32); // 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? //----------OPERANDS----------------------------------------------------------- --- 3313,3322 ----
*** 9180,9190 **** // Jump to base address + switch value __ ld_ptr(table_reg, $switch_val$$Register, label_reg); __ jmp(label_reg, G0); __ delayed()->nop(); %} - ins_pc_relative(1); ins_pipe(ialu_reg_reg); %} // Direct Branch. Use V8 version with longer range. instruct branch(label labl) %{ --- 9179,9188 ----
*** 9197,9207 **** ins_encode %{ Label* L = $labl$$label; __ ba(*L); __ delayed()->nop(); %} - ins_pc_relative(1); ins_pipe(br); %} // Conditional Direct Branch instruct branchCon(cmpOp cmp, flagsReg icc, label labl) %{ --- 9195,9204 ----
*** 9211,9221 **** size(8); ins_cost(BRANCH_COST); format %{ "BP$cmp $icc,$labl" %} // Prim = bits 24-22, Secnd = bits 31-30 ins_encode( enc_bp( labl, cmp, icc ) ); - ins_pc_relative(1); ins_pipe(br_cc); %} // Branch-on-register tests all 64 bits. We assume that values // in 64-bit registers always remains zero or sign extended --- 9208,9217 ----
*** 9228,9238 **** size(8); ins_cost(BRANCH_COST); format %{ "BR$cmp $op1,$labl" %} ins_encode( enc_bpr( labl, cmp, op1 ) ); - ins_pc_relative(1); ins_pipe(br_reg); %} instruct branchCon_regP(cmpOp_reg cmp, iRegP op1, immP0 null, label labl) %{ match(If cmp (CmpP op1 null)); --- 9224,9233 ----
*** 9241,9251 **** size(8); ins_cost(BRANCH_COST); format %{ "BR$cmp $op1,$labl" %} ins_encode( enc_bpr( labl, cmp, op1 ) ); - ins_pc_relative(1); ins_pipe(br_reg); %} instruct branchCon_regL(cmpOp_reg cmp, iRegL op1, immL0 zero, label labl) %{ match(If cmp (CmpL op1 zero)); --- 9236,9245 ----
*** 9254,9264 **** size(8); ins_cost(BRANCH_COST); format %{ "BR$cmp $op1,$labl" %} ins_encode( enc_bpr( labl, cmp, op1 ) ); - ins_pc_relative(1); ins_pipe(br_reg); %} instruct branchConU(cmpOpU cmp, flagsRegU icc, label labl) %{ match(If cmp icc); --- 9248,9257 ----
*** 9265,9275 **** effect(USE labl); format %{ "BP$cmp $icc,$labl" %} // Prim = bits 24-22, Secnd = bits 31-30 ins_encode( enc_bp( labl, cmp, icc ) ); - ins_pc_relative(1); ins_pipe(br_cc); %} instruct branchConP(cmpOpP cmp, flagsRegP pcc, label labl) %{ match(If cmp pcc); --- 9258,9267 ----
*** 9284,9294 **** cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn; __ bp( (Assembler::Condition)($cmp$$cmpcode), false, Assembler::ptr_cc, predict_taken, *L); __ delayed()->nop(); %} - ins_pc_relative(1); ins_pipe(br_cc); %} instruct branchConF(cmpOpF cmp, flagsRegF fcc, label labl) %{ match(If cmp fcc); --- 9276,9285 ----
*** 9303,9313 **** cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn; __ fbp( (Assembler::Condition)($cmp$$cmpcode), false, (Assembler::CC)($fcc$$reg), predict_taken, *L); __ delayed()->nop(); %} - ins_pc_relative(1); ins_pipe(br_fcc); %} instruct branchLoopEnd(cmpOp cmp, flagsReg icc, label labl) %{ match(CountedLoopEnd cmp icc); --- 9294,9303 ----
*** 9316,9326 **** size(8); ins_cost(BRANCH_COST); format %{ "BP$cmp $icc,$labl\t! Loop end" %} // Prim = bits 24-22, Secnd = bits 31-30 ins_encode( enc_bp( labl, cmp, icc ) ); - ins_pc_relative(1); ins_pipe(br_cc); %} instruct branchLoopEndU(cmpOpU cmp, flagsRegU icc, label labl) %{ match(CountedLoopEnd cmp icc); --- 9306,9315 ----
*** 9329,9339 **** size(8); ins_cost(BRANCH_COST); format %{ "BP$cmp $icc,$labl\t! Loop end" %} // Prim = bits 24-22, Secnd = bits 31-30 ins_encode( enc_bp( labl, cmp, icc ) ); - ins_pc_relative(1); ins_pipe(br_cc); %} // ============================================================================ // Long Compare --- 9318,9327 ----
*** 9369,9379 **** cbuf.is_backward_branch(*L) ? Assembler::pt : Assembler::pn; __ bp( (Assembler::Condition)($cmp$$cmpcode), false, Assembler::xcc, predict_taken, *L); __ delayed()->nop(); %} - ins_pc_relative(1); ins_pipe(br_cc); %} // Manifest a CmpL3 result in an integer register. Very painful. // This is the test to avoid. --- 9357,9366 ----
*** 9497,9507 **** size(8); ins_cost(CALL_COST); format %{ "CALL,static ; NOP ==> " %} ins_encode( Java_Static_Call( meth ), call_epilog ); - ins_pc_relative(1); ins_pipe(simple_call); %} // Call Java Static Instruction (method handle version) instruct CallStaticJavaHandle(method meth, l7RegP l7_mh_SP_save) %{ --- 9484,9493 ----
*** 9511,9521 **** size(8); ins_cost(CALL_COST); format %{ "CALL,static/MethodHandle" %} ins_encode(preserve_SP, Java_Static_Call(meth), restore_SP, call_epilog); - ins_pc_relative(1); ins_pipe(simple_call); %} // Call Java Dynamic Instruction instruct CallDynamicJavaDirect( method meth ) %{ --- 9497,9506 ----
*** 9524,9534 **** ins_cost(CALL_COST); format %{ "SET (empty),R_G5\n\t" "CALL,dynamic ; NOP ==> " %} ins_encode( Java_Dynamic_Call( meth ), call_epilog ); - ins_pc_relative(1); ins_pipe(call); %} // Call Runtime Instruction instruct CallRuntimeDirect(method meth, l7RegP l7) %{ --- 9509,9518 ----
*** 9536,9546 **** effect(USE meth, KILL l7); ins_cost(CALL_COST); format %{ "CALL,runtime" %} ins_encode( Java_To_Runtime( meth ), call_epilog, adjust_long_from_native_call ); - ins_pc_relative(1); ins_pipe(simple_call); %} // Call runtime without safepoint - same as CallRuntime instruct CallLeafDirect(method meth, l7RegP l7) %{ --- 9520,9529 ----
*** 9549,9559 **** ins_cost(CALL_COST); format %{ "CALL,runtime leaf" %} ins_encode( Java_To_Runtime( meth ), call_epilog, adjust_long_from_native_call ); - ins_pc_relative(1); ins_pipe(simple_call); %} // Call runtime without safepoint - same as CallLeaf instruct CallLeafNoFPDirect(method meth, l7RegP l7) %{ --- 9532,9541 ----
*** 9562,9572 **** ins_cost(CALL_COST); format %{ "CALL,runtime leaf nofp" %} ins_encode( Java_To_Runtime( meth ), call_epilog, adjust_long_from_native_call ); - ins_pc_relative(1); ins_pipe(simple_call); %} // Tail Call; Jump from runtime stub to Java code. // Also known as an 'interprocedural jump'. --- 9544,9553 ----
src/cpu/sparc/vm/sparc.ad
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File