changeset 8363:25691fcb505a

Transmit deoptimization reason in thread local instead of scratch register.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Tue, 19 Mar 2013 14:13:51 +0100
parents 5981ea5996e8
children a2f83d256423 2ee5508896f1 496db8bf756d
files src/cpu/x86/vm/graalRuntime_x86.cpp src/cpu/x86/vm/sharedRuntime_x86_64.cpp
diffstat 2 files changed, 2 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/cpu/x86/vm/graalRuntime_x86.cpp	Tue Mar 19 11:35:25 2013 +0100
+++ b/src/cpu/x86/vm/graalRuntime_x86.cpp	Tue Mar 19 14:13:51 2013 +0100
@@ -100,7 +100,7 @@
     restore_live_registers(this, false);
     movptr(Address(thread, Thread::pending_exception_offset()), NULL_WORD);
     leave();
-    movl(rscratch1, Deoptimization::make_trap_request(Deoptimization::Reason_constraint, Deoptimization::Action_reinterpret));
+    movl(Address(thread, ThreadShadow::pending_deoptimization_offset()), Deoptimization::make_trap_request(Deoptimization::Reason_constraint, Deoptimization::Action_reinterpret));
     jump(RuntimeAddress(SharedRuntime::deopt_blob()->uncommon_trap()));
     bind(L);
   }
--- a/src/cpu/x86/vm/sharedRuntime_x86_64.cpp	Tue Mar 19 11:35:25 2013 +0100
+++ b/src/cpu/x86/vm/sharedRuntime_x86_64.cpp	Tue Mar 19 14:13:51 2013 +0100
@@ -3419,7 +3419,7 @@
   __ set_last_Java_frame(noreg, noreg, NULL);
 
   __ movl(c_rarg1, Address(r15_thread, in_bytes(ThreadShadow::pending_deoptimization_offset())));
-  __ movl(Address(r15_thread, in_bytes(ThreadShadow::pending_deoptimization_offset())), 0);
+  __ movl(Address(r15_thread, in_bytes(ThreadShadow::pending_deoptimization_offset())), -1);
 
   __ movl(r14, (int32_t)Deoptimization::Unpack_reexecute);
   __ mov(c_rarg0, r15_thread);