< prev index next >

src/cpu/sparc/vm/sparc.ad

Print this page

        

*** 1070,1080 **** disp = (consts_size + insts_offset) + table_base_offset; } __ rdpc(r); ! if (disp != 0) { assert(r != O7, "need temporary"); __ sub(r, __ ensure_simm13_or_reg(disp, O7), r); } } else { --- 1070,1086 ---- disp = (consts_size + insts_offset) + table_base_offset; } __ rdpc(r); ! if (disp == 0) { ! // Emitting an additional 'nop' instruction in order not to cause a code ! // size adjustment in the code following the table setup (if the instruction ! // immediately following after this section is a CTI). ! __ nop(); ! } ! else { assert(r != O7, "need temporary"); __ sub(r, __ ensure_simm13_or_reg(disp, O7), r); } } else {
*** 8622,8632 **** instruct branch_short(label labl) %{ match(Goto); predicate(UseCBCond); effect(USE labl); ! size(4); ins_cost(BRANCH_COST); format %{ "BA $labl\t! short branch" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond"); --- 8628,8638 ---- instruct branch_short(label labl) %{ match(Goto); predicate(UseCBCond); effect(USE labl); ! size(4); // Assuming no NOP inserted. ins_cost(BRANCH_COST); format %{ "BA $labl\t! short branch" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond");
*** 8963,8973 **** instruct cmpI_reg_branch_short(cmpOp cmp, iRegI op1, iRegI op2, label labl, flagsReg icc) %{ match(If cmp (CmpI op1 op2)); predicate(UseCBCond); effect(USE labl, KILL icc); ! size(4); ins_cost(BRANCH_COST); format %{ "CWB$cmp $op1,$op2,$labl\t! int" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond"); --- 8969,8979 ---- instruct cmpI_reg_branch_short(cmpOp cmp, iRegI op1, iRegI op2, label labl, flagsReg icc) %{ match(If cmp (CmpI op1 op2)); predicate(UseCBCond); effect(USE labl, KILL icc); ! size(4); // Assuming no NOP inserted. ins_cost(BRANCH_COST); format %{ "CWB$cmp $op1,$op2,$labl\t! int" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond");
*** 8981,8991 **** instruct cmpI_imm_branch_short(cmpOp cmp, iRegI op1, immI5 op2, label labl, flagsReg icc) %{ match(If cmp (CmpI op1 op2)); predicate(UseCBCond); effect(USE labl, KILL icc); ! size(4); ins_cost(BRANCH_COST); format %{ "CWB$cmp $op1,$op2,$labl\t! int" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond"); --- 8987,8997 ---- instruct cmpI_imm_branch_short(cmpOp cmp, iRegI op1, immI5 op2, label labl, flagsReg icc) %{ match(If cmp (CmpI op1 op2)); predicate(UseCBCond); effect(USE labl, KILL icc); ! size(4); // Assuming no NOP inserted. ins_cost(BRANCH_COST); format %{ "CWB$cmp $op1,$op2,$labl\t! int" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond");
*** 8999,9009 **** instruct cmpU_reg_branch_short(cmpOpU cmp, iRegI op1, iRegI op2, label labl, flagsRegU icc) %{ match(If cmp (CmpU op1 op2)); predicate(UseCBCond); effect(USE labl, KILL icc); ! size(4); ins_cost(BRANCH_COST); format %{ "CWB$cmp $op1,$op2,$labl\t! unsigned" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond"); --- 9005,9015 ---- instruct cmpU_reg_branch_short(cmpOpU cmp, iRegI op1, iRegI op2, label labl, flagsRegU icc) %{ match(If cmp (CmpU op1 op2)); predicate(UseCBCond); effect(USE labl, KILL icc); ! size(4); // Assuming no NOP inserted. ins_cost(BRANCH_COST); format %{ "CWB$cmp $op1,$op2,$labl\t! unsigned" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond");
*** 9017,9027 **** instruct cmpU_imm_branch_short(cmpOpU cmp, iRegI op1, immI5 op2, label labl, flagsRegU icc) %{ match(If cmp (CmpU op1 op2)); predicate(UseCBCond); effect(USE labl, KILL icc); ! size(4); ins_cost(BRANCH_COST); format %{ "CWB$cmp $op1,$op2,$labl\t! unsigned" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond"); --- 9023,9033 ---- instruct cmpU_imm_branch_short(cmpOpU cmp, iRegI op1, immI5 op2, label labl, flagsRegU icc) %{ match(If cmp (CmpU op1 op2)); predicate(UseCBCond); effect(USE labl, KILL icc); ! size(4); // Assuming no NOP inserted. ins_cost(BRANCH_COST); format %{ "CWB$cmp $op1,$op2,$labl\t! unsigned" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond");
*** 9035,9045 **** instruct cmpL_reg_branch_short(cmpOp cmp, iRegL op1, iRegL op2, label labl, flagsRegL xcc) %{ match(If cmp (CmpL op1 op2)); predicate(UseCBCond); effect(USE labl, KILL xcc); ! size(4); ins_cost(BRANCH_COST); format %{ "CXB$cmp $op1,$op2,$labl\t! long" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond"); --- 9041,9051 ---- instruct cmpL_reg_branch_short(cmpOp cmp, iRegL op1, iRegL op2, label labl, flagsRegL xcc) %{ match(If cmp (CmpL op1 op2)); predicate(UseCBCond); effect(USE labl, KILL xcc); ! size(4); // Assuming no NOP inserted. ins_cost(BRANCH_COST); format %{ "CXB$cmp $op1,$op2,$labl\t! long" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond");
*** 9053,9063 **** instruct cmpL_imm_branch_short(cmpOp cmp, iRegL op1, immL5 op2, label labl, flagsRegL xcc) %{ match(If cmp (CmpL op1 op2)); predicate(UseCBCond); effect(USE labl, KILL xcc); ! size(4); ins_cost(BRANCH_COST); format %{ "CXB$cmp $op1,$op2,$labl\t! long" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond"); --- 9059,9069 ---- instruct cmpL_imm_branch_short(cmpOp cmp, iRegL op1, immL5 op2, label labl, flagsRegL xcc) %{ match(If cmp (CmpL op1 op2)); predicate(UseCBCond); effect(USE labl, KILL xcc); ! size(4); // Assuming no NOP inserted. ins_cost(BRANCH_COST); format %{ "CXB$cmp $op1,$op2,$labl\t! long" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond");
*** 9072,9082 **** instruct cmpP_reg_branch_short(cmpOpP cmp, iRegP op1, iRegP op2, label labl, flagsRegP pcc) %{ match(If cmp (CmpP op1 op2)); predicate(UseCBCond); effect(USE labl, KILL pcc); ! size(4); ins_cost(BRANCH_COST); format %{ "CXB$cmp $op1,$op2,$labl\t! ptr" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond"); --- 9078,9088 ---- instruct cmpP_reg_branch_short(cmpOpP cmp, iRegP op1, iRegP op2, label labl, flagsRegP pcc) %{ match(If cmp (CmpP op1 op2)); predicate(UseCBCond); effect(USE labl, KILL pcc); ! size(4); // Assuming no NOP inserted. ins_cost(BRANCH_COST); format %{ "CXB$cmp $op1,$op2,$labl\t! ptr" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond");
*** 9090,9100 **** instruct cmpP_null_branch_short(cmpOpP cmp, iRegP op1, immP0 null, label labl, flagsRegP pcc) %{ match(If cmp (CmpP op1 null)); predicate(UseCBCond); effect(USE labl, KILL pcc); ! size(4); ins_cost(BRANCH_COST); format %{ "CXB$cmp $op1,0,$labl\t! ptr" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond"); --- 9096,9106 ---- instruct cmpP_null_branch_short(cmpOpP cmp, iRegP op1, immP0 null, label labl, flagsRegP pcc) %{ match(If cmp (CmpP op1 null)); predicate(UseCBCond); effect(USE labl, KILL pcc); ! size(4); // Assuming no NOP inserted. ins_cost(BRANCH_COST); format %{ "CXB$cmp $op1,0,$labl\t! ptr" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond");
*** 9108,9118 **** instruct cmpN_reg_branch_short(cmpOp cmp, iRegN op1, iRegN op2, label labl, flagsReg icc) %{ match(If cmp (CmpN op1 op2)); predicate(UseCBCond); effect(USE labl, KILL icc); ! size(4); ins_cost(BRANCH_COST); format %{ "CWB$cmp $op1,$op2,$labl\t! compressed ptr" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond"); --- 9114,9124 ---- instruct cmpN_reg_branch_short(cmpOp cmp, iRegN op1, iRegN op2, label labl, flagsReg icc) %{ match(If cmp (CmpN op1 op2)); predicate(UseCBCond); effect(USE labl, KILL icc); ! size(4); // Assuming no NOP inserted. ins_cost(BRANCH_COST); format %{ "CWB$cmp $op1,$op2,$labl\t! compressed ptr" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond");
*** 9126,9136 **** instruct cmpN_null_branch_short(cmpOp cmp, iRegN op1, immN0 null, label labl, flagsReg icc) %{ match(If cmp (CmpN op1 null)); predicate(UseCBCond); effect(USE labl, KILL icc); ! size(4); ins_cost(BRANCH_COST); format %{ "CWB$cmp $op1,0,$labl\t! compressed ptr" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond"); --- 9132,9142 ---- instruct cmpN_null_branch_short(cmpOp cmp, iRegN op1, immN0 null, label labl, flagsReg icc) %{ match(If cmp (CmpN op1 null)); predicate(UseCBCond); effect(USE labl, KILL icc); ! size(4); // Assuming no NOP inserted. ins_cost(BRANCH_COST); format %{ "CWB$cmp $op1,0,$labl\t! compressed ptr" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond");
*** 9145,9155 **** instruct cmpI_reg_branchLoopEnd_short(cmpOp cmp, iRegI op1, iRegI op2, label labl, flagsReg icc) %{ match(CountedLoopEnd cmp (CmpI op1 op2)); predicate(UseCBCond); effect(USE labl, KILL icc); ! size(4); ins_cost(BRANCH_COST); format %{ "CWB$cmp $op1,$op2,$labl\t! Loop end" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond"); --- 9151,9161 ---- instruct cmpI_reg_branchLoopEnd_short(cmpOp cmp, iRegI op1, iRegI op2, label labl, flagsReg icc) %{ match(CountedLoopEnd cmp (CmpI op1 op2)); predicate(UseCBCond); effect(USE labl, KILL icc); ! size(4); // Assuming no NOP inserted. ins_cost(BRANCH_COST); format %{ "CWB$cmp $op1,$op2,$labl\t! Loop end" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond");
*** 9163,9173 **** instruct cmpI_imm_branchLoopEnd_short(cmpOp cmp, iRegI op1, immI5 op2, label labl, flagsReg icc) %{ match(CountedLoopEnd cmp (CmpI op1 op2)); predicate(UseCBCond); effect(USE labl, KILL icc); ! size(4); ins_cost(BRANCH_COST); format %{ "CWB$cmp $op1,$op2,$labl\t! Loop end" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond"); --- 9169,9179 ---- instruct cmpI_imm_branchLoopEnd_short(cmpOp cmp, iRegI op1, immI5 op2, label labl, flagsReg icc) %{ match(CountedLoopEnd cmp (CmpI op1 op2)); predicate(UseCBCond); effect(USE labl, KILL icc); ! size(4); // Assuming no NOP inserted. ins_cost(BRANCH_COST); format %{ "CWB$cmp $op1,$op2,$labl\t! Loop end" %} ins_encode %{ Label* L = $labl$$label; assert(__ use_cbcond(*L), "back to back cbcond");
< prev index next >