hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp
changeset 1603 720c1119ad5e
parent 1388 3677f5f3d66b
child 2131 98f9cef66a34
--- a/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp	Sat Nov 22 00:16:09 2008 -0800
+++ b/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp	Mon Nov 24 14:45:47 2008 -0500
@@ -2085,7 +2085,7 @@
     } else {
       if (has_tos) {
       // save object pointer before call_VM() clobbers it
-        __ mov(Otos_i, Lscratch);
+        __ push_ptr(Otos_i);  // put object on tos where GC wants it.
       } else {
         // Load top of stack (do not pop the value off the stack);
         __ ld_ptr(Lesp, Interpreter::expr_offset_in_bytes(0), Otos_i);
@@ -2097,7 +2097,7 @@
     __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::post_field_access),
                Otos_i, Rcache);
     if (!is_static && has_tos) {
-      __ mov(Lscratch, Otos_i);  // restore object pointer
+      __ pop_ptr(Otos_i);  // restore object pointer
       __ verify_oop(Otos_i);
     }
     __ get_cache_and_index_at_bcp(Rcache, index, 1);