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