cvsuser     04/09/25 07:44:25

  Modified:    jit/sun4 core.jit jit_emit.h
  Log:
  [perl #31720] [PATCH] fix make testj hang on solaris
  
  The solaris port does not yet support jitted vtables (for instance function
  Parrot_jit_vtable1_op is plain empty at the moment), so this patch comments
  out the whole "jit vatbles" block until we get it properly implemented.
  
  This fixes make testj on
  
    t/op/gc         (failing, passes ok now)
    t/op/lexicals.t (this was hanging undefintly, now passes ok)
  
  and also regain visibility on the jit tests, without having to manually
  bypass lexicals.
  
  [perl #31721] [PATCH] jit compare ops on solaris
  
  This patch implements some compare ops (eq, ne, lt, le, gt, ge on
  integers - template cmp_ix_ix_ic), for the JIT core on Sun/SPARC.
  
  Courtesy of Stephane Peiry <[EMAIL PROTECTED]>
  
  Revision  Changes    Path
  1.7       +119 -1    parrot/jit/sun4/core.jit
  
  Index: core.jit
  ===================================================================
  RCS file: /cvs/public/parrot/jit/sun4/core.jit,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -w -r1.6 -r1.7
  --- core.jit  15 Mar 2004 13:15:44 -0000      1.6
  +++ core.jit  25 Sep 2004 14:44:22 -0000      1.7
  @@ -1,7 +1,7 @@
   ;
   ; sun4/core.jit
   ;
  -; $Id: core.jit,v 1.6 2004/03/15 13:15:44 leo Exp $ 
  +; $Id: core.jit,v 1.7 2004/09/25 14:44:22 leo Exp $ 
   ;
   
   Parrot_end {
  @@ -583,6 +583,124 @@
       emitm_nop(NATIVECODE);
   }
   
  +TEMPLATE Parrot_cmp_ix_ix_ic {
  +    if(MAP[1] && MAP[2]){
  +        emitm_subcc_r(NATIVECODE, MAP[1], MAP[2], emitm_g(0));
  +    }
  +    else if (MAP[1]) {
  +        jit_emit_load_i(jit_info, interpreter, 2, ISR2);
  +        emitm_subcc_r(NATIVECODE, MAP[1], ISR2, emitm_g(0));
  +    }
  +    else if (MAP[2]) {
  +        jit_emit_load_i(jit_info, interpreter, 1, ISR1);
  +        emitm_subcc_r(NATIVECODE, ISR1, MAP[2], emitm_g(0));
  +    }
  +    else {
  +        jit_emit_load_i(jit_info, interpreter, 1, ISR1);
  +        jit_emit_load_i(jit_info, interpreter, 2, ISR2);
  +        emitm_subcc_r(NATIVECODE, ISR1, ISR2, emitm_g(0));
  +    }
  +
  +    Parrot_jit_bicc(jit_info, emitm_<a>, 0, *INT_CONST[3]);
  +    emitm_nop(NATIVECODE);
  +}
  +
  +Parrot_eq_ic_ic_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/be/
  +}
  +
  +Parrot_eq_i_ic_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/be/
  +}
  +
  +Parrot_eq_ic_i_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/be/
  +}
  +
  +Parrot_eq_i_i_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/be/
  +}
  +
  +Parrot_ne_ic_ic_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/bne/
  +}
  +
  +Parrot_ne_i_ic_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/bne/
  +}
  +
  +Parrot_ne_ic_i_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/bne/
  +}
  +
  +Parrot_ne_i_i_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/bne/
  +}
  +
  +Parrot_lt_ic_ic_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/bl/
  +}
  +
  +Parrot_lt_i_ic_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/bl/
  +}
  +
  +Parrot_lt_ic_i_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/bl/
  +}
  +
  +Parrot_lt_i_i_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/bl/
  +}
  +
  +Parrot_le_ic_ic_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/ble/
  +}
  +
  +Parrot_le_i_ic_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/ble/
  +}
  +
  +Parrot_le_ic_i_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/ble/
  +}
  +
  +Parrot_le_i_i_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/ble/
  +}
  +
  +Parrot_gt_ic_ic_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/bg/
  +}
  +
  +Parrot_gt_i_ic_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/bg/
  +}
  +
  +Parrot_gt_ic_i_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/bg/
  +}
  +
  +Parrot_gt_i_i_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/bg/
  +}
  +
  +Parrot_ge_ic_ic_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/bge/
  +}
  +
  +Parrot_ge_i_ic_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/bge/
  +}
  +
  +Parrot_ge_ic_i_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/bge/
  +}
  +
  +Parrot_ge_i_i_ic {
  +    Parrot_cmp_ix_ix_ic  s/<a>/bge/
  +}
  +
   /*
    * Local variables:
    * c-indentation-style: bsd
  
  
  
  1.28      +5 -5      parrot/jit/sun4/jit_emit.h
  
  Index: jit_emit.h
  ===================================================================
  RCS file: /cvs/public/parrot/jit/sun4/jit_emit.h,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -w -r1.27 -r1.28
  --- jit_emit.h        23 Apr 2004 09:20:56 -0000      1.27
  +++ jit_emit.h        25 Sep 2004 14:44:22 -0000      1.28
  @@ -3,7 +3,7 @@
   **
   ** SPARC
   **
  -** $Id: jit_emit.h,v 1.27 2004/04/23 09:20:56 jrieks Exp $
  +** $Id: jit_emit.h,v 1.28 2004/09/25 14:44:22 leo Exp $
   **/
   
   #if !defined(PARROT_SUN4_JIT_EMIT_H_GUARD)
  @@ -734,9 +734,9 @@
   }
   
   #  ifndef NO_JIT_VTABLE_OPS
  -
  +/*
   #    undef Parrot_jit_vtable1_op
  -/*#    undef Parrot_jit_vtable1r_op
  +#    undef Parrot_jit_vtable1r_op
   #    undef Parrot_jit_vtable2rk_op
   #    undef Parrot_jit_vtable3k_op
   
  @@ -752,14 +752,14 @@
   #    undef Parrot_jit_vtable_ifp_op
   #    undef Parrot_jit_vtable_unlessp_op
   #    undef Parrot_jit_vtable_newp_ic_op
  -*/
  +
   
   static void
   Parrot_jit_vtable1_op(Parrot_jit_info_t *jit_info,
                         Interp *interpreter)
   {
   }
  -
  +*/
   #endif /* NO_JIT_VTABLE_OPS */
   
   #else
  
  
  

Reply via email to