changeset 2492:916f3a417504

Got it!
author Gary Benson <gbenson@redhat.com>
date Fri, 01 Apr 2011 10:55:40 +0100
parents 1cca9095fd75
children 633f6a61a117
files src/cpu/zero/vm/cppInterpreter_zero.cpp
diffstat 1 files changed, 4 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/cpu/zero/vm/cppInterpreter_zero.cpp	Mon Mar 28 15:15:29 2011 +0100
+++ b/src/cpu/zero/vm/cppInterpreter_zero.cpp	Fri Apr 01 10:55:40 2011 +0100
@@ -948,18 +948,18 @@
           tty->print_cr("  %p: %p", slot, *slot);
         }
       }      
-      insert_vmslots(arg_slot, num_slots, THREAD);
+      stack->overflow_check(num_slots, THREAD);
       if (HAS_PENDING_EXCEPTION) {
         // all oops trashed
         stack->set_sp(unwind_sp);
         return;
       }
-      vmslots = stack->sp();
 
       // Duplicate the arguments
-      for (int i = 0; i < num_slots; i++)
-        SET_VMSLOTS_SLOT(VMSLOTS_SLOT(arg_slot + num_slots + i), arg_slot + i);
+      for (int i = num_slots - 1; i >= 0; i--)
+        stack->push(*VMSLOTS_SLOT(arg_slot + i));
 
+      vmslots = stack->sp();
       if (interesting) {
         tty->print_cr("----");
         for (intptr_t *slot = stack->sp(); slot < unwind_sp; slot++) {