Mercurial > hg > truffle
changeset 2156:85330eaa15ee
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
author | iveresov |
---|---|
date | Fri, 21 Jan 2011 00:01:41 -0800 |
parents | 377371490991 |
children | d535bf4c1235 |
files | src/cpu/sparc/vm/c1_Runtime1_sparc.cpp |
diffstat | 1 files changed, 4 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp Thu Jan 20 13:57:12 2011 -0800 +++ b/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);