From fa2bd1dd57dad9e6bfcc07503b826af90a6be100 Mon Sep 17 00:00:00 2001 From: kvn Date: Thu, 27 Sep 2012 15:49:48 -0700 Subject: [PATCH] 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 | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/cpu/sparc/vm/interp_masm_sparc.cpp b/src/cpu/sparc/vm/interp_masm_sparc.cpp index d92291fb3..2e2040efc 100644 --- a/src/cpu/sparc/vm/interp_masm_sparc.cpp +++ b/src/cpu/sparc/vm/interp_masm_sparc.cpp @@ -1395,12 +1395,17 @@ void InterpreterMacroAssembler::test_invocation_counter_for_mdp(Register invocat AddressLiteral profile_limit((address) &InvocationCounter::InterpreterProfileLimit); sethi(profile_limit, Rtmp); ld(Rtmp, profile_limit.low10(), Rtmp); - cmp_and_br_short(invocation_count, Rtmp, Assembler::lessUnsigned, Assembler::pn, profile_continue); + cmp(invocation_count, Rtmp); + // Use long branches because call_VM() code and following code generated by + // test_backedge_count_for_osr() is large in debug VM. + br(Assembler::lessUnsigned, false, Assembler::pn, profile_continue); + delayed()->nop(); // Build it now. call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::profile_method)); set_method_data_pointer_for_bcp(); - ba_short(profile_continue); + ba(profile_continue); + delayed()->nop(); bind(done); } -- GitLab