aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrims <none@none>2011-01-21 02:07:11 -0800
committertrims <none@none>2011-01-21 02:07:11 -0800
commitf2772baeeae56d2abbef3dcc744731e1323bc2dd (patch)
tree9f808092ddae6db734d19766951a4f0ce553d56f
parentff1af029b943124e054fc648cc32ab6bdb54ebee (diff)
parent3579ca646cd8c19c13e5049a605e6053506ce3c9 (diff)
-rw-r--r--src/cpu/sparc/vm/c1_Runtime1_sparc.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp b/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
index d968c4e30..3a10d5ad8 100644
--- a/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
+++ b/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp
@@ -343,9 +343,10 @@ OopMapSet* Runtime1::generate_patching(StubAssembler* sasm, address target) {
// 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);