On Thu, 10 Jan 2002, David M. Lloyd wrote:

> The problem is that when you save an int constant on the stack in a
> mixed 32/64-bit system, the int type is 8 bytes but the pointer points
> to four bytes of int constant and four bytes of... something else.  So
> it has to be copied out into a temp variable before being referenced.
> I'll leave it to greater minds to find a way around this. :-)

This is the post-stack-API-change version of this patch.

Index: core.ops
===================================================================
RCS file: /home/perlcvs/parrot/core.ops,v
retrieving revision 1.74
diff -a -u -r1.74 core.ops
--- core.ops    10 Jan 2002 23:14:56 -0000      1.74
+++ core.ops    11 Jan 2002 00:50:04 -0000
@@ -2292,7 +2292,8 @@
 =cut

 inline op save(in INT) {
-  stack_push(interpreter, interpreter->user_stack, &($1), STACK_ENTRY_INT, NULL);
+  INTVAL i = $1;
+  stack_push(interpreter, interpreter->user_stack, &i, STACK_ENTRY_INT, NULL);
   goto NEXT();
 }

- D

<[EMAIL PROTECTED]>

Reply via email to