8011582: assert(nbits == 32 || (-(1 << nbits-1) <= x && x < ( 1 << nbits-1))) failed: value out of range
authorroland
Mon, 15 Apr 2013 09:42:46 +0200
changeset 17009 f5fe7861d135
parent 17008 fe66415573bf
child 17010 62219bdec449
child 17011 def8879c5b81
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
hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
--- a/hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp	Fri Apr 12 19:14:47 2013 -0700
+++ b/hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp	Mon Apr 15 09:42:46 2013 +0200
@@ -1000,9 +1000,10 @@
         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;