changeset 5593:fcb8d2b8dc42

fixed bug in stubs for RuntimeCall.LogObject and RuntimeCall.LogPrimitive: was missing frame management code around runtime call
author Doug Simon <doug.simon@oracle.com>
date Thu, 14 Jun 2012 11:56:24 +0200
parents d64507a295cc
children 9b85ab3d3ab7
files src/cpu/x86/vm/c1_Runtime1_x86.cpp
diffstat 1 files changed, 10 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/cpu/x86/vm/c1_Runtime1_x86.cpp	Wed Jun 13 19:11:20 2012 +0200
+++ b/src/cpu/x86/vm/c1_Runtime1_x86.cpp	Thu Jun 14 11:56:24 2012 +0200
@@ -1887,7 +1887,11 @@
 
     case graal_log_primitive_id: {
       __ enter();
-      __ call_RT(noreg, noreg, (address)graal_log_primitive, j_rarg0, j_rarg1, j_rarg2);
+      oop_maps = new OopMapSet();
+      OopMap* oop_map = save_live_registers(sasm, 0);
+      int call_offset = __ call_RT(noreg, noreg, (address)graal_log_primitive, j_rarg0, j_rarg1, j_rarg2);
+      oop_maps->add_gc_map(call_offset, oop_map);
+      restore_live_registers(sasm);
       __ leave();
       __ ret(0);
       break;
@@ -1895,7 +1899,11 @@
 
     case graal_log_object_id: {
       __ enter();
-      __ call_RT(noreg, noreg, (address)graal_log_object, j_rarg0, j_rarg1, j_rarg2);
+      oop_maps = new OopMapSet();
+      OopMap* oop_map = save_live_registers(sasm, 0);
+      int call_offset = __ call_RT(noreg, noreg, (address)graal_log_object, j_rarg0, j_rarg1, j_rarg2);
+      oop_maps->add_gc_map(call_offset, oop_map);
+      restore_live_registers(sasm);
       __ leave();
       __ ret(0);
       break;