--- old/src/cpu/sparc/vm/assembler_sparc.inline.hpp Fri Jul 15 19:09:42 2011 +++ new/src/cpu/sparc/vm/assembler_sparc.inline.hpp Fri Jul 15 19:09:41 2011 @@ -99,8 +99,8 @@ inline void Assembler::bp( Condition c, bool a, CC cc, Predict p, Label& L ) { bp(c, a, cc, p, target(L)); } // compare and branch -inline void Assembler::cbc(Condition c, CC cc, Register s1, Register s2, Label& L) { cti(); no_cbc_before(); emit_data(op(branch_op) | cond_cbc(c) | op2(bpr_op2) | branchcc(cc) | wdisp10(intptr_t(target(L)), intptr_t(pc())) | rs1(s1) | rs2(s2)); } -inline void Assembler::cbc(Condition c, CC cc, Register s1, int simm5, Label& L) { cti(); no_cbc_before(); emit_data(op(branch_op) | cond_cbc(c) | op2(bpr_op2) | branchcc(cc) | wdisp10(intptr_t(target(L)), intptr_t(pc())) | rs1(s1) | immed(true) | simm(simm5, 5)); } +inline void Assembler::cbcond(Condition c, CC cc, Register s1, Register s2, Label& L) { cti(); no_cbcond_before(); emit_data(op(branch_op) | cond_cbcond(c) | op2(bpr_op2) | branchcc(cc) | wdisp10(intptr_t(target(L)), intptr_t(pc())) | rs1(s1) | rs2(s2)); } +inline void Assembler::cbcond(Condition c, CC cc, Register s1, int simm5, Label& L) { cti(); no_cbcond_before(); emit_data(op(branch_op) | cond_cbcond(c) | op2(bpr_op2) | branchcc(cc) | wdisp10(intptr_t(target(L)), intptr_t(pc())) | rs1(s1) | immed(true) | simm(simm5, 5)); } inline void Assembler::call( address d, relocInfo::relocType rt ) { cti(); emit_data( op(call_op) | wdisp(intptr_t(d), intptr_t(pc()), 30), rt); has_delay_slot(); assert(rt != relocInfo::virtual_call_type, "must use virtual_call_Relocation::spec"); } inline void Assembler::call( Label& L, relocInfo::relocType rt ) { call( target(L), rt); } @@ -561,16 +561,8 @@ brx(c, a, p, target(L)); } -inline void MacroAssembler::ba( Label& L, bool emit_delayed_nop ) { - if (emit_delayed_nop && use_cbc(L)) { - Assembler::cbc(equal, icc, G0, G0, L); - return; - } +inline void MacroAssembler::ba( Label& L ) { br(always, false, pt, L); - // Some callers can fill the delay slot. - if (emit_delayed_nop) { - delayed()->nop(); - } } // Warning: V9 only functions