The unified diff between revisions [8583f573..] and [1fb418de..] is displayed below. It can also be downloaded as a raw diff.

This diff has been restricted to the following files: 'src/lsi/vm.c'

#
# old_revision [8583f573519b60d2a4dfb35aa4ec8079f05b88c1]
# new_revision [1fb418de708909ffb7935500c5a31bba681e96b8]
#
# patch "src/lsi/vm.c"
#  from [6f62d2db74a2a4932bd876c11abeab092af42a19]
#    to [494a44702b477512e9979cc5799f7e188fa19d2b]
#
============================================================
--- src/lsi/vm.c	6f62d2db74a2a4932bd876c11abeab092af42a19
+++ src/lsi/vm.c	494a44702b477512e9979cc5799f7e188fa19d2b
@@ -257,6 +257,19 @@ gloadarrayout:
 	return 1;
 }
 
+int vm_intfn___stackdump(void) {
+	int n = vm_current->sp - vm_current->stackbase;
+	int i;
+
+	printf("\n=====Stack dump======\n");
+	for (i = 0; i < n; i++) {
+		int e = stack_get(vm_current, i);
+		printf("%x\t%d\n", e, e);
+	}
+
+	return 1;
+}
+
 int vm_intfn_printint(void)
 {
 	printf("%d", stack_get(vm_current, 1));
@@ -768,12 +781,13 @@ int vm_intfn_map3d_setparams(void)
 
 int vm_intfn_map3d_setparams(void)
 {
-	map3d_setparams(stack_get(vm_current, 6), /* light */
-	    (double)stack_get(vm_current, 5), /* opan */
-	    (double)stack_get(vm_current, 4), /* otilt */
-	    (double)stack_getreal(vm_current, 3), /* lpan */
-	    (double)stack_getreal(vm_current, 2), /* ltilt */
-	    (double)stack_getreal(vm_current, 1)); /* dist */
+	map3d_setparams(stack_get(vm_current, 7), /* light */
+	    (double)stack_get(vm_current, 6), /* opan */
+	    (double)stack_get(vm_current, 5), /* otilt */
+	    (double)stack_getreal(vm_current, 4), /* lpan */
+	    (double)stack_getreal(vm_current, 3), /* ltilt */
+	    (double)stack_getreal(vm_current, 2), /* dist */
+	    (double)stack_get(vm_current, 1)); /* invert */
 	return 1;
 }
 
@@ -897,10 +911,10 @@ void vm_init_functions(void)
 		errx(1, "Bad version - recompile");
 
 	if ((GETINT(vm_codearea, 8) != vm_abiversion1) ||
-	    (GETINT(vm_codearea, 12) == vm_abiversion2) ||
-	    (GETINT(vm_codearea, 16) == vm_abiversion3) ||
-	    (GETINT(vm_codearea, 20) == vm_abiversion4) ||
-	    (GETINT(vm_codearea, 24) == vm_abiversion5))
+	    (GETINT(vm_codearea, 12) != vm_abiversion2) ||
+	    (GETINT(vm_codearea, 16) != vm_abiversion3) ||
+	    (GETINT(vm_codearea, 20) != vm_abiversion4) ||
+	    (GETINT(vm_codearea, 24) != vm_abiversion5))
 		errx(1, "Incompatible ABI version - recompile");
 
 	/* Now, get the function table pointer */
@@ -992,8 +1006,6 @@ int vm_spawn_args(char *fn, int n, ...)
 	}
 	newt->sp = newt->stackbase;
 
-	stack_push(newt, 0); 	/* Return value */
-
 	/* Push optional arguments */
 	va_start(ap, n);
 	while (n--) {
@@ -1003,6 +1015,8 @@ int vm_spawn_args(char *fn, int n, ...)
 	}
 	va_end(ap);
 
+	stack_push(newt, 0); 	/* Return value */
+
 	/* Push return address here, to point to some special thread exit
 	   routine */
 	stack_push(newt, 0);	/* Return address */