diff src/cpu/x86/vm/c1_Runtime1_x86.cpp @ 6453:3bba61323b38

added VMErrorNode intrinsic to support handling fatal errors in snippets
author Doug Simon <doug.simon@oracle.com>
date Thu, 27 Sep 2012 14:23:04 +0200
parents c8759f9f9e3c
children 921005bb0b45
line wrap: on
line diff
--- a/src/cpu/x86/vm/c1_Runtime1_x86.cpp	Wed Sep 26 21:48:07 2012 +0200
+++ b/src/cpu/x86/vm/c1_Runtime1_x86.cpp	Thu Sep 27 14:23:04 2012 +0200
@@ -1917,6 +1917,18 @@
       break;
     }
 
+    case graal_vm_error_id: {
+      __ enter();
+      oop_maps = new OopMapSet();
+      OopMap* oop_map = save_live_registers(sasm, 0);
+      int call_offset = __ call_RT(noreg, noreg, (address)graal_vm_error, j_rarg0, j_rarg1, j_rarg2);
+      oop_maps->add_gc_map(call_offset, oop_map);
+      restore_live_registers(sasm);
+      __ leave();
+      __ ret(0);
+      break;
+    }
+
     case graal_log_printf_id: {
       __ enter();
       oop_maps = new OopMapSet();