diff src/cpu/sparc/vm/templateTable_sparc.cpp @ 10458:63e44cdabb91

fixed SPARC interpreter
author twisti
date Thu, 20 Jun 2013 10:56:34 -0700
parents 9500809ceead
children 6b0fd0964b87
line wrap: on
line diff
--- a/src/cpu/sparc/vm/templateTable_sparc.cpp	Thu Jun 20 10:55:42 2013 -0700
+++ b/src/cpu/sparc/vm/templateTable_sparc.cpp	Thu Jun 20 10:56:34 2013 -0700
@@ -2983,6 +2983,9 @@
 
   // get target Method* & entry point
   __ lookup_virtual_method(Rrecv, Rindex, G5_method);
+#ifdef GRAAL
+  __ profile_called_method(G5_method, Rtemp);
+#endif
   __ call_from_interpreter(Rcall, Gargs, Rret);
 }
 
@@ -3232,6 +3235,10 @@
   Register Rcall = Rinterface;
   assert_different_registers(Rcall, G5_method, Gargs, Rret);
 
+#ifdef GRAAL
+  __ profile_called_method(G5_method, Rscratch);
+#endif
+
   __ call_from_interpreter(Rcall, Gargs, Rret);
 }
 
@@ -3524,7 +3531,8 @@
   Register RspecifiedKlass = O4;
 
   // Check for casting a NULL
-  __ br_null_short(Otos_i, Assembler::pn, is_null);
+  __ br_null(Otos_i, false, Assembler::pn, is_null);
+  __ delayed()->nop();
 
   // Get value klass in RobjKlass
   __ load_klass(Otos_i, RobjKlass); // get value klass
@@ -3580,7 +3588,8 @@
   Register RspecifiedKlass = O4;
 
   // Check for casting a NULL
-  __ br_null_short(Otos_i, Assembler::pt, is_null);
+  __ br_null(Otos_i, false, Assembler::pt, is_null);
+  __ delayed()->nop();
 
   // Get value klass in RobjKlass
   __ load_klass(Otos_i, RobjKlass); // get value klass