-rw-r--r-- | lib/jit_ppc-cpu.c | 17 |
diff --git a/lib/jit_ppc-cpu.c b/lib/jit_ppc-cpu.c index 844c8b1..2f65d36 100644 --- a/lib/jit_ppc-cpu.c +++ b/lib/jit_ppc-cpu.c @@ -447,10 +447,10 @@ static void _FXS(jit_state_t*,int,int,int,int,int,int,int); # define TWI(t,a,s) FDs(3,t,a,s) # define TWGTI(a,s) TWI(8,a,s) # define TWLLEI(a,s) TWI(6,a,s) -# define XOR(d,a,b) FXO(31,a,d,b,0,316) -# define XOR_(d,a,b) FXO_(31,a,d,b,0,316) -# define XORI(s,a,u) FDu(26,s,a,u) -# define XORIS(s,a,u) FDu(27,s,a,u) +# define XOR(d,a,b) FX(31,a,d,b,316) +# define XOR_(d,a,b) FX_(31,a,d,b,316) +# define XORI(s,a,u) FDu(26,a,s,u) +# define XORIS(s,a,u) FDu(27,a,s,u) # define nop(c) _nop(_jit,c) static void _nop(jit_state_t*,jit_int32_t); # define movr(r0,r1) _movr(_jit,r0,r1) @@ -492,6 +492,8 @@ static void _subci(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); # define subxr(r0,r1,r2) SUBFE(r0,r2,r1) # define subxi(r0,r1,i0) _subxi(_jit,r0,r1,i0) static void _subxi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); +# define rsbi(r0, r1, i0) _rsbi(_jit, r0, r1, i0) +static void _rsbi(jit_state_t*,jit_int32_t,jit_int32_t,jit_word_t); # if __WORDSIZE == 32 # define mulr(r0,r1,r2) MULLW(r0,r1,r2) # define mullr(r0,r1,r2) MULLW(r0,r1,r2) @@ -1120,6 +1122,13 @@ _subxi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) } static void +_rsbi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) +{ + subi(r0, r1, i0); + negr(r0, r0); +} + +static void _muli(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) { jit_int32_t reg; |