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]>