Thu, 27 Sep 2012 15:49:48 -0700
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