OpenJDK / portola / portola
changeset 7927:553d29e6d40c
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 | 6cbca8cebf93 |
children | c2f2ee35ff81 |
files | hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp |
diffstat | 1 files changed, 4 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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);