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