7013812: C1: deopt blob too far from patching stub
authoriveresov
Fri, 21 Jan 2011 00:01:41 -0800
changeset 7927 553d29e6d40c
parent 7924 6cbca8cebf93
child 7928 c2f2ee35ff81
7013812: C1: deopt blob too far from patching stub Summary: Use long jumps to get from patching stubs to deopt blob Reviewed-by: kvn, never
hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
--- a/hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp	Thu Jan 20 13:57:12 2011 -0800
+++ b/hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp	Fri Jan 21 00:01:41 2011 -0800
@@ -343,9 +343,10 @@
   // returned.
 
   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();
 
   __ bind(no_deopt);
   restore_live_registers(sasm);