Mercurial > hg > truffle
diff src/cpu/x86/vm/c1_Runtime1_x86.cpp @ 5124:837a304d0ca8
C1 bugfix, fixed C1 compilation errors
author | Christian Haeubl <christian.haeubl@oracle.com> |
---|---|
date | Tue, 20 Mar 2012 11:45:21 -0700 |
parents | 422c979ff392 |
children | ec177db4a412 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/c1_Runtime1_x86.cpp Tue Mar 20 10:33:39 2012 -0700 +++ b/src/cpu/x86/vm/c1_Runtime1_x86.cpp Tue Mar 20 11:45:21 2012 -0700 @@ -97,12 +97,23 @@ if (oop_result2->is_valid()) { movptr(Address(thread, JavaThread::vm_result_2_offset()), NULL_WORD); } +#ifdef GRAAL // (thomaswue) Deoptimize in case of an exception. 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)); jump(RuntimeAddress(SharedRuntime::deopt_blob()->uncommon_trap())); +#else + if (frame_size() == no_frame_size) { + leave(); + jump(RuntimeAddress(StubRoutines::forward_exception_entry())); + } else if (_stub_id == Runtime1::forward_exception_id) { + should_not_reach_here(); + } else { + jump(RuntimeAddress(Runtime1::entry_for(Runtime1::forward_exception_id))); + } +#endif bind(L); } // get oop results if there are any and reset the values in the thread