cvsuser 03/07/06 02:24:40
Modified: jit/i386 core.jit
t/pmc iter.t
Log:
add comment for a JIT/i386 bug
Revision Changes Path
1.44 +7 -1 parrot/jit/i386/core.jit
Index: core.jit
===================================================================
RCS file: /cvs/public/parrot/jit/i386/core.jit,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -w -r1.43 -r1.44
--- core.jit 8 Mar 2003 15:44:37 -0000 1.43
+++ core.jit 6 Jul 2003 09:24:38 -0000 1.44
@@ -1,7 +1,7 @@
;
; i386/core.jit
;
-; $Id: core.jit,v 1.43 2003/03/08 15:44:37 leo Exp $
+; $Id: core.jit,v 1.44 2003/07/06 09:24:38 leo Exp $
;
# TODO complete this
@@ -858,6 +858,12 @@
}
TEMPLATE Parrot_ifunless_x_ic {
+ /*
+ * FIXME
+ * dec I1
+ * inc I0
+ * if I1, boom
+ */
if (P_ARITH) {
jit_emit_jcc(jit_info, <jnz>, *INT_CONST[2]);
}
1.4 +6 -1 parrot/t/pmc/iter.t
Index: iter.t
===================================================================
RCS file: /cvs/public/parrot/t/pmc/iter.t,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -w -r1.3 -r1.4
--- iter.t 5 Jul 2003 12:17:24 -0000 1.3
+++ iter.t 6 Jul 2003 09:24:40 -0000 1.4
@@ -150,8 +150,13 @@
fill:
chr S0, I0
set P0[S0], I0
- dec I1
+ # XXX
+ # swapping the next two lines breaks JIT/i386
+ # the reason is the if/unless optimization: When the
+ # previous opcode sets flags, these are used - but
+ # there is no check, that the same register is used in the "if".
inc I0
+ dec I1
if I1, fill
new P1, .Iterator, P0