cvsuser 04/03/22 03:48:28
Modified: imcc pcc.c
Log:
clear P3 if 15 PReg args are reached
Revision Changes Path
1.54 +9 -1 parrot/imcc/pcc.c
Index: pcc.c
===================================================================
RCS file: /cvs/public/parrot/imcc/pcc.c,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -w -r1.53 -r1.54
--- pcc.c 22 Mar 2004 09:13:33 -0000 1.53
+++ pcc.c 22 Mar 2004 11:48:28 -0000 1.54
@@ -263,6 +263,14 @@
ins = insINS(interpreter, unit, ins, "set", regs, 2);
break;
}
+ if (next[REGSET_P] == LAST_PARAM_REG) {
+ /* clear P3 */
+ if (!p3)
+ p3 = get_pasm_reg("P3");
+ regs[0] = p3;
+ ins = insINS(interpreter, unit, ins, "null", regs, 1);
+ p3 = NULL;
+ }
if (next[set] > LAST_PARAM_REG) {
goto overflow;
}
@@ -290,7 +298,7 @@
continue;
overflow:
if (!p3) {
- p3 = mk_pasm_reg(str_dup("P3"));
+ p3 = get_pasm_reg("P3");
tmp = iNEW(interpreter, unit, p3, str_dup("PerlArray"), NULL, 0);
insert_ins(unit, ins, tmp);
ins = tmp;