diff options
author | roland <none@none> | 2013-04-15 09:42:46 +0200 |
---|---|---|
committer | roland <none@none> | 2013-04-15 09:42:46 +0200 |
commit | bb686c569227937012da4df4e5ad8d8e0d2a891a (patch) | |
tree | f9c4bdc9617171dd932632c43d2d36b13d6b0a47 | |
parent | e53efb81200887ee57d72c114dbd08db4fe2885a (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.cpp | 7 |
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; |