aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroland <none@none>2013-04-15 09:42:46 +0200
committerroland <none@none>2013-04-15 09:42:46 +0200
commitbb686c569227937012da4df4e5ad8d8e0d2a891a (patch)
treef9c4bdc9617171dd932632c43d2d36b13d6b0a47
parente53efb81200887ee57d72c114dbd08db4fe2885a (diff)
8011582: assert(nbits == 32 || (-(1 << nbits-1) <= x && x < ( 1 << nbits-1))) failed: value out of range
Summary: c1 runtime's predicate_failed_trap should use jump_to on sparc Reviewed-by: kvn
-rw-r--r--src/cpu/sparc/vm/c1_Runtime1_sparc.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp b/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
index 6723ef2c3..be4ae63e6 100644
--- a/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
+++ b/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
@@ -1000,9 +1000,10 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
DeoptimizationBlob* deopt_blob = SharedRuntime::deopt_blob();
assert(deopt_blob != NULL, "deoptimization blob must have been created");
restore_live_registers(sasm);
- __ restore();
- __ br(Assembler::always, false, Assembler::pt, deopt_blob->unpack_with_reexecution(), relocInfo::runtime_call_type);
- __ delayed()->nop();
+
+ AddressLiteral dest(deopt_blob->unpack_with_reexecution());
+ __ jump_to(dest, O0);
+ __ delayed()->restore();
}
break;