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
  
  
  

Reply via email to