aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkvn <none@none>2012-09-27 15:49:48 -0700
committerkvn <none@none>2012-09-27 15:49:48 -0700
commit00e5c6d91a3db80e48359621f9b85332477b6e1b (patch)
tree9b3c2118d16d37d067e1d9cbb5114366a110174c
parentd8d741d12f04c75637e8371ffe97cf07920db159 (diff)
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
-rw-r--r--src/cpu/sparc/vm/interp_masm_sparc.cpp9
1 files 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);
}