Mercurial > hg > truffle
comparison src/cpu/x86/vm/graalRuntime_x86.cpp @ 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 | 3d33975f6497 |
children | c3657d00e343 |
comparison
equal
deleted
inserted
replaced
8362:5981ea5996e8 | 8363:25691fcb505a |
---|---|
98 } | 98 } |
99 // (thomaswue) Deoptimize in case of an exception. | 99 // (thomaswue) Deoptimize in case of an exception. |
100 restore_live_registers(this, false); | 100 restore_live_registers(this, false); |
101 movptr(Address(thread, Thread::pending_exception_offset()), NULL_WORD); | 101 movptr(Address(thread, Thread::pending_exception_offset()), NULL_WORD); |
102 leave(); | 102 leave(); |
103 movl(rscratch1, Deoptimization::make_trap_request(Deoptimization::Reason_constraint, Deoptimization::Action_reinterpret)); | 103 movl(Address(thread, ThreadShadow::pending_deoptimization_offset()), Deoptimization::make_trap_request(Deoptimization::Reason_constraint, Deoptimization::Action_reinterpret)); |
104 jump(RuntimeAddress(SharedRuntime::deopt_blob()->uncommon_trap())); | 104 jump(RuntimeAddress(SharedRuntime::deopt_blob()->uncommon_trap())); |
105 bind(L); | 105 bind(L); |
106 } | 106 } |
107 // get oop results if there are any and reset the values in the thread | 107 // get oop results if there are any and reset the values in the thread |
108 if (oop_result1->is_valid()) { | 108 if (oop_result1->is_valid()) { |