# New Ticket Created by Stephane Peiry # Please include the string: [perl #26201] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org:80/rt3/Ticket/Display.html?id=26201 >
This patch implements the inc_i and dec_i ops (cf. math.ops), for the Sun/Sparc JIT core. Mainly it follows the SPARC Architecture Manual "Mapping of Synthetic Instructions" where: inc <reg> maps to add <reg>, 1, <reg> dec <reg> maps to sub <reg>, 1, <reg> where 1 is an immediate value (hence emitm_add_i or emitm_sub_i). Since the required add/sub instructions are already in jit/sun4/jit_emit.h, only core.jit needs to be patched to have these jitted for the sun/sparc. Thanks, StÃphane
Index: jit/sun4/core.jit =================================================================== RCS file: /cvs/public/parrot/jit/sun4/core.jit,v retrieving revision 1.4 diff -u -r1.4 core.jit --- jit/sun4/core.jit 8 Mar 2003 09:05:42 -0000 1.4 +++ jit/sun4/core.jit 8 Feb 2004 15:10:29 -0000 @@ -180,6 +180,32 @@ Parrot_binop_x_x s/<op>/fdivd/ s/<_N>/_n/ } +TEMPLATE Parrot_incdec_i { + int arg1; + + if(MAP[1]){ + arg1 = MAP[1]; + } + else { + arg1 = ISR1; + jit_emit_load_i(jit_info, interpreter, 1, arg1); + } + + emitm_<op>_i(NATIVECODE, arg1, 1, arg1); + + if(!MAP[1]){ + jit_emit_store_i(jit_info, interpreter, 1, arg1); + } +} + +Parrot_inc_i { + Parrot_incdec_i s/<op>/add/ +} + +Parrot_dec_i { + Parrot_incdec_i s/<op>/sub/ +} + TEMPLATE Parrot_binop_i_xc { int arg1;