This patch will clash with Steve Fink's stacks patch, but you get the
idea.
Also, there's gonna be a small speed hit that I don't know how to get
around. 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. :-)
Index: core.ops
===================================================================
RCS file: /home/perlcvs/parrot/core.ops,v
retrieving revision 1.72
diff -u -r1.72 core.ops
--- core.ops 9 Jan 2002 17:24:11 -0000 1.72
+++ core.ops 10 Jan 2002 22:00:30 -0000
@@ -2292,7 +2292,8 @@
=cut
inline op save(in INT) {
- push_generic_entry(interpreter, &interpreter->user_stack_top, &($1),
STACK_ENTRY_INT, NULL);
+ INTVAL val = $1;
+ push_generic_entry(interpreter, &interpreter->user_stack_top, &val,
+STACK_ENTRY_INT, NULL);
goto NEXT();
}
- D
<[EMAIL PROTECTED]>