Mercurial > hg > truffle
comparison src/cpu/x86/vm/graalRuntime_x86.cpp @ 7154:5d0bb7d52783
changes to support Graal co-existing with the other HotSpot compiler(s) and being used for explicit compilation requests and code installation via the Graal API
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 12 Dec 2012 21:36:40 +0100 |
parents | 6c46172c04bf |
children | 8a3efb8c831d |
comparison
equal
deleted
inserted
replaced
7153:c421c19b7bf8 | 7154:5d0bb7d52783 |
---|---|
109 movptr(Address(thread, JavaThread::vm_result_offset()), NULL_WORD); | 109 movptr(Address(thread, JavaThread::vm_result_offset()), NULL_WORD); |
110 } | 110 } |
111 if (metadata_result->is_valid()) { | 111 if (metadata_result->is_valid()) { |
112 movptr(Address(thread, JavaThread::vm_result_2_offset()), NULL_WORD); | 112 movptr(Address(thread, JavaThread::vm_result_2_offset()), NULL_WORD); |
113 } | 113 } |
114 #ifdef GRAAL | |
115 // (thomaswue) Deoptimize in case of an exception. | 114 // (thomaswue) Deoptimize in case of an exception. |
116 restore_live_registers(this, false); | 115 restore_live_registers(this, false); |
117 movptr(Address(thread, Thread::pending_exception_offset()), NULL_WORD); | 116 movptr(Address(thread, Thread::pending_exception_offset()), NULL_WORD); |
118 leave(); | 117 leave(); |
119 movl(rscratch1, Deoptimization::make_trap_request(Deoptimization::Reason_constraint, Deoptimization::Action_reinterpret)); | 118 movl(rscratch1, Deoptimization::make_trap_request(Deoptimization::Reason_constraint, Deoptimization::Action_reinterpret)); |
120 jump(RuntimeAddress(SharedRuntime::deopt_blob()->uncommon_trap())); | 119 jump(RuntimeAddress(SharedRuntime::deopt_blob()->uncommon_trap())); |
121 #else | |
122 if (frame_size() == no_frame_size) { | |
123 leave(); | |
124 jump(RuntimeAddress(StubRoutines::forward_exception_entry())); | |
125 } else if (_stub_id == GraalRuntime::forward_exception_id) { | |
126 should_not_reach_here(); | |
127 } else { | |
128 jump(RuntimeAddress(GraalRuntime::entry_for(GraalRuntime::forward_exception_id))); | |
129 } | |
130 #endif | |
131 bind(L); | 120 bind(L); |
132 } | 121 } |
133 // get oop results if there are any and reset the values in the thread | 122 // get oop results if there are any and reset the values in the thread |
134 if (oop_result1->is_valid()) { | 123 if (oop_result1->is_valid()) { |
135 get_vm_result(oop_result1, thread); | 124 get_vm_result(oop_result1, thread); |