--- old/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp 2011-01-20 22:32:16.515072000 -0800 +++ new/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp 2011-01-20 22:32:16.305162000 -0800 @@ -343,9 +343,14 @@ // returned. restore_live_registers(sasm); - __ restore(); +#ifdef _LP64 + __ relocate(relocInfo::runtime_call_type); + AddressLiteral dest(deopt_blob->unpack_with_reexecution()); + __ jump_to(dest, O0); +#else __ br(Assembler::always, false, Assembler::pt, deopt_blob->unpack_with_reexecution(), relocInfo::runtime_call_type); - __ delayed()->nop(); +#endif + __ delayed()->restore(); __ bind(no_deopt); restore_live_registers(sasm);