Mercurial > hg > truffle
diff src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp @ 3839:3d42f82cd811
7063628: Use cbcond on T4
Summary: Add new short branch instruction to Hotspot sparc assembler.
Reviewed-by: never, twisti, jrose
author | kvn |
---|---|
date | Thu, 21 Jul 2011 11:25:07 -0700 |
parents | 6c97c830fb6f |
children | 069ab3f976d3 |
line wrap: on
line diff
--- a/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp Thu Jul 21 08:38:25 2011 -0700 +++ b/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp Thu Jul 21 11:25:07 2011 -0700 @@ -41,9 +41,7 @@ // Note: needs more testing of out-of-line vs. inline slow case verify_oop(receiver); load_klass(receiver, temp_reg); - cmp(temp_reg, iCache); - brx(Assembler::equal, true, Assembler::pt, L); - delayed()->nop(); + cmp_and_brx_short(temp_reg, iCache, Assembler::equal, Assembler::pt, L); AddressLiteral ic_miss(SharedRuntime::get_ic_miss_stub()); jump_to(ic_miss, temp_reg); delayed()->nop(); @@ -142,8 +140,7 @@ } // Test first it it is a fast recursive unlock ld_ptr(Rbox, BasicLock::displaced_header_offset_in_bytes(), Rmark); - br_null(Rmark, false, Assembler::pt, done); - delayed()->nop(); + br_null_short(Rmark, Assembler::pt, done); if (!UseBiasedLocking) { // load object ld_ptr(Rbox, BasicObjectLock::obj_offset_in_bytes(), Roop); @@ -231,7 +228,7 @@ if (!is_simm13(obj_size * wordSize)) { // would need to use extra register to load // object size => go the slow case for now - br(Assembler::always, false, Assembler::pt, slow_case); + ba(slow_case); delayed()->nop(); return; } @@ -257,12 +254,10 @@ Label ok; ld(klass, klassOopDesc::header_size() * HeapWordSize + Klass::layout_helper_offset_in_bytes(), t1); if (var_size_in_bytes != noreg) { - cmp(t1, var_size_in_bytes); + cmp_and_brx_short(t1, var_size_in_bytes, Assembler::equal, Assembler::pt, ok); } else { - cmp(t1, con_size_in_bytes); + cmp_and_brx_short(t1, con_size_in_bytes, Assembler::equal, Assembler::pt, ok); } - brx(Assembler::equal, false, Assembler::pt, ok); - delayed()->nop(); stop("bad size in initialize_object"); should_not_reach_here(); @@ -387,8 +382,7 @@ void C1_MacroAssembler::verify_not_null_oop(Register r) { Label not_null; - br_notnull(r, false, Assembler::pt, not_null); - delayed()->nop(); + br_notnull_short(r, Assembler::pt, not_null); stop("non-null oop required"); bind(not_null); if (!VerifyOops) return;