[Vm-dev] [commit] r2443 - Finally get the marshalling loop in the Alien plugin correct for Stack and Cogit

commits at squeakvm.org commits at squeakvm.org
Wed Jul 6 23:21:56 UTC 2011


Author: eliot
Date: 2011-07-06 16:21:56 -0700 (Wed, 06 Jul 2011)
New Revision: 2443

Modified:
   trunk/platforms/Cross/plugins/IA32ABI/dabusiness.h
Log:
Finally get the marshalling loop in the Alien plugin correct for Stack and Cogit
VMs (stack grows down VMs).


Modified: trunk/platforms/Cross/plugins/IA32ABI/dabusiness.h
===================================================================
--- trunk/platforms/Cross/plugins/IA32ABI/dabusiness.h	2011-07-05 02:42:09 UTC (rev 2442)
+++ trunk/platforms/Cross/plugins/IA32ABI/dabusiness.h	2011-07-06 23:21:56 UTC (rev 2443)
@@ -19,7 +19,7 @@
 #if STACKVM /* Need to access args downwards from first arg */
   if (numArgs < 0)
 	for (i = size = 0; --i >= numArgs;) {
-		sqInt arg = argVector[0-i];
+		sqInt arg = argVector[-1-i];
 		if (objIsAlien(arg) && sizeField(arg))
 			size += moduloPOT(sizeof(long),abs(sizeField(arg)));
 		else /* assume an integer or pointer.  check below. */
@@ -58,7 +58,7 @@
 #if STACKVM /* Need to access args downwards from first arg */
   if (numArgs < 0)
 	for (i = size = 0; --i >= numArgs;) {
-		sqInt arg = argVector[0-i];
+		sqInt arg = argVector[-1-i];
 		if (isSmallInt(arg)) {
 			*(long *)argvec = intVal(arg);
 			argvec += sizeof(long);



More information about the Vm-dev mailing list