341 // return to the deoptimization handler entry for unpacking and rexecute |
341 // return to the deoptimization handler entry for unpacking and rexecute |
342 // if we simply returned the we'd deopt as if any call we patched had just |
342 // if we simply returned the we'd deopt as if any call we patched had just |
343 // returned. |
343 // returned. |
344 |
344 |
345 restore_live_registers(sasm); |
345 restore_live_registers(sasm); |
346 __ restore(); |
346 |
347 __ br(Assembler::always, false, Assembler::pt, deopt_blob->unpack_with_reexecution(), relocInfo::runtime_call_type); |
347 AddressLiteral dest(deopt_blob->unpack_with_reexecution()); |
348 __ delayed()->nop(); |
348 __ jump_to(dest, O0); |
|
349 __ delayed()->restore(); |
349 |
350 |
350 __ bind(no_deopt); |
351 __ bind(no_deopt); |
351 restore_live_registers(sasm); |
352 restore_live_registers(sasm); |
352 __ ret(); |
353 __ ret(); |
353 __ delayed()->restore(); |
354 __ delayed()->restore(); |