7198084: NPG: distance is too big for short branches in test_invocation_counter_for_mdp()

Thu, 27 Sep 2012 15:49:48 -0700

author
kvn
date
Thu, 27 Sep 2012 15:49:48 -0700
changeset 4116
69fb89ec6fa7
parent 4115
e626685e9f6c
child 4117
f2e12eb74117

7198084: NPG: distance is too big for short branches in test_invocation_counter_for_mdp()
Summary: use long branches in test_invocation_counter_for_mdp()
Reviewed-by: twisti

src/cpu/sparc/vm/interp_masm_sparc.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/cpu/sparc/vm/interp_masm_sparc.cpp	Thu Sep 27 09:38:42 2012 -0700
     1.2 +++ b/src/cpu/sparc/vm/interp_masm_sparc.cpp	Thu Sep 27 15:49:48 2012 -0700
     1.3 @@ -1395,12 +1395,17 @@
     1.4    AddressLiteral profile_limit((address) &InvocationCounter::InterpreterProfileLimit);
     1.5    sethi(profile_limit, Rtmp);
     1.6    ld(Rtmp, profile_limit.low10(), Rtmp);
     1.7 -  cmp_and_br_short(invocation_count, Rtmp, Assembler::lessUnsigned, Assembler::pn, profile_continue);
     1.8 +  cmp(invocation_count, Rtmp);
     1.9 +  // Use long branches because call_VM() code and following code generated by
    1.10 +  // test_backedge_count_for_osr() is large in debug VM.
    1.11 +  br(Assembler::lessUnsigned, false, Assembler::pn, profile_continue);
    1.12 +  delayed()->nop();
    1.13  
    1.14    // Build it now.
    1.15    call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::profile_method));
    1.16    set_method_data_pointer_for_bcp();
    1.17 -  ba_short(profile_continue);
    1.18 +  ba(profile_continue);
    1.19 +  delayed()->nop();
    1.20    bind(done);
    1.21  }
    1.22  

mercurial