src/cpu/sparc/vm/c1_Runtime1_sparc.cpp

changeset 3037
3d42f82cd811
parent 2603
1b4e6a5d98e0
child 3088
4fe626cbf0bf
child 3099
c124e2e7463e
     1.1 --- a/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp	Thu Jul 21 08:38:25 2011 -0700
     1.2 +++ b/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp	Thu Jul 21 11:25:07 2011 -0700
     1.3 @@ -71,8 +71,7 @@
     1.4    { Label L;
     1.5      Address exception_addr(G2_thread, Thread::pending_exception_offset());
     1.6      ld_ptr(exception_addr, Gtemp);
     1.7 -    br_null(Gtemp, false, pt, L);
     1.8 -    delayed()->nop();
     1.9 +    br_null_short(Gtemp, pt, L);
    1.10      Address vm_result_addr(G2_thread, JavaThread::vm_result_offset());
    1.11      st_ptr(G0, vm_result_addr);
    1.12      Address vm_result_addr_2(G2_thread, JavaThread::vm_result_2_offset());
    1.13 @@ -333,9 +332,7 @@
    1.14    assert(deopt_blob != NULL, "deoptimization blob must have been created");
    1.15  
    1.16    Label no_deopt;
    1.17 -  __ tst(O0);
    1.18 -  __ brx(Assembler::equal, false, Assembler::pt, no_deopt);
    1.19 -  __ delayed()->nop();
    1.20 +  __ br_null_short(O0, Assembler::pt, no_deopt);
    1.21  
    1.22    // return to the deoptimization handler entry for unpacking and rexecute
    1.23    // if we simply returned the we'd deopt as if any call we patched had just
    1.24 @@ -402,18 +399,15 @@
    1.25            if (id == fast_new_instance_init_check_id) {
    1.26              // make sure the klass is initialized
    1.27              __ ld(G5_klass, instanceKlass::init_state_offset_in_bytes() + sizeof(oopDesc), G3_t1);
    1.28 -            __ cmp(G3_t1, instanceKlass::fully_initialized);
    1.29 -            __ br(Assembler::notEqual, false, Assembler::pn, slow_path);
    1.30 -            __ delayed()->nop();
    1.31 +            __ cmp_and_br_short(G3_t1, instanceKlass::fully_initialized, Assembler::notEqual, Assembler::pn, slow_path);
    1.32            }
    1.33  #ifdef ASSERT
    1.34            // assert object can be fast path allocated
    1.35            {
    1.36              Label ok, not_ok;
    1.37            __ ld(G5_klass, Klass::layout_helper_offset_in_bytes() + sizeof(oopDesc), G1_obj_size);
    1.38 -          __ cmp(G1_obj_size, 0);  // make sure it's an instance (LH > 0)
    1.39 -          __ br(Assembler::lessEqual, false, Assembler::pn, not_ok);
    1.40 -          __ delayed()->nop();
    1.41 +          // make sure it's an instance (LH > 0)
    1.42 +          __ cmp_and_br_short(G1_obj_size, 0, Assembler::lessEqual, Assembler::pn, not_ok);
    1.43            __ btst(Klass::_lh_instance_slow_path_bit, G1_obj_size);
    1.44            __ br(Assembler::zero, false, Assembler::pn, ok);
    1.45            __ delayed()->nop();
    1.46 @@ -501,9 +495,7 @@
    1.47            int tag = ((id == new_type_array_id)
    1.48                       ? Klass::_lh_array_tag_type_value
    1.49                       : Klass::_lh_array_tag_obj_value);
    1.50 -          __ cmp(G3_t1, tag);
    1.51 -          __ brx(Assembler::equal, false, Assembler::pt, ok);
    1.52 -          __ delayed()->nop();
    1.53 +          __ cmp_and_brx_short(G3_t1, tag, Assembler::equal, Assembler::pt, ok);
    1.54            __ stop("assert(is an array klass)");
    1.55            __ should_not_reach_here();
    1.56            __ bind(ok);
    1.57 @@ -519,9 +511,7 @@
    1.58  
    1.59            // check that array length is small enough for fast path
    1.60            __ set(C1_MacroAssembler::max_array_allocation_length, G3_t1);
    1.61 -          __ cmp(G4_length, G3_t1);
    1.62 -          __ br(Assembler::greaterUnsigned, false, Assembler::pn, slow_path);
    1.63 -          __ delayed()->nop();
    1.64 +          __ cmp_and_br_short(G4_length, G3_t1, Assembler::greaterUnsigned, Assembler::pn, slow_path);
    1.65  
    1.66            // if we got here then the TLAB allocation failed, so try
    1.67            // refilling the TLAB or allocating directly from eden.

mercurial