1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-26 21:20:30 +02:00

Finish conversion to stdint types

This commit is contained in:
Andy Wingo 2018-10-31 21:49:10 +01:00
parent 47970773bc
commit a0714ec410
32 changed files with 3511 additions and 3523 deletions

View file

@ -472,167 +472,167 @@ typedef union {
# define NOP() ii(0xd503201f) # define NOP() ii(0xd503201f)
static int32_t logical_immediate(jit_word_t); static int32_t logical_immediate(jit_word_t);
# define oxxx(Op,Rd,Rn,Rm) _oxxx(_jit,Op,Rd,Rn,Rm) # define oxxx(Op,Rd,Rn,Rm) _oxxx(_jit,Op,Rd,Rn,Rm)
static void _oxxx(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); static void _oxxx(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_int32_t);
# define oxxi(Op,Rd,Rn,Imm12) _oxxi(_jit,Op,Rd,Rn,Imm12) # define oxxi(Op,Rd,Rn,Imm12) _oxxi(_jit,Op,Rd,Rn,Imm12)
static void _oxxi(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); static void _oxxi(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_int32_t);
# define oxx9(Op,Rd,Rn,Imm9) _oxx9(_jit,Op,Rd,Rn,Imm9) # define oxx9(Op,Rd,Rn,Imm9) _oxx9(_jit,Op,Rd,Rn,Imm9)
static void _oxx9(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); static void _oxx9(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_int32_t);
# define ox19(Op,Rd,Simm19) _ox19(_jit,Op,Rd,Simm19) # define ox19(Op,Rd,Simm19) _ox19(_jit,Op,Rd,Simm19)
static void _ox19(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ox19(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define oc19(Op,Cc,Simm19) _oc19(_jit,Op,Cc,Simm19) # define oc19(Op,Cc,Simm19) _oc19(_jit,Op,Cc,Simm19)
static void _oc19(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _oc19(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define o26(Op,Simm26) _o26(_jit,Op,Simm26) # define o26(Op,Simm26) _o26(_jit,Op,Simm26)
static void _oc26(jit_state_t*,int32_t,jit_int32_t); static void _oc26(jit_state_t*,int32_t,int32_t);
# define ox_x(Op,Rd,Rn) _ox_x(_jit,Op,Rd,Rn) # define ox_x(Op,Rd,Rn) _ox_x(_jit,Op,Rd,Rn)
static void _ox_x(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ox_x(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define o_xx(Op,Rd,Rn) _o_xx(_jit,Op,Rd,Rn) # define o_xx(Op,Rd,Rn) _o_xx(_jit,Op,Rd,Rn)
static void _o_xx(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _o_xx(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define oxx_(Op,Rn,Rm) _oxx_(_jit,Op,Rn,Rm) # define oxx_(Op,Rn,Rm) _oxx_(_jit,Op,Rn,Rm)
static void _oxx_(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _oxx_(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define o_x_(Op,Rn) _o_x_(_jit,Op,Rn) # define o_x_(Op,Rn) _o_x_(_jit,Op,Rn)
static void _o_x_(jit_state_t*,int32_t,jit_int32_t); static void _o_x_(jit_state_t*,int32_t,int32_t);
# define ox_h(Op,Rd,Imm16) _ox_h(_jit,Op,Rd,Imm16) # define ox_h(Op,Rd,Imm16) _ox_h(_jit,Op,Rd,Imm16)
static void _ox_h(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ox_h(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define oxxrs(Op,Rd,Rn,R,S) _oxxrs(_jit,Op,Rd,Rn,R,S) # define oxxrs(Op,Rd,Rn,R,S) _oxxrs(_jit,Op,Rd,Rn,R,S)
static void _oxxrs(jit_state_t*,int32_t,jit_int32_t, static void _oxxrs(jit_state_t*,int32_t,int32_t,
int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t);
# define oxxxc(Op,Rd,Rn,Rm,Cc) _oxxxc(_jit,Op,Rd,Rn,Rm,Cc) # define oxxxc(Op,Rd,Rn,Rm,Cc) _oxxxc(_jit,Op,Rd,Rn,Rm,Cc)
static void _oxxxc(jit_state_t*,int32_t,jit_int32_t, static void _oxxxc(jit_state_t*,int32_t,int32_t,
int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t);
# define oxxx7(Op,Rt,Rt2,Rn,Simm7) _oxxx7(_jit,Op,Rt,Rt2,Rn,Simm7) # define oxxx7(Op,Rt,Rt2,Rn,Simm7) _oxxx7(_jit,Op,Rt,Rt2,Rn,Simm7)
static void _oxxx7(jit_state_t*,int32_t, static void _oxxx7(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t,jit_int32_t);
# define nop(i0) _nop(_jit,i0) # define nop(i0) _nop(_jit,i0)
static void _nop(jit_state_t*,int32_t); static void _nop(jit_state_t*,int32_t);
# define addr(r0,r1,r2) ADD(r0,r1,r2) # define addr(r0,r1,r2) ADD(r0,r1,r2)
# define addi(r0,r1,i0) _addi(_jit,r0,r1,i0) # define addi(r0,r1,i0) _addi(_jit,r0,r1,i0)
static void _addi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _addi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define addcr(r0,r1,r2) ADDS(r0,r1,r2) # define addcr(r0,r1,r2) ADDS(r0,r1,r2)
# define addci(r0,r1,i0) _addci(_jit,r0,r1,i0) # define addci(r0,r1,i0) _addci(_jit,r0,r1,i0)
static void _addci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _addci(jit_state_t*,int32_t,int32_t,jit_word_t);
# define addxr(r0,r1,r2) ADCS(r0,r1,r2) # define addxr(r0,r1,r2) ADCS(r0,r1,r2)
# define addxi(r0,r1,i0) _addxi(_jit,r0,r1,i0) # define addxi(r0,r1,i0) _addxi(_jit,r0,r1,i0)
static void _addxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _addxi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define subr(r0,r1,r2) SUB(r0,r1,r2) # define subr(r0,r1,r2) SUB(r0,r1,r2)
# define subi(r0,r1,i0) _subi(_jit,r0,r1,i0) # define subi(r0,r1,i0) _subi(_jit,r0,r1,i0)
static void _subi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _subi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define subcr(r0,r1,r2) SUBS(r0,r1,r2) # define subcr(r0,r1,r2) SUBS(r0,r1,r2)
# define subci(r0,r1,i0) _subci(_jit,r0,r1,i0) # define subci(r0,r1,i0) _subci(_jit,r0,r1,i0)
static void _subci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _subci(jit_state_t*,int32_t,int32_t,jit_word_t);
# define subxr(r0,r1,r2) SBCS(r0,r1,r2) # define subxr(r0,r1,r2) SBCS(r0,r1,r2)
# define subxi(r0,r1,i0) _subxi(_jit,r0,r1,i0) # define subxi(r0,r1,i0) _subxi(_jit,r0,r1,i0)
static void _subxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _subxi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define rsbi(r0, r1, i0) _rsbi(_jit, r0, r1, i0) # define rsbi(r0, r1, i0) _rsbi(_jit, r0, r1, i0)
static void _rsbi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _rsbi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define mulr(r0,r1,r2) MUL(r0,r1,r2) # define mulr(r0,r1,r2) MUL(r0,r1,r2)
# define muli(r0,r1,i0) _muli(_jit,r0,r1,i0) # define muli(r0,r1,i0) _muli(_jit,r0,r1,i0)
static void _muli(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _muli(jit_state_t*,int32_t,int32_t,jit_word_t);
# define qmulr(r0,r1,r2,r3) _qmulr(_jit,r0,r1,r2,r3) # define qmulr(r0,r1,r2,r3) _qmulr(_jit,r0,r1,r2,r3)
static void _qmulr(jit_state_t*,int32_t, static void _qmulr(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t);
# define qmuli(r0,r1,r2,i0) _qmuli(_jit,r0,r1,r2,i0) # define qmuli(r0,r1,r2,i0) _qmuli(_jit,r0,r1,r2,i0)
static void _qmuli(jit_state_t*,int32_t, static void _qmuli(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_word_t); int32_t,int32_t,jit_word_t);
# define qmulr_u(r0,r1,r2,r3) _qmulr_u(_jit,r0,r1,r2,r3) # define qmulr_u(r0,r1,r2,r3) _qmulr_u(_jit,r0,r1,r2,r3)
static void _qmulr_u(jit_state_t*,int32_t, static void _qmulr_u(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t);
# define qmuli_u(r0,r1,r2,i0) _qmuli_u(_jit,r0,r1,r2,i0) # define qmuli_u(r0,r1,r2,i0) _qmuli_u(_jit,r0,r1,r2,i0)
static void _qmuli_u(jit_state_t*,int32_t, static void _qmuli_u(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_word_t); int32_t,int32_t,jit_word_t);
# define divr(r0,r1,r2) SDIV(r0,r1,r2) # define divr(r0,r1,r2) SDIV(r0,r1,r2)
# define divi(r0,r1,i0) _divi(_jit,r0,r1,i0) # define divi(r0,r1,i0) _divi(_jit,r0,r1,i0)
static void _divi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _divi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define divr_u(r0,r1,r2) UDIV(r0,r1,r2) # define divr_u(r0,r1,r2) UDIV(r0,r1,r2)
# define divi_u(r0,r1,i0) _divi_u(_jit,r0,r1,i0) # define divi_u(r0,r1,i0) _divi_u(_jit,r0,r1,i0)
static void _divi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _divi_u(jit_state_t*,int32_t,int32_t,jit_word_t);
# define qdivr(r0,r1,r2,r3) _iqdivr(_jit,1,r0,r1,r2,r3) # define qdivr(r0,r1,r2,r3) _iqdivr(_jit,1,r0,r1,r2,r3)
# define qdivr_u(r0,r1,r2,r3) _iqdivr(_jit,0,r0,r1,r2,r3) # define qdivr_u(r0,r1,r2,r3) _iqdivr(_jit,0,r0,r1,r2,r3)
static void _iqdivr(jit_state_t*,jit_bool_t, static void _iqdivr(jit_state_t*,jit_bool_t,
int32_t,jit_int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t,jit_int32_t);
# define qdivi(r0,r1,r2,i0) _qdivi(_jit,r0,r1,r2,i0) # define qdivi(r0,r1,r2,i0) _qdivi(_jit,r0,r1,r2,i0)
static void _qdivi(jit_state_t*,int32_t, static void _qdivi(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_word_t); int32_t,int32_t,jit_word_t);
# define qdivi_u(r0,r1,r2,i0) _qdivi_u(_jit,r0,r1,r2,i0) # define qdivi_u(r0,r1,r2,i0) _qdivi_u(_jit,r0,r1,r2,i0)
static void _qdivi_u(jit_state_t*,int32_t, static void _qdivi_u(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_word_t); int32_t,int32_t,jit_word_t);
# define remr(r0,r1,r2) _remr(_jit,r0,r1,r2) # define remr(r0,r1,r2) _remr(_jit,r0,r1,r2)
static void _remr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _remr(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define remi(r0,r1,i0) _remi(_jit,r0,r1,i0) # define remi(r0,r1,i0) _remi(_jit,r0,r1,i0)
static void _remi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _remi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define remr_u(r0,r1,r2) _remr_u(_jit,r0,r1,r2) # define remr_u(r0,r1,r2) _remr_u(_jit,r0,r1,r2)
static void _remr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _remr_u(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define remi_u(r0,r1,i0) _remi_u(_jit,r0,r1,i0) # define remi_u(r0,r1,i0) _remi_u(_jit,r0,r1,i0)
static void _remi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _remi_u(jit_state_t*,int32_t,int32_t,jit_word_t);
# define lshr(r0,r1,r2) LSL(r0,r1,r2) # define lshr(r0,r1,r2) LSL(r0,r1,r2)
# define lshi(r0,r1,i0) _lshi(_jit,r0,r1,i0) # define lshi(r0,r1,i0) _lshi(_jit,r0,r1,i0)
static void _lshi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _lshi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define rshr(r0,r1,r2) ASR(r0,r1,r2) # define rshr(r0,r1,r2) ASR(r0,r1,r2)
# define rshi(r0,r1,i0) _rshi(_jit,r0,r1,i0) # define rshi(r0,r1,i0) _rshi(_jit,r0,r1,i0)
static void _rshi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _rshi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define rshr_u(r0,r1,r2) LSR(r0,r1,r2) # define rshr_u(r0,r1,r2) LSR(r0,r1,r2)
# define rshi_u(r0,r1,i0) _rshi_u(_jit,r0,r1,i0) # define rshi_u(r0,r1,i0) _rshi_u(_jit,r0,r1,i0)
static void _rshi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _rshi_u(jit_state_t*,int32_t,int32_t,jit_word_t);
# define negr(r0,r1) NEG(r0,r1) # define negr(r0,r1) NEG(r0,r1)
# define comr(r0,r1) MVN(r0,r1) # define comr(r0,r1) MVN(r0,r1)
# define andr(r0,r1,r2) AND(r0,r1,r2) # define andr(r0,r1,r2) AND(r0,r1,r2)
# define andi(r0,r1,i0) _andi(_jit,r0,r1,i0) # define andi(r0,r1,i0) _andi(_jit,r0,r1,i0)
static void _andi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _andi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define orr(r0,r1,r2) ORR(r0,r1,r2) # define orr(r0,r1,r2) ORR(r0,r1,r2)
# define ori(r0,r1,i0) _ori(_jit,r0,r1,i0) # define ori(r0,r1,i0) _ori(_jit,r0,r1,i0)
static void _ori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ori(jit_state_t*,int32_t,int32_t,jit_word_t);
# define xorr(r0,r1,r2) EOR(r0,r1,r2) # define xorr(r0,r1,r2) EOR(r0,r1,r2)
# define xori(r0,r1,i0) _xori(_jit,r0,r1,i0) # define xori(r0,r1,i0) _xori(_jit,r0,r1,i0)
static void _xori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _xori(jit_state_t*,int32_t,int32_t,jit_word_t);
# define ldr_c(r0,r1) LDRSBI(r0,r1,0) # define ldr_c(r0,r1) LDRSBI(r0,r1,0)
# define ldi_c(r0,i0) _ldi_c(_jit,r0,i0) # define ldi_c(r0,i0) _ldi_c(_jit,r0,i0)
static void _ldi_c(jit_state_t*,int32_t,jit_word_t); static void _ldi_c(jit_state_t*,int32_t,jit_word_t);
# define ldr_uc(r0,r1) _ldr_uc(_jit,r0,r1) # define ldr_uc(r0,r1) _ldr_uc(_jit,r0,r1)
static void _ldr_uc(jit_state_t*,int32_t,jit_int32_t); static void _ldr_uc(jit_state_t*,int32_t,int32_t);
# define ldi_uc(r0,i0) _ldi_uc(_jit,r0,i0) # define ldi_uc(r0,i0) _ldi_uc(_jit,r0,i0)
static void _ldi_uc(jit_state_t*,int32_t,jit_word_t); static void _ldi_uc(jit_state_t*,int32_t,jit_word_t);
# define ldr_s(r0,r1) LDRSHI(r0,r1,0) # define ldr_s(r0,r1) LDRSHI(r0,r1,0)
# define ldi_s(r0,i0) _ldi_s(_jit,r0,i0) # define ldi_s(r0,i0) _ldi_s(_jit,r0,i0)
static void _ldi_s(jit_state_t*,int32_t,jit_word_t); static void _ldi_s(jit_state_t*,int32_t,jit_word_t);
# define ldr_us(r0,r1) _ldr_us(_jit,r0,r1) # define ldr_us(r0,r1) _ldr_us(_jit,r0,r1)
static void _ldr_us(jit_state_t*,int32_t,jit_int32_t); static void _ldr_us(jit_state_t*,int32_t,int32_t);
# define ldi_us(r0,i0) _ldi_us(_jit,r0,i0) # define ldi_us(r0,i0) _ldi_us(_jit,r0,i0)
static void _ldi_us(jit_state_t*,int32_t,jit_word_t); static void _ldi_us(jit_state_t*,int32_t,jit_word_t);
# define ldr_i(r0,r1) LDRSWI(r0,r1,0) # define ldr_i(r0,r1) LDRSWI(r0,r1,0)
# define ldi_i(r0,i0) _ldi_i(_jit,r0,i0) # define ldi_i(r0,i0) _ldi_i(_jit,r0,i0)
static void _ldi_i(jit_state_t*,int32_t,jit_word_t); static void _ldi_i(jit_state_t*,int32_t,jit_word_t);
# define ldr_ui(r0,r1) _ldr_ui(_jit,r0,r1) # define ldr_ui(r0,r1) _ldr_ui(_jit,r0,r1)
static void _ldr_ui(jit_state_t*,int32_t,jit_int32_t); static void _ldr_ui(jit_state_t*,int32_t,int32_t);
# define ldi_ui(r0,i0) _ldi_ui(_jit,r0,i0) # define ldi_ui(r0,i0) _ldi_ui(_jit,r0,i0)
static void _ldi_ui(jit_state_t*,int32_t,jit_word_t); static void _ldi_ui(jit_state_t*,int32_t,jit_word_t);
# define ldr_l(r0,r1) LDRI(r0,r1,0) # define ldr_l(r0,r1) LDRI(r0,r1,0)
static void _ldr_l(jit_state_t*,int32_t,jit_int32_t); static void _ldr_l(jit_state_t*,int32_t,int32_t);
# define ldi_l(r0,i0) _ldi_l(_jit,r0,i0) # define ldi_l(r0,i0) _ldi_l(_jit,r0,i0)
static void _ldi_l(jit_state_t*,int32_t,jit_word_t); static void _ldi_l(jit_state_t*,int32_t,jit_word_t);
# define ldxr_c(r0,r1,r2) _ldxr_c(_jit,r0,r1,r2) # define ldxr_c(r0,r1,r2) _ldxr_c(_jit,r0,r1,r2)
static void _ldxr_c(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_c(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ldxi_c(r0,r1,i0) _ldxi_c(_jit,r0,r1,i0) # define ldxi_c(r0,r1,i0) _ldxi_c(_jit,r0,r1,i0)
static void _ldxi_c(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_c(jit_state_t*,int32_t,int32_t,jit_word_t);
# define ldxr_uc(r0,r1,r2) _ldxr_uc(_jit,r0,r1,r2) # define ldxr_uc(r0,r1,r2) _ldxr_uc(_jit,r0,r1,r2)
static void _ldxr_uc(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_uc(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ldxi_uc(r0,r1,i0) _ldxi_uc(_jit,r0,r1,i0) # define ldxi_uc(r0,r1,i0) _ldxi_uc(_jit,r0,r1,i0)
static void _ldxi_uc(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_uc(jit_state_t*,int32_t,int32_t,jit_word_t);
# define ldxr_s(r0,r1,r2) LDRSH(r0,r1,r2) # define ldxr_s(r0,r1,r2) LDRSH(r0,r1,r2)
# define ldxi_s(r0,r1,i0) _ldxi_s(_jit,r0,r1,i0) # define ldxi_s(r0,r1,i0) _ldxi_s(_jit,r0,r1,i0)
static void _ldxi_s(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_s(jit_state_t*,int32_t,int32_t,jit_word_t);
# define ldxr_us(r0,r1,r2) _ldxr_us(_jit,r0,r1,r2) # define ldxr_us(r0,r1,r2) _ldxr_us(_jit,r0,r1,r2)
static void _ldxr_us(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_us(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ldxi_us(r0,r1,i0) _ldxi_us(_jit,r0,r1,i0) # define ldxi_us(r0,r1,i0) _ldxi_us(_jit,r0,r1,i0)
static void _ldxi_us(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_us(jit_state_t*,int32_t,int32_t,jit_word_t);
# define ldxr_i(r0,r1,r2) LDRSW(r0,r1,r2) # define ldxr_i(r0,r1,r2) LDRSW(r0,r1,r2)
# define ldxi_i(r0,r1,i0) _ldxi_i(_jit,r0,r1,i0) # define ldxi_i(r0,r1,i0) _ldxi_i(_jit,r0,r1,i0)
static void _ldxi_i(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_i(jit_state_t*,int32_t,int32_t,jit_word_t);
# define ldxr_ui(r0,r1,r2) _ldxr_ui(_jit,r0,r1,r2) # define ldxr_ui(r0,r1,r2) _ldxr_ui(_jit,r0,r1,r2)
static void _ldxr_ui(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_ui(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ldxi_ui(r0,r1,i0) _ldxi_ui(_jit,r0,r1,i0) # define ldxi_ui(r0,r1,i0) _ldxi_ui(_jit,r0,r1,i0)
static void _ldxi_ui(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_ui(jit_state_t*,int32_t,int32_t,jit_word_t);
# define ldxr_l(r0,r1,r2) LDR(r0,r1,r2) # define ldxr_l(r0,r1,r2) LDR(r0,r1,r2)
# define ldxi_l(r0,r1,i0) _ldxi_l(_jit,r0,r1,i0) # define ldxi_l(r0,r1,i0) _ldxi_l(_jit,r0,r1,i0)
static void _ldxi_l(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_l(jit_state_t*,int32_t,int32_t,jit_word_t);
# define str_c(r0,r1) STRBI(r1,r0,0) # define str_c(r0,r1) STRBI(r1,r0,0)
# define sti_c(i0,r0) _sti_c(_jit,i0,r0) # define sti_c(i0,r0) _sti_c(_jit,i0,r0)
static void _sti_c(jit_state_t*,jit_word_t,int32_t); static void _sti_c(jit_state_t*,jit_word_t,int32_t);
@ -647,21 +647,21 @@ static void _sti_i(jit_state_t*,jit_word_t,int32_t);
static void _sti_l(jit_state_t*,jit_word_t,int32_t); static void _sti_l(jit_state_t*,jit_word_t,int32_t);
# define stxr_c(r0,r1,r2) STRB(r2,r1,r0) # define stxr_c(r0,r1,r2) STRB(r2,r1,r0)
# define stxi_c(i0,r0,r1) _stxi_c(_jit,i0,r0,r1) # define stxi_c(i0,r0,r1) _stxi_c(_jit,i0,r0,r1)
static void _stxi_c(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_c(jit_state_t*,jit_word_t,int32_t,int32_t);
# define stxr_s(r0,r1,r2) STRH(r2,r1,r0) # define stxr_s(r0,r1,r2) STRH(r2,r1,r0)
# define stxi_s(i0,r0,r1) _stxi_s(_jit,i0,r0,r1) # define stxi_s(i0,r0,r1) _stxi_s(_jit,i0,r0,r1)
static void _stxi_s(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_s(jit_state_t*,jit_word_t,int32_t,int32_t);
# define stxr_i(r0,r1,r2) STRW(r2,r1,r0) # define stxr_i(r0,r1,r2) STRW(r2,r1,r0)
# define stxi_i(i0,r0,r1) _stxi_i(_jit,i0,r0,r1) # define stxi_i(i0,r0,r1) _stxi_i(_jit,i0,r0,r1)
static void _stxi_i(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_i(jit_state_t*,jit_word_t,int32_t,int32_t);
# define stxr_l(r0,r1,r2) STR(r2,r1,r0) # define stxr_l(r0,r1,r2) STR(r2,r1,r0)
# define stxi_l(i0,r0,r1) _stxi_l(_jit,i0,r0,r1) # define stxi_l(i0,r0,r1) _stxi_l(_jit,i0,r0,r1)
static void _stxi_l(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_l(jit_state_t*,jit_word_t,int32_t,int32_t);
# if __BYTE_ORDER == __LITTLE_ENDIAN # if __BYTE_ORDER == __LITTLE_ENDIAN
# define htonr_us(r0,r1) _htonr_us(_jit,r0,r1) # define htonr_us(r0,r1) _htonr_us(_jit,r0,r1)
static void _htonr_us(jit_state_t*,int32_t,jit_int32_t); static void _htonr_us(jit_state_t*,int32_t,int32_t);
# define htonr_ui(r0,r1) _htonr_ui(_jit,r0,r1) # define htonr_ui(r0,r1) _htonr_ui(_jit,r0,r1)
static void _htonr_ui(jit_state_t*,int32_t,jit_int32_t); static void _htonr_ui(jit_state_t*,int32_t,int32_t);
# define htonr_ul(r0,r1) REV(r0,r1) # define htonr_ul(r0,r1) REV(r0,r1)
# else # else
# define htonr_us(r0,r1) extr_us(r0,r1) # define htonr_us(r0,r1) extr_us(r0,r1)
@ -675,15 +675,15 @@ static void _htonr_ui(jit_state_t*,int32_t,jit_int32_t);
# define extr_i(r0,r1) SXTW(r0,r1) # define extr_i(r0,r1) SXTW(r0,r1)
# define extr_ui(r0,r1) UXTW(r0,r1) # define extr_ui(r0,r1) UXTW(r0,r1)
# define movr(r0,r1) _movr(_jit,r0,r1) # define movr(r0,r1) _movr(_jit,r0,r1)
static void _movr(jit_state_t*,int32_t,jit_int32_t); static void _movr(jit_state_t*,int32_t,int32_t);
# define movi(r0,i0) _movi(_jit,r0,i0) # define movi(r0,i0) _movi(_jit,r0,i0)
static void _movi(jit_state_t*,int32_t,jit_word_t); static void _movi(jit_state_t*,int32_t,jit_word_t);
# define movi_p(r0,i0) _movi_p(_jit,r0,i0) # define movi_p(r0,i0) _movi_p(_jit,r0,i0)
static jit_word_t _movi_p(jit_state_t*,int32_t,jit_word_t); static jit_word_t _movi_p(jit_state_t*,int32_t,jit_word_t);
# define ccr(cc,r0,r1,r2) _ccr(_jit,cc,r0,r1,r2) # define ccr(cc,r0,r1,r2) _ccr(_jit,cc,r0,r1,r2)
static void _ccr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); static void _ccr(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_int32_t);
# define cci(cc,r0,r1,i0) _cci(_jit,cc,r0,r1,i0) # define cci(cc,r0,r1,i0) _cci(_jit,cc,r0,r1,i0)
static void _cci(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_word_t); static void _cci(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_word_t);
# define ltr(r0,r1,r2) ccr(CC_LT,r0,r1,r2) # define ltr(r0,r1,r2) ccr(CC_LT,r0,r1,r2)
# define lti(r0,r1,i0) cci(CC_LT,r0,r1,i0) # define lti(r0,r1,i0) cci(CC_LT,r0,r1,i0)
# define ltr_u(r0,r1,r2) ccr(CC_CC,r0,r1,r2) # define ltr_u(r0,r1,r2) ccr(CC_CC,r0,r1,r2)
@ -706,10 +706,10 @@ static void _cci(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_word_t);
# define nei(r0,r1,i0) cci(CC_NE,r0,r1,i0) # define nei(r0,r1,i0) cci(CC_NE,r0,r1,i0)
# define bccr(cc,i0,r0,r1) _bccr(_jit,cc,i0,r0,r1) # define bccr(cc,i0,r0,r1) _bccr(_jit,cc,i0,r0,r1)
static jit_word_t static jit_word_t
_bccr(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_int32_t); _bccr(jit_state_t*,int32_t,jit_word_t,int32_t,jit_int32_t);
# define bcci(cc,i0,r0,i1) _bcci(_jit,cc,i0,r0,i1) # define bcci(cc,i0,r0,i1) _bcci(_jit,cc,i0,r0,i1)
static jit_word_t static jit_word_t
_bcci(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_word_t); _bcci(jit_state_t*,int32_t,jit_word_t,int32_t,jit_word_t);
# define bltr(i0,r0,r1) bccr(BCC_LT,i0,r0,r1) # define bltr(i0,r0,r1) bccr(BCC_LT,i0,r0,r1)
# define blti(i0,r0,i1) bcci(BCC_LT,i0,r0,i1) # define blti(i0,r0,i1) bcci(BCC_LT,i0,r0,i1)
# define bltr_u(i0,r0,r1) bccr(BCC_CC,i0,r0,r1) # define bltr_u(i0,r0,r1) bccr(BCC_CC,i0,r0,r1)
@ -734,10 +734,10 @@ static jit_word_t _beqi(jit_state_t*,jit_word_t,int32_t,jit_word_t);
static jit_word_t _bnei(jit_state_t*,jit_word_t,int32_t,jit_word_t); static jit_word_t _bnei(jit_state_t*,jit_word_t,int32_t,jit_word_t);
# define baddr(cc,i0,r0,r1) _baddr(_jit,cc,i0,r0,r1) # define baddr(cc,i0,r0,r1) _baddr(_jit,cc,i0,r0,r1)
static jit_word_t static jit_word_t
_baddr(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_int32_t); _baddr(jit_state_t*,int32_t,jit_word_t,int32_t,jit_int32_t);
# define baddi(cc,i0,r0,i1) _baddi(_jit,cc,i0,r0,i1) # define baddi(cc,i0,r0,i1) _baddi(_jit,cc,i0,r0,i1)
static jit_word_t static jit_word_t
_baddi(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_word_t); _baddi(jit_state_t*,int32_t,jit_word_t,int32_t,jit_word_t);
# define boaddr(i0,r0,r1) baddr(BCC_VS,i0,r0,r1) # define boaddr(i0,r0,r1) baddr(BCC_VS,i0,r0,r1)
# define boaddi(i0,r0,i1) baddi(BCC_VS,i0,r0,i1) # define boaddi(i0,r0,i1) baddi(BCC_VS,i0,r0,i1)
# define boaddr_u(i0,r0,r1) baddr(BCC_HS,i0,r0,r1) # define boaddr_u(i0,r0,r1) baddr(BCC_HS,i0,r0,r1)
@ -748,10 +748,10 @@ _baddi(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_word_t);
# define bxaddi_u(i0,r0,i1) baddi(BCC_LO,i0,r0,i1) # define bxaddi_u(i0,r0,i1) baddi(BCC_LO,i0,r0,i1)
# define bsubr(cc,i0,r0,r1) _bsubr(_jit,cc,i0,r0,r1) # define bsubr(cc,i0,r0,r1) _bsubr(_jit,cc,i0,r0,r1)
static jit_word_t static jit_word_t
_bsubr(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_int32_t); _bsubr(jit_state_t*,int32_t,jit_word_t,int32_t,jit_int32_t);
# define bsubi(cc,i0,r0,i1) _bsubi(_jit,cc,i0,r0,i1) # define bsubi(cc,i0,r0,i1) _bsubi(_jit,cc,i0,r0,i1)
static jit_word_t static jit_word_t
_bsubi(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_word_t); _bsubi(jit_state_t*,int32_t,jit_word_t,int32_t,jit_word_t);
# define bosubr(i0,r0,r1) bsubr(BCC_VS,i0,r0,r1) # define bosubr(i0,r0,r1) bsubr(BCC_VS,i0,r0,r1)
# define bosubi(i0,r0,i1) bsubi(BCC_VS,i0,r0,i1) # define bosubi(i0,r0,i1) bsubi(BCC_VS,i0,r0,i1)
# define bosubr_u(i0,r0,r1) bsubr(BCC_LO,i0,r0,r1) # define bosubr_u(i0,r0,r1) bsubr(BCC_LO,i0,r0,r1)
@ -762,10 +762,10 @@ _bsubi(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_word_t);
# define bxsubi_u(i0,r0,i1) bsubi(BCC_HS,i0,r0,i1) # define bxsubi_u(i0,r0,i1) bsubi(BCC_HS,i0,r0,i1)
# define bmxr(cc,i0,r0,r1) _bmxr(_jit,cc,i0,r0,r1) # define bmxr(cc,i0,r0,r1) _bmxr(_jit,cc,i0,r0,r1)
static jit_word_t static jit_word_t
_bmxr(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_int32_t); _bmxr(jit_state_t*,int32_t,jit_word_t,int32_t,jit_int32_t);
# define bmxi(cc,i0,r0,r1) _bmxi(_jit,cc,i0,r0,r1) # define bmxi(cc,i0,r0,r1) _bmxi(_jit,cc,i0,r0,r1)
static jit_word_t static jit_word_t
_bmxi(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_word_t); _bmxi(jit_state_t*,int32_t,jit_word_t,int32_t,jit_word_t);
# define bmsr(i0,r0,r1) bmxr(BCC_NE,i0,r0,r1) # define bmsr(i0,r0,r1) bmxr(BCC_NE,i0,r0,r1)
# define bmsi(i0,r0,i1) bmxi(BCC_NE,i0,r0,i1) # define bmsi(i0,r0,i1) bmxi(BCC_NE,i0,r0,i1)
# define bmcr(i0,r0,r1) bmxr(BCC_EQ,i0,r0,r1) # define bmcr(i0,r0,r1) bmxr(BCC_EQ,i0,r0,r1)
@ -787,7 +787,7 @@ static void _epilog(jit_state_t*,jit_node_t*);
# define vastart(r0) _vastart(_jit, r0) # define vastart(r0) _vastart(_jit, r0)
static void _vastart(jit_state_t*, int32_t); static void _vastart(jit_state_t*, int32_t);
# define vaarg(r0, r1) _vaarg(_jit, r0, r1) # define vaarg(r0, r1) _vaarg(_jit, r0, r1)
static void _vaarg(jit_state_t*, int32_t, jit_int32_t); static void _vaarg(jit_state_t*, int32_t, int32_t);
# define patch_at(jump,label) _patch_at(_jit,jump,label) # define patch_at(jump,label) _patch_at(_jit,jump,label)
static void _patch_at(jit_state_t*,jit_word_t,jit_word_t); static void _patch_at(jit_state_t*,jit_word_t,jit_word_t);
#endif #endif
@ -827,7 +827,7 @@ logical_immediate(jit_word_t imm)
static void static void
_oxxx(jit_state_t *_jit, int32_t Op, _oxxx(jit_state_t *_jit, int32_t Op,
int32_t Rd, jit_int32_t Rn, jit_int32_t Rm) int32_t Rd, int32_t Rn, jit_int32_t Rm)
{ {
instr_t i; instr_t i;
assert(!(Rd & ~0x1f)); assert(!(Rd & ~0x1f));
@ -843,7 +843,7 @@ _oxxx(jit_state_t *_jit, int32_t Op,
static void static void
_oxxi(jit_state_t *_jit, int32_t Op, _oxxi(jit_state_t *_jit, int32_t Op,
int32_t Rd, jit_int32_t Rn, jit_int32_t Imm12) int32_t Rd, int32_t Rn, jit_int32_t Imm12)
{ {
instr_t i; instr_t i;
assert(!(Rd & ~0x1f)); assert(!(Rd & ~0x1f));
@ -859,7 +859,7 @@ _oxxi(jit_state_t *_jit, int32_t Op,
static void static void
_oxx9(jit_state_t *_jit, int32_t Op, _oxx9(jit_state_t *_jit, int32_t Op,
int32_t Rd, jit_int32_t Rn, jit_int32_t Imm9) int32_t Rd, int32_t Rn, jit_int32_t Imm9)
{ {
instr_t i; instr_t i;
assert(!(Rd & ~0x1f)); assert(!(Rd & ~0x1f));
@ -874,7 +874,7 @@ _oxx9(jit_state_t *_jit, int32_t Op,
} }
static void static void
_ox19(jit_state_t *_jit, int32_t Op, jit_int32_t Rd, jit_int32_t Simm19) _ox19(jit_state_t *_jit, int32_t Op, int32_t Rd, jit_int32_t Simm19)
{ {
instr_t i; instr_t i;
assert(!(Rd & ~0x1f)); assert(!(Rd & ~0x1f));
@ -887,7 +887,7 @@ _ox19(jit_state_t *_jit, int32_t Op, jit_int32_t Rd, jit_int32_t Simm19)
} }
static void static void
_oc19(jit_state_t *_jit, int32_t Op, jit_int32_t Cc, jit_int32_t Simm19) _oc19(jit_state_t *_jit, int32_t Op, int32_t Cc, jit_int32_t Simm19)
{ {
instr_t i; instr_t i;
assert(!(Cc & ~0xf)); assert(!(Cc & ~0xf));
@ -900,7 +900,7 @@ _oc19(jit_state_t *_jit, int32_t Op, jit_int32_t Cc, jit_int32_t Simm19)
} }
static void static void
_o26(jit_state_t *_jit, int32_t Op, jit_int32_t Simm26) _o26(jit_state_t *_jit, int32_t Op, int32_t Simm26)
{ {
instr_t i; instr_t i;
assert(Simm26 >= -33554432 && Simm26 <= 33554431); assert(Simm26 >= -33554432 && Simm26 <= 33554431);
@ -911,7 +911,7 @@ _o26(jit_state_t *_jit, int32_t Op, jit_int32_t Simm26)
} }
static void static void
_ox_x(jit_state_t *_jit, int32_t Op, jit_int32_t Rd, jit_int32_t Rm) _ox_x(jit_state_t *_jit, int32_t Op, int32_t Rd, jit_int32_t Rm)
{ {
instr_t i; instr_t i;
assert(!(Rd & ~0x1f)); assert(!(Rd & ~0x1f));
@ -924,7 +924,7 @@ _ox_x(jit_state_t *_jit, int32_t Op, jit_int32_t Rd, jit_int32_t Rm)
} }
static void static void
_o_xx(jit_state_t *_jit, int32_t Op, jit_int32_t Rd, jit_int32_t Rn) _o_xx(jit_state_t *_jit, int32_t Op, int32_t Rd, jit_int32_t Rn)
{ {
instr_t i; instr_t i;
assert(!(Rd & ~0x1f)); assert(!(Rd & ~0x1f));
@ -937,7 +937,7 @@ _o_xx(jit_state_t *_jit, int32_t Op, jit_int32_t Rd, jit_int32_t Rn)
} }
static void static void
_oxx_(jit_state_t *_jit, int32_t Op, jit_int32_t Rn, jit_int32_t Rm) _oxx_(jit_state_t *_jit, int32_t Op, int32_t Rn, jit_int32_t Rm)
{ {
instr_t i; instr_t i;
assert(!(Rn & ~0x1f)); assert(!(Rn & ~0x1f));
@ -950,7 +950,7 @@ _oxx_(jit_state_t *_jit, int32_t Op, jit_int32_t Rn, jit_int32_t Rm)
} }
static void static void
_o_x_(jit_state_t *_jit, int32_t Op, jit_int32_t Rn) _o_x_(jit_state_t *_jit, int32_t Op, int32_t Rn)
{ {
instr_t i; instr_t i;
assert(!(Rn & ~0x1f)); assert(!(Rn & ~0x1f));
@ -961,7 +961,7 @@ _o_x_(jit_state_t *_jit, int32_t Op, jit_int32_t Rn)
} }
static void static void
_ox_h(jit_state_t *_jit, int32_t Op, jit_int32_t Rd, jit_int32_t Imm16) _ox_h(jit_state_t *_jit, int32_t Op, int32_t Rd, jit_int32_t Imm16)
{ {
instr_t i; instr_t i;
assert(!(Rd & ~0x1f)); assert(!(Rd & ~0x1f));
@ -975,7 +975,7 @@ _ox_h(jit_state_t *_jit, int32_t Op, jit_int32_t Rd, jit_int32_t Imm16)
static void static void
_oxxrs(jit_state_t *_jit, int32_t Op, _oxxrs(jit_state_t *_jit, int32_t Op,
int32_t Rd, jit_int32_t Rn, jit_int32_t R, jit_int32_t S) int32_t Rd, int32_t Rn, jit_int32_t R, jit_int32_t S)
{ {
instr_t i; instr_t i;
assert(!(Rd & ~0x1f)); assert(!(Rd & ~0x1f));
@ -993,7 +993,7 @@ _oxxrs(jit_state_t *_jit, int32_t Op,
static void static void
_oxxxc(jit_state_t *_jit, int32_t Op, _oxxxc(jit_state_t *_jit, int32_t Op,
int32_t Rd, jit_int32_t Rn, jit_int32_t Rm, jit_int32_t Cc) int32_t Rd, int32_t Rn, jit_int32_t Rm, jit_int32_t Cc)
{ {
instr_t i; instr_t i;
assert(!(Rd & ~0x1f)); assert(!(Rd & ~0x1f));
@ -1011,7 +1011,7 @@ _oxxxc(jit_state_t *_jit, int32_t Op,
static void static void
_oxxx7(jit_state_t *_jit, int32_t Op, _oxxx7(jit_state_t *_jit, int32_t Op,
int32_t Rt, jit_int32_t Rt2, jit_int32_t Rn, jit_int32_t Simm7) int32_t Rt, int32_t Rt2, jit_int32_t Rn, jit_int32_t Simm7)
{ {
instr_t i; instr_t i;
assert(!(Rt & ~0x1f)); assert(!(Rt & ~0x1f));
@ -1036,7 +1036,7 @@ _nop(jit_state_t *_jit, int32_t i0)
} }
static void static void
_addi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _addi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
jit_word_t is = i0 >> 12; jit_word_t is = i0 >> 12;
@ -1059,7 +1059,7 @@ _addi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_addci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _addci(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
jit_word_t is = i0 >> 12; jit_word_t is = i0 >> 12;
@ -1082,7 +1082,7 @@ _addci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_addxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _addxi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1092,7 +1092,7 @@ _addxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_subi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _subi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
jit_word_t is = i0 >> 12; jit_word_t is = i0 >> 12;
@ -1109,7 +1109,7 @@ _subi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_subci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _subci(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
jit_word_t is = i0 >> 12; jit_word_t is = i0 >> 12;
@ -1126,7 +1126,7 @@ _subci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_subxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _subxi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1136,14 +1136,14 @@ _subxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_rsbi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _rsbi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
subi(r0, r1, i0); subi(r0, r1, i0);
negr(r0, r0); negr(r0, r0);
} }
static void static void
_muli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _muli(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1154,7 +1154,7 @@ _muli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
static void static void
_qmulr(jit_state_t *_jit, int32_t r0, _qmulr(jit_state_t *_jit, int32_t r0,
int32_t r1, jit_int32_t r2, jit_int32_t r3) int32_t r1, int32_t r2, jit_int32_t r3)
{ {
int32_t reg; int32_t reg;
if (r0 == r2 || r0 == r3) { if (r0 == r2 || r0 == r3) {
@ -1172,7 +1172,7 @@ _qmulr(jit_state_t *_jit, int32_t r0,
static void static void
_qmuli(jit_state_t *_jit, int32_t r0, _qmuli(jit_state_t *_jit, int32_t r0,
int32_t r1, jit_int32_t r2, jit_word_t i0) int32_t r1, int32_t r2, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1183,7 +1183,7 @@ _qmuli(jit_state_t *_jit, int32_t r0,
static void static void
_qmulr_u(jit_state_t *_jit, int32_t r0, _qmulr_u(jit_state_t *_jit, int32_t r0,
int32_t r1, jit_int32_t r2, jit_int32_t r3) int32_t r1, int32_t r2, jit_int32_t r3)
{ {
int32_t reg; int32_t reg;
if (r0 == r2 || r0 == r3) { if (r0 == r2 || r0 == r3) {
@ -1201,7 +1201,7 @@ _qmulr_u(jit_state_t *_jit, int32_t r0,
static void static void
_qmuli_u(jit_state_t *_jit, int32_t r0, _qmuli_u(jit_state_t *_jit, int32_t r0,
int32_t r1, jit_int32_t r2, jit_word_t i0) int32_t r1, int32_t r2, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1211,7 +1211,7 @@ _qmuli_u(jit_state_t *_jit, int32_t r0,
} }
static void static void
_divi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _divi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1221,7 +1221,7 @@ _divi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_divi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _divi_u(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1232,7 +1232,7 @@ _divi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
static void static void
_iqdivr(jit_state_t *_jit, jit_bool_t sign, _iqdivr(jit_state_t *_jit, jit_bool_t sign,
int32_t r0, jit_int32_t r1, jit_int32_t r2, jit_int32_t r3) int32_t r0, int32_t r1, jit_int32_t r2, jit_int32_t r3)
{ {
int32_t sv0, rg0; int32_t sv0, rg0;
int32_t sv1, rg1; int32_t sv1, rg1;
@ -1266,7 +1266,7 @@ _iqdivr(jit_state_t *_jit, jit_bool_t sign,
static void static void
_qdivi(jit_state_t *_jit, int32_t r0, _qdivi(jit_state_t *_jit, int32_t r0,
int32_t r1, jit_int32_t r2, jit_word_t i0) int32_t r1, int32_t r2, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1277,7 +1277,7 @@ _qdivi(jit_state_t *_jit, int32_t r0,
static void static void
_qdivi_u(jit_state_t *_jit, int32_t r0, _qdivi_u(jit_state_t *_jit, int32_t r0,
int32_t r1, jit_int32_t r2, jit_word_t i0) int32_t r1, int32_t r2, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1287,7 +1287,7 @@ _qdivi_u(jit_state_t *_jit, int32_t r0,
} }
static void static void
_remr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _remr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (r0 == r1 || r0 == r2) { if (r0 == r1 || r0 == r2) {
@ -1305,7 +1305,7 @@ _remr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_remi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _remi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1315,7 +1315,7 @@ _remi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_remr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _remr_u(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (r0 == r1 || r0 == r2) { if (r0 == r1 || r0 == r2) {
@ -1333,7 +1333,7 @@ _remr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_remi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _remi_u(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1343,7 +1343,7 @@ _remi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_lshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _lshi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
if (i0 == 0) if (i0 == 0)
movr(r0, r1); movr(r0, r1);
@ -1354,7 +1354,7 @@ _lshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_rshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _rshi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
if (i0 == 0) if (i0 == 0)
movr(r0, r1); movr(r0, r1);
@ -1365,7 +1365,7 @@ _rshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_rshi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _rshi_u(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
if (i0 == 0) if (i0 == 0)
movr(r0, r1); movr(r0, r1);
@ -1376,7 +1376,7 @@ _rshi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_andi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _andi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
int32_t imm; int32_t imm;
@ -1398,7 +1398,7 @@ _andi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ori(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
int32_t imm; int32_t imm;
@ -1420,7 +1420,7 @@ _ori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_xori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _xori(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
int32_t imm; int32_t imm;
@ -1443,14 +1443,14 @@ _xori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
#if __BYTE_ORDER == __LITTLE_ENDIAN #if __BYTE_ORDER == __LITTLE_ENDIAN
static void static void
_htonr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _htonr_us(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
htonr_ul(r0, r1); htonr_ul(r0, r1);
rshi_u(r0, r0, 48); rshi_u(r0, r0, 48);
} }
static void static void
_htonr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _htonr_ui(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
htonr_ul(r0, r1); htonr_ul(r0, r1);
rshi_u(r0, r0, 32); rshi_u(r0, r0, 32);
@ -1468,7 +1468,7 @@ _ldi_c(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_ldr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _ldr_uc(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
LDRBI(r0, r1, 0); LDRBI(r0, r1, 0);
#if 0 #if 0
@ -1497,7 +1497,7 @@ _ldi_s(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_ldr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _ldr_us(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
LDRHI(r0, r1, 0); LDRHI(r0, r1, 0);
#if 0 #if 0
@ -1526,7 +1526,7 @@ _ldi_i(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_ldr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _ldr_ui(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
LDRWI(r0, r1, 0); LDRWI(r0, r1, 0);
#if 0 #if 0
@ -1555,14 +1555,14 @@ _ldi_l(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_ldxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_c(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
LDRSB(r0, r1, r2); LDRSB(r0, r1, r2);
extr_c(r0, r0); extr_c(r0, r0);
} }
static void static void
_ldxi_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_c(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (i0 >= 0 && i0 <= 4095) if (i0 >= 0 && i0 <= 4095)
@ -1579,7 +1579,7 @@ _ldxi_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ldxr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_uc(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
LDRB(r0, r1, r2); LDRB(r0, r1, r2);
#if 0 #if 0
@ -1588,7 +1588,7 @@ _ldxr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ldxi_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_uc(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (i0 >= 0 && i0 <= 4095) if (i0 >= 0 && i0 <= 4095)
@ -1607,7 +1607,7 @@ _ldxi_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ldxi_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_s(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
assert(!(i0 & 1)); assert(!(i0 & 1));
@ -1624,7 +1624,7 @@ _ldxi_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ldxr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_us(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
LDRH(r0, r1, r2); LDRH(r0, r1, r2);
#if 0 #if 0
@ -1633,7 +1633,7 @@ _ldxr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ldxi_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_us(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
assert(!(i0 & 1)); assert(!(i0 & 1));
@ -1653,7 +1653,7 @@ _ldxi_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ldxi_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_i(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
assert(!(i0 & 3)); assert(!(i0 & 3));
@ -1670,7 +1670,7 @@ _ldxi_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ldxr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_ui(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
LDRW(r0, r1, r2); LDRW(r0, r1, r2);
#if 0 #if 0
@ -1679,7 +1679,7 @@ _ldxr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ldxi_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_ui(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
assert(!(i0 & 3)); assert(!(i0 & 3));
@ -1699,7 +1699,7 @@ _ldxi_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ldxi_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_l(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
assert(!(i0 & 7)); assert(!(i0 & 7));
@ -1756,7 +1756,7 @@ _sti_l(jit_state_t *_jit, jit_word_t i0, int32_t r0)
} }
static void static void
_stxi_c(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_c(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (i0 >= 0 && i0 <= 4095) if (i0 >= 0 && i0 <= 4095)
@ -1772,7 +1772,7 @@ _stxi_c(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_stxi_s(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_s(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
assert(!(i0 & 1)); assert(!(i0 & 1));
@ -1789,7 +1789,7 @@ _stxi_s(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_stxi_i(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_i(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
assert(!(i0 & 3)); assert(!(i0 & 3));
@ -1806,7 +1806,7 @@ _stxi_i(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_stxi_l(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_l(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
assert(!(i0 & 7)); assert(!(i0 & 7));
@ -1823,7 +1823,7 @@ _stxi_l(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_movr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _movr(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (r0 != r1) if (r0 != r1)
MOV(r0, r1); MOV(r0, r1);
@ -1952,7 +1952,7 @@ _movi_p(jit_state_t *_jit, int32_t r0, jit_word_t i0)
static void static void
_ccr(jit_state_t *_jit, int32_t cc, _ccr(jit_state_t *_jit, int32_t cc,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
CMP(r1, r2); CMP(r1, r2);
CSET(r0, cc); CSET(r0, cc);
@ -1960,7 +1960,7 @@ _ccr(jit_state_t *_jit, int32_t cc,
static void static void
_cci(jit_state_t *_jit, int32_t cc, _cci(jit_state_t *_jit, int32_t cc,
int32_t r0, jit_int32_t r1, jit_word_t i0) int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
jit_word_t is = i0 >> 12; jit_word_t is = i0 >> 12;
@ -1985,7 +1985,7 @@ _cci(jit_state_t *_jit, int32_t cc,
static jit_word_t static jit_word_t
_bccr(jit_state_t *_jit, int32_t cc, _bccr(jit_state_t *_jit, int32_t cc,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w, d; jit_word_t w, d;
CMP(r0, r1); CMP(r0, r1);
@ -2052,7 +2052,7 @@ _bnei(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_word_t i1)
static jit_word_t static jit_word_t
_baddr(jit_state_t *_jit, int32_t cc, _baddr(jit_state_t *_jit, int32_t cc,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
addcr(r0, r0, r1); addcr(r0, r0, r1);
@ -2074,7 +2074,7 @@ _baddi(jit_state_t *_jit, int32_t cc,
static jit_word_t static jit_word_t
_bsubr(jit_state_t *_jit, int32_t cc, _bsubr(jit_state_t *_jit, int32_t cc,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
subcr(r0, r0, r1); subcr(r0, r0, r1);
@ -2096,7 +2096,7 @@ _bsubi(jit_state_t *_jit, int32_t cc,
static jit_word_t static jit_word_t
_bmxr(jit_state_t *_jit, int32_t cc, _bmxr(jit_state_t *_jit, int32_t cc,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
TST(r0, r1); TST(r0, r1);
@ -2345,7 +2345,7 @@ _vastart(jit_state_t *_jit, int32_t r0)
} }
static void static void
_vaarg(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vaarg(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
jit_word_t ge_code; jit_word_t ge_code;
jit_word_t lt_code; jit_word_t lt_code;

View file

@ -66,65 +66,65 @@
# define FDIVS(Rd,Rn,Rm) osvvv(A64_FDIV,0,Rd,Rn,Rm) # define FDIVS(Rd,Rn,Rm) osvvv(A64_FDIV,0,Rd,Rn,Rm)
# define FDIVD(Rd,Rn,Rm) osvvv(A64_FDIV,1,Rd,Rn,Rm) # define FDIVD(Rd,Rn,Rm) osvvv(A64_FDIV,1,Rd,Rn,Rm)
# define osvvv(Op,Sz,Rd,Rn,Rm) _osvvv(_jit,Op,Sz,Rd,Rn,Rm) # define osvvv(Op,Sz,Rd,Rn,Rm) _osvvv(_jit,Op,Sz,Rd,Rn,Rm)
static void _osvvv(jit_state_t*,int32_t,jit_int32_t, static void _osvvv(jit_state_t*,int32_t,int32_t,
int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t);
# define osvv_(Op,Sz,Rd,Rn) _osvv_(_jit,Op,Sz,Rd,Rn) # define osvv_(Op,Sz,Rd,Rn) _osvv_(_jit,Op,Sz,Rd,Rn)
static void _osvv_(jit_state_t*,int32_t, static void _osvv_(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t);
# define os_vv(Op,Sz,Rn,Rm) _os_vv(_jit,Op,Sz,Rn,Rm) # define os_vv(Op,Sz,Rn,Rm) _os_vv(_jit,Op,Sz,Rn,Rm)
static void _os_vv(jit_state_t*,int32_t, static void _os_vv(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t);
# define truncr_f_i(r0,r1) _truncr_f_i(_jit,r0,r1) # define truncr_f_i(r0,r1) _truncr_f_i(_jit,r0,r1)
static void _truncr_f_i(jit_state_t*,int32_t,jit_int32_t); static void _truncr_f_i(jit_state_t*,int32_t,int32_t);
# define truncr_f_l(r0,r1) FCVTSZ_XS(r0,r1) # define truncr_f_l(r0,r1) FCVTSZ_XS(r0,r1)
# define truncr_d_i(r0,r1) _truncr_d_i(_jit,r0,r1) # define truncr_d_i(r0,r1) _truncr_d_i(_jit,r0,r1)
static void _truncr_d_i(jit_state_t*,int32_t,jit_int32_t); static void _truncr_d_i(jit_state_t*,int32_t,int32_t);
# define truncr_d_l(r0,r1) FCVTSZ_XD(r0,r1) # define truncr_d_l(r0,r1) FCVTSZ_XD(r0,r1)
# define addr_f(r0,r1,r2) FADDS(r0,r1,r2) # define addr_f(r0,r1,r2) FADDS(r0,r1,r2)
# define addi_f(r0,r1,i0) _addi_f(_jit,r0,r1,i0) # define addi_f(r0,r1,i0) _addi_f(_jit,r0,r1,i0)
static void _addi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _addi_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define subr_f(r0,r1,r2) FSUBS(r0,r1,r2) # define subr_f(r0,r1,r2) FSUBS(r0,r1,r2)
# define subi_f(r0,r1,i0) _subi_f(_jit,r0,r1,i0) # define subi_f(r0,r1,i0) _subi_f(_jit,r0,r1,i0)
static void _subi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _subi_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define rsbr_f(r0, r1, r2) subr_f(r0, r2, r1) # define rsbr_f(r0, r1, r2) subr_f(r0, r2, r1)
# define rsbi_f(r0, r1, i0) _rsbi_f(_jit, r0, r1, i0) # define rsbi_f(r0, r1, i0) _rsbi_f(_jit, r0, r1, i0)
static void _rsbi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _rsbi_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define mulr_f(r0,r1,r2) FMULS(r0,r1,r2) # define mulr_f(r0,r1,r2) FMULS(r0,r1,r2)
# define muli_f(r0,r1,i0) _muli_f(_jit,r0,r1,i0) # define muli_f(r0,r1,i0) _muli_f(_jit,r0,r1,i0)
static void _muli_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _muli_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define divr_f(r0,r1,r2) FDIVS(r0,r1,r2) # define divr_f(r0,r1,r2) FDIVS(r0,r1,r2)
# define divi_f(r0,r1,i0) _divi_f(_jit,r0,r1,i0) # define divi_f(r0,r1,i0) _divi_f(_jit,r0,r1,i0)
static void _divi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _divi_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define absr_f(r0,r1) FABSS(r0,r1) # define absr_f(r0,r1) FABSS(r0,r1)
# define negr_f(r0,r1) FNEGS(r0,r1) # define negr_f(r0,r1) FNEGS(r0,r1)
# define sqrtr_f(r0,r1) FSQRTS(r0,r1) # define sqrtr_f(r0,r1) FSQRTS(r0,r1)
# define extr_f(r0,r1) SCVTFS(r0,r1) # define extr_f(r0,r1) SCVTFS(r0,r1)
# define ldr_f(r0,r1) _ldr_f(_jit,r0,r1) # define ldr_f(r0,r1) _ldr_f(_jit,r0,r1)
static void _ldr_f(jit_state_t*,int32_t,jit_int32_t); static void _ldr_f(jit_state_t*,int32_t,int32_t);
# define ldi_f(r0,i0) _ldi_f(_jit,r0,i0) # define ldi_f(r0,i0) _ldi_f(_jit,r0,i0)
static void _ldi_f(jit_state_t*,int32_t,jit_word_t); static void _ldi_f(jit_state_t*,int32_t,jit_word_t);
# define ldxr_f(r0,r1,r2) _ldxr_f(_jit,r0,r1,r2) # define ldxr_f(r0,r1,r2) _ldxr_f(_jit,r0,r1,r2)
static void _ldxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ldxi_f(r0,r1,i0) _ldxi_f(_jit,r0,r1,i0) # define ldxi_f(r0,r1,i0) _ldxi_f(_jit,r0,r1,i0)
static void _ldxi_f(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_f(jit_state_t*,int32_t,int32_t,jit_word_t);
# define str_f(r0,r1) _str_f(_jit,r0,r1) # define str_f(r0,r1) _str_f(_jit,r0,r1)
static void _str_f(jit_state_t*,int32_t,jit_int32_t); static void _str_f(jit_state_t*,int32_t,int32_t);
# define sti_f(i0,r0) _sti_f(_jit,i0,r0) # define sti_f(i0,r0) _sti_f(_jit,i0,r0)
static void _sti_f(jit_state_t*,jit_word_t,int32_t); static void _sti_f(jit_state_t*,jit_word_t,int32_t);
# define stxr_f(r0,r1,r2) _stxr_f(_jit,r0,r1,r2) # define stxr_f(r0,r1,r2) _stxr_f(_jit,r0,r1,r2)
static void _stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _stxr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define stxi_f(i0,r0,r1) _stxi_f(_jit,i0,r0,r1) # define stxi_f(i0,r0,r1) _stxi_f(_jit,i0,r0,r1)
static void _stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_f(jit_state_t*,jit_word_t,int32_t,int32_t);
# define movr_f(r0,r1) _movr_f(_jit,r0,r1) # define movr_f(r0,r1) _movr_f(_jit,r0,r1)
static void _movr_f(jit_state_t*,int32_t,jit_int32_t); static void _movr_f(jit_state_t*,int32_t,int32_t);
# define movi_f(r0,i0) _movi_f(_jit,r0,i0) # define movi_f(r0,i0) _movi_f(_jit,r0,i0)
static void _movi_f(jit_state_t*,int32_t,jit_float32_t); static void _movi_f(jit_state_t*,int32_t,jit_float32_t);
# define extr_d_f(r0,r1) FCVT_SD(r0,r1) # define extr_d_f(r0,r1) FCVT_SD(r0,r1)
# define fccr(cc,r0,r1,r2) _fccr(_jit,cc,r0,r1,r2) # define fccr(cc,r0,r1,r2) _fccr(_jit,cc,r0,r1,r2)
static void _fccr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); static void _fccr(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_int32_t);
# define fcci(cc,r0,r1,i0) _fcci(_jit,cc,r0,r1,i0) # define fcci(cc,r0,r1,i0) _fcci(_jit,cc,r0,r1,i0)
static void _fcci(jit_state_t*, static void _fcci(jit_state_t*,
int32_t,jit_int32_t,jit_int32_t,jit_float32_t); int32_t,int32_t,jit_int32_t,jit_float32_t);
# define ltr_f(r0,r1,r2) fccr(CC_MI,r0,r1,r2) # define ltr_f(r0,r1,r2) fccr(CC_MI,r0,r1,r2)
# define lti_f(r0,r1,i0) fcci(CC_MI,r0,r1,i0) # define lti_f(r0,r1,i0) fcci(CC_MI,r0,r1,i0)
# define ler_f(r0,r1,r2) fccr(CC_LS,r0,r1,r2) # define ler_f(r0,r1,r2) fccr(CC_LS,r0,r1,r2)
@ -142,27 +142,27 @@ static void _fcci(jit_state_t*,
# define unler_f(r0,r1,r2) fccr(CC_LE,r0,r1,r2) # define unler_f(r0,r1,r2) fccr(CC_LE,r0,r1,r2)
# define unlei_f(r0,r1,i0) fcci(CC_LE,r0,r1,i0) # define unlei_f(r0,r1,i0) fcci(CC_LE,r0,r1,i0)
# define uneqr_f(r0,r1,r2) _uneqr_f(_jit,r0,r1,r2) # define uneqr_f(r0,r1,r2) _uneqr_f(_jit,r0,r1,r2)
static void _uneqr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _uneqr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define uneqi_f(r0,r1,i0) _uneqi_f(_jit,r0,r1,i0) # define uneqi_f(r0,r1,i0) _uneqi_f(_jit,r0,r1,i0)
static void _uneqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _uneqi_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define unger_f(r0,r1,r2) fccr(CC_PL,r0,r1,r2) # define unger_f(r0,r1,r2) fccr(CC_PL,r0,r1,r2)
# define ungei_f(r0,r1,i0) fcci(CC_PL,r0,r1,i0) # define ungei_f(r0,r1,i0) fcci(CC_PL,r0,r1,i0)
# define ungtr_f(r0,r1,r2) fccr(CC_HI,r0,r1,r2) # define ungtr_f(r0,r1,r2) fccr(CC_HI,r0,r1,r2)
# define ungti_f(r0,r1,i0) fcci(CC_HI,r0,r1,i0) # define ungti_f(r0,r1,i0) fcci(CC_HI,r0,r1,i0)
# define ltgtr_f(r0,r1,r2) _ltgtr_f(_jit,r0,r1,r2) # define ltgtr_f(r0,r1,r2) _ltgtr_f(_jit,r0,r1,r2)
static void _ltgtr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ltgtr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ltgti_f(r0,r1,i0) _ltgti_f(_jit,r0,r1,i0) # define ltgti_f(r0,r1,i0) _ltgti_f(_jit,r0,r1,i0)
static void _ltgti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _ltgti_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define ordr_f(r0,r1,r2) fccr(CC_VC,r0,r1,r2) # define ordr_f(r0,r1,r2) fccr(CC_VC,r0,r1,r2)
# define ordi_f(r0,r1,i0) fcci(CC_VC,r0,r1,i0) # define ordi_f(r0,r1,i0) fcci(CC_VC,r0,r1,i0)
# define unordr_f(r0,r1,r2) fccr(CC_VS,r0,r1,r2) # define unordr_f(r0,r1,r2) fccr(CC_VS,r0,r1,r2)
# define unordi_f(r0,r1,i0) fcci(CC_VS,r0,r1,i0) # define unordi_f(r0,r1,i0) fcci(CC_VS,r0,r1,i0)
#define fbccr(cc,i0,r0,r1) _fbccr(_jit,cc,i0,r0,r1) #define fbccr(cc,i0,r0,r1) _fbccr(_jit,cc,i0,r0,r1)
static jit_word_t static jit_word_t
_fbccr(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_int32_t); _fbccr(jit_state_t*,int32_t,jit_word_t,int32_t,jit_int32_t);
#define fbcci(cc,i0,r0,i1) _fbcci(_jit,cc,i0,r0,i1) #define fbcci(cc,i0,r0,i1) _fbcci(_jit,cc,i0,r0,i1)
static jit_word_t static jit_word_t
_fbcci(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_float32_t); _fbcci(jit_state_t*,int32_t,jit_word_t,int32_t,jit_float32_t);
# define bltr_f(i0,r0,r1) fbccr(BCC_MI,i0,r0,r1) # define bltr_f(i0,r0,r1) fbccr(BCC_MI,i0,r0,r1)
# define blti_f(i0,r0,i1) fbcci(BCC_MI,i0,r0,i1) # define blti_f(i0,r0,i1) fbcci(BCC_MI,i0,r0,i1)
# define bler_f(i0,r0,r1) fbccr(BCC_LS,i0,r0,r1) # define bler_f(i0,r0,r1) fbccr(BCC_LS,i0,r0,r1)
@ -180,7 +180,7 @@ _fbcci(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_float32_t);
# define bunler_f(i0,r0,r1) fbccr(BCC_LE,i0,r0,r1) # define bunler_f(i0,r0,r1) fbccr(BCC_LE,i0,r0,r1)
# define bunlei_f(i0,r0,i1) fbcci(BCC_LE,i0,r0,i1) # define bunlei_f(i0,r0,i1) fbcci(BCC_LE,i0,r0,i1)
# define buneqr_f(i0,r0,r1) _buneqr_f(_jit,i0,r0,r1) # define buneqr_f(i0,r0,r1) _buneqr_f(_jit,i0,r0,r1)
static jit_word_t _buneqr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _buneqr_f(jit_state_t*,jit_word_t,int32_t,int32_t);
# define buneqi_f(i0,r0,i1) _buneqi_f(_jit,i0,r0,i1) # define buneqi_f(i0,r0,i1) _buneqi_f(_jit,i0,r0,i1)
static jit_word_t _buneqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); static jit_word_t _buneqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t);
# define bunger_f(i0,r0,r1) fbccr(BCC_PL,i0,r0,r1) # define bunger_f(i0,r0,r1) fbccr(BCC_PL,i0,r0,r1)
@ -188,7 +188,7 @@ static jit_word_t _buneqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t);
# define bungtr_f(i0,r0,r1) fbccr(BCC_HI,i0,r0,r1) # define bungtr_f(i0,r0,r1) fbccr(BCC_HI,i0,r0,r1)
# define bungti_f(i0,r0,i1) fbcci(BCC_HI,i0,r0,i1) # define bungti_f(i0,r0,i1) fbcci(BCC_HI,i0,r0,i1)
# define bltgtr_f(i0,r0,r1) _bltgtr_f(_jit,i0,r0,r1) # define bltgtr_f(i0,r0,r1) _bltgtr_f(_jit,i0,r0,r1)
static jit_word_t _bltgtr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bltgtr_f(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bltgti_f(i0,r0,i1) _bltgti_f(_jit,i0,r0,i1) # define bltgti_f(i0,r0,i1) _bltgti_f(_jit,i0,r0,i1)
static jit_word_t _bltgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); static jit_word_t _bltgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t);
# define bordr_f(i0,r0,r1) fbccr(BCC_VC,i0,r0,r1) # define bordr_f(i0,r0,r1) fbccr(BCC_VC,i0,r0,r1)
@ -197,49 +197,49 @@ static jit_word_t _bltgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t);
# define bunordi_f(i0,r0,i1) fbcci(BCC_VS,i0,r0,i1) # define bunordi_f(i0,r0,i1) fbcci(BCC_VS,i0,r0,i1)
# define addr_d(r0,r1,r2) FADDD(r0,r1,r2) # define addr_d(r0,r1,r2) FADDD(r0,r1,r2)
# define addi_d(r0,r1,i0) _addi_d(_jit,r0,r1,i0) # define addi_d(r0,r1,i0) _addi_d(_jit,r0,r1,i0)
static void _addi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _addi_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define subr_d(r0,r1,r2) FSUBD(r0,r1,r2) # define subr_d(r0,r1,r2) FSUBD(r0,r1,r2)
# define subi_d(r0,r1,i0) _subi_d(_jit,r0,r1,i0) # define subi_d(r0,r1,i0) _subi_d(_jit,r0,r1,i0)
static void _subi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _subi_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define rsbr_d(r0, r1, r2) subr_d(r0, r2, r1) # define rsbr_d(r0, r1, r2) subr_d(r0, r2, r1)
# define rsbi_d(r0, r1, i0) _rsbi_d(_jit, r0, r1, i0) # define rsbi_d(r0, r1, i0) _rsbi_d(_jit, r0, r1, i0)
static void _rsbi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _rsbi_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define mulr_d(r0,r1,r2) FMULD(r0,r1,r2) # define mulr_d(r0,r1,r2) FMULD(r0,r1,r2)
# define muli_d(r0,r1,i0) _muli_d(_jit,r0,r1,i0) # define muli_d(r0,r1,i0) _muli_d(_jit,r0,r1,i0)
static void _muli_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _muli_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define divr_d(r0,r1,r2) FDIVD(r0,r1,r2) # define divr_d(r0,r1,r2) FDIVD(r0,r1,r2)
# define divi_d(r0,r1,i0) _divi_d(_jit,r0,r1,i0) # define divi_d(r0,r1,i0) _divi_d(_jit,r0,r1,i0)
static void _divi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _divi_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define absr_d(r0,r1) FABSD(r0,r1) # define absr_d(r0,r1) FABSD(r0,r1)
# define negr_d(r0,r1) FNEGD(r0,r1) # define negr_d(r0,r1) FNEGD(r0,r1)
# define sqrtr_d(r0,r1) FSQRTD(r0,r1) # define sqrtr_d(r0,r1) FSQRTD(r0,r1)
# define extr_d(r0,r1) SCVTFD(r0,r1) # define extr_d(r0,r1) SCVTFD(r0,r1)
# define ldr_d(r0,r1) _ldr_d(_jit,r0,r1) # define ldr_d(r0,r1) _ldr_d(_jit,r0,r1)
static void _ldr_d(jit_state_t*,int32_t,jit_int32_t); static void _ldr_d(jit_state_t*,int32_t,int32_t);
# define ldi_d(r0,i0) _ldi_d(_jit,r0,i0) # define ldi_d(r0,i0) _ldi_d(_jit,r0,i0)
static void _ldi_d(jit_state_t*,int32_t,jit_word_t); static void _ldi_d(jit_state_t*,int32_t,jit_word_t);
# define ldxr_d(r0,r1,r2) _ldxr_d(_jit,r0,r1,r2) # define ldxr_d(r0,r1,r2) _ldxr_d(_jit,r0,r1,r2)
static void _ldxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ldxi_d(r0,r1,i0) _ldxi_d(_jit,r0,r1,i0) # define ldxi_d(r0,r1,i0) _ldxi_d(_jit,r0,r1,i0)
static void _ldxi_d(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_d(jit_state_t*,int32_t,int32_t,jit_word_t);
# define str_d(r0,r1) _str_d(_jit,r0,r1) # define str_d(r0,r1) _str_d(_jit,r0,r1)
static void _str_d(jit_state_t*,int32_t,jit_int32_t); static void _str_d(jit_state_t*,int32_t,int32_t);
# define sti_d(i0,r0) _sti_d(_jit,i0,r0) # define sti_d(i0,r0) _sti_d(_jit,i0,r0)
static void _sti_d(jit_state_t*,jit_word_t,int32_t); static void _sti_d(jit_state_t*,jit_word_t,int32_t);
# define stxr_d(r0,r1,r2) _stxr_d(_jit,r0,r1,r2) # define stxr_d(r0,r1,r2) _stxr_d(_jit,r0,r1,r2)
static void _stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _stxr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define stxi_d(i0,r0,r1) _stxi_d(_jit,i0,r0,r1) # define stxi_d(i0,r0,r1) _stxi_d(_jit,i0,r0,r1)
static void _stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define movr_d(r0,r1) _movr_d(_jit,r0,r1) # define movr_d(r0,r1) _movr_d(_jit,r0,r1)
static void _movr_d(jit_state_t*,int32_t,jit_int32_t); static void _movr_d(jit_state_t*,int32_t,int32_t);
# define movi_d(r0,i0) _movi_d(_jit,r0,i0) # define movi_d(r0,i0) _movi_d(_jit,r0,i0)
static void _movi_d(jit_state_t*,int32_t,jit_float64_t); static void _movi_d(jit_state_t*,int32_t,jit_float64_t);
# define extr_f_d(r0,r1) FCVT_DS(r0,r1) # define extr_f_d(r0,r1) FCVT_DS(r0,r1)
# define dccr(cc,r0,r1,r2) _dccr(_jit,cc,r0,r1,r2) # define dccr(cc,r0,r1,r2) _dccr(_jit,cc,r0,r1,r2)
static void _dccr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); static void _dccr(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_int32_t);
# define dcci(cc,r0,r1,i0) _dcci(_jit,cc,r0,r1,i0) # define dcci(cc,r0,r1,i0) _dcci(_jit,cc,r0,r1,i0)
static void _dcci(jit_state_t*, static void _dcci(jit_state_t*,
int32_t,jit_int32_t,jit_int32_t,jit_float64_t); int32_t,int32_t,jit_int32_t,jit_float64_t);
# define ltr_d(r0,r1,r2) dccr(CC_MI,r0,r1,r2) # define ltr_d(r0,r1,r2) dccr(CC_MI,r0,r1,r2)
# define lti_d(r0,r1,i0) dcci(CC_MI,r0,r1,i0) # define lti_d(r0,r1,i0) dcci(CC_MI,r0,r1,i0)
# define ler_d(r0,r1,r2) dccr(CC_LS,r0,r1,r2) # define ler_d(r0,r1,r2) dccr(CC_LS,r0,r1,r2)
@ -257,27 +257,27 @@ static void _dcci(jit_state_t*,
# define unler_d(r0,r1,r2) dccr(CC_LE,r0,r1,r2) # define unler_d(r0,r1,r2) dccr(CC_LE,r0,r1,r2)
# define unlei_d(r0,r1,i0) dcci(CC_LE,r0,r1,i0) # define unlei_d(r0,r1,i0) dcci(CC_LE,r0,r1,i0)
# define uneqr_d(r0,r1,r2) _uneqr_d(_jit,r0,r1,r2) # define uneqr_d(r0,r1,r2) _uneqr_d(_jit,r0,r1,r2)
static void _uneqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _uneqr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define uneqi_d(r0,r1,i0) _uneqi_d(_jit,r0,r1,i0) # define uneqi_d(r0,r1,i0) _uneqi_d(_jit,r0,r1,i0)
static void _uneqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _uneqi_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define unger_d(r0,r1,r2) dccr(CC_PL,r0,r1,r2) # define unger_d(r0,r1,r2) dccr(CC_PL,r0,r1,r2)
# define ungei_d(r0,r1,i0) dcci(CC_PL,r0,r1,i0) # define ungei_d(r0,r1,i0) dcci(CC_PL,r0,r1,i0)
# define ungtr_d(r0,r1,r2) dccr(CC_HI,r0,r1,r2) # define ungtr_d(r0,r1,r2) dccr(CC_HI,r0,r1,r2)
# define ungti_d(r0,r1,i0) dcci(CC_HI,r0,r1,i0) # define ungti_d(r0,r1,i0) dcci(CC_HI,r0,r1,i0)
# define ltgtr_d(r0,r1,r2) _ltgtr_d(_jit,r0,r1,r2) # define ltgtr_d(r0,r1,r2) _ltgtr_d(_jit,r0,r1,r2)
static void _ltgtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ltgtr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ltgti_d(r0,r1,i0) _ltgti_d(_jit,r0,r1,i0) # define ltgti_d(r0,r1,i0) _ltgti_d(_jit,r0,r1,i0)
static void _ltgti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _ltgti_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define ordr_d(r0,r1,r2) dccr(CC_VC,r0,r1,r2) # define ordr_d(r0,r1,r2) dccr(CC_VC,r0,r1,r2)
# define ordi_d(r0,r1,i0) dcci(CC_VC,r0,r1,i0) # define ordi_d(r0,r1,i0) dcci(CC_VC,r0,r1,i0)
# define unordr_d(r0,r1,r2) dccr(CC_VS,r0,r1,r2) # define unordr_d(r0,r1,r2) dccr(CC_VS,r0,r1,r2)
# define unordi_d(r0,r1,i0) dcci(CC_VS,r0,r1,i0) # define unordi_d(r0,r1,i0) dcci(CC_VS,r0,r1,i0)
#define dbccr(cc,i0,r0,r1) _dbccr(_jit,cc,i0,r0,r1) #define dbccr(cc,i0,r0,r1) _dbccr(_jit,cc,i0,r0,r1)
static jit_word_t static jit_word_t
_dbccr(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_int32_t); _dbccr(jit_state_t*,int32_t,jit_word_t,int32_t,jit_int32_t);
#define dbcci(cc,i0,r0,i1) _dbcci(_jit,cc,i0,r0,i1) #define dbcci(cc,i0,r0,i1) _dbcci(_jit,cc,i0,r0,i1)
static jit_word_t static jit_word_t
_dbcci(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_float64_t); _dbcci(jit_state_t*,int32_t,jit_word_t,int32_t,jit_float64_t);
# define bltr_d(i0,r0,r1) dbccr(BCC_MI,i0,r0,r1) # define bltr_d(i0,r0,r1) dbccr(BCC_MI,i0,r0,r1)
# define blti_d(i0,r0,i1) dbcci(BCC_MI,i0,r0,i1) # define blti_d(i0,r0,i1) dbcci(BCC_MI,i0,r0,i1)
# define bler_d(i0,r0,r1) dbccr(BCC_LS,i0,r0,r1) # define bler_d(i0,r0,r1) dbccr(BCC_LS,i0,r0,r1)
@ -295,7 +295,7 @@ _dbcci(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_float64_t);
# define bunler_d(i0,r0,r1) dbccr(BCC_LE,i0,r0,r1) # define bunler_d(i0,r0,r1) dbccr(BCC_LE,i0,r0,r1)
# define bunlei_d(i0,r0,i1) dbcci(BCC_LE,i0,r0,i1) # define bunlei_d(i0,r0,i1) dbcci(BCC_LE,i0,r0,i1)
# define buneqr_d(i0,r0,r1) _buneqr_d(_jit,i0,r0,r1) # define buneqr_d(i0,r0,r1) _buneqr_d(_jit,i0,r0,r1)
static jit_word_t _buneqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _buneqr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define buneqi_d(i0,r0,i1) _buneqi_d(_jit,i0,r0,i1) # define buneqi_d(i0,r0,i1) _buneqi_d(_jit,i0,r0,i1)
static jit_word_t _buneqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); static jit_word_t _buneqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t);
# define bunger_d(i0,r0,r1) dbccr(BCC_PL,i0,r0,r1) # define bunger_d(i0,r0,r1) dbccr(BCC_PL,i0,r0,r1)
@ -303,7 +303,7 @@ static jit_word_t _buneqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t);
# define bungtr_d(i0,r0,r1) dbccr(BCC_HI,i0,r0,r1) # define bungtr_d(i0,r0,r1) dbccr(BCC_HI,i0,r0,r1)
# define bungti_d(i0,r0,i1) dbcci(BCC_HI,i0,r0,i1) # define bungti_d(i0,r0,i1) dbcci(BCC_HI,i0,r0,i1)
# define bltgtr_d(i0,r0,r1) _bltgtr_d(_jit,i0,r0,r1) # define bltgtr_d(i0,r0,r1) _bltgtr_d(_jit,i0,r0,r1)
static jit_word_t _bltgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bltgtr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bltgti_d(i0,r0,i1) _bltgti_d(_jit,i0,r0,i1) # define bltgti_d(i0,r0,i1) _bltgti_d(_jit,i0,r0,i1)
static jit_word_t _bltgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); static jit_word_t _bltgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t);
# define bordr_d(i0,r0,r1) dbccr(BCC_VC,i0,r0,r1) # define bordr_d(i0,r0,r1) dbccr(BCC_VC,i0,r0,r1)
@ -311,13 +311,13 @@ static jit_word_t _bltgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t);
# define bunordr_d(i0,r0,r1) dbccr(BCC_VS,i0,r0,r1) # define bunordr_d(i0,r0,r1) dbccr(BCC_VS,i0,r0,r1)
# define bunordi_d(i0,r0,i1) dbcci(BCC_VS,i0,r0,i1) # define bunordi_d(i0,r0,i1) dbcci(BCC_VS,i0,r0,i1)
# define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1) # define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1)
static void _vaarg_d(jit_state_t*, int32_t, jit_int32_t); static void _vaarg_d(jit_state_t*, int32_t, int32_t);
#endif #endif
#if CODE #if CODE
static void static void
_osvvv(jit_state_t *_jit, int32_t Op, jit_int32_t Sz, _osvvv(jit_state_t *_jit, int32_t Op, int32_t Sz,
int32_t Rd, jit_int32_t Rn, jit_int32_t Rm) int32_t Rd, int32_t Rn, jit_int32_t Rm)
{ {
instr_t i; instr_t i;
assert(!(Rd & ~0x1f)); assert(!(Rd & ~0x1f));
@ -335,7 +335,7 @@ _osvvv(jit_state_t *_jit, int32_t Op, jit_int32_t Sz,
static void static void
_osvv_(jit_state_t *_jit, int32_t Op, _osvv_(jit_state_t *_jit, int32_t Op,
int32_t Sz, jit_int32_t Rd, jit_int32_t Rn) int32_t Sz, int32_t Rd, jit_int32_t Rn)
{ {
instr_t i; instr_t i;
assert(!(Rd & ~0x1f)); assert(!(Rd & ~0x1f));
@ -351,7 +351,7 @@ _osvv_(jit_state_t *_jit, int32_t Op,
static void static void
_os_vv(jit_state_t *_jit, int32_t Op, _os_vv(jit_state_t *_jit, int32_t Op,
int32_t Sz, jit_int32_t Rn, jit_int32_t Rm) int32_t Sz, int32_t Rn, jit_int32_t Rm)
{ {
instr_t i; instr_t i;
assert(!(Rn & ~0x1f)); assert(!(Rn & ~0x1f));
@ -368,7 +368,7 @@ _os_vv(jit_state_t *_jit, int32_t Op,
#define fopi(name) \ #define fopi(name) \
static void \ static void \
_##name##i_f(jit_state_t *_jit, \ _##name##i_f(jit_state_t *_jit, \
int32_t r0, jit_int32_t r1, jit_float32_t i0) \ int32_t r0, int32_t r1, jit_float32_t i0) \
{ \ { \
int32_t reg = jit_get_reg(jit_class_fpr); \ int32_t reg = jit_get_reg(jit_class_fpr); \
movi_f(rn(reg), i0); \ movi_f(rn(reg), i0); \
@ -378,7 +378,7 @@ _##name##i_f(jit_state_t *_jit, \
#define dopi(name) \ #define dopi(name) \
static void \ static void \
_##name##i_d(jit_state_t *_jit, \ _##name##i_d(jit_state_t *_jit, \
int32_t r0, jit_int32_t r1, jit_float64_t i0) \ int32_t r0, int32_t r1, jit_float64_t i0) \
{ \ { \
int32_t reg = jit_get_reg(jit_class_fpr); \ int32_t reg = jit_get_reg(jit_class_fpr); \
movi_d(rn(reg), i0); \ movi_d(rn(reg), i0); \
@ -413,14 +413,14 @@ _b##name##i_d(jit_state_t *_jit, \
} }
static void static void
_truncr_f_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _truncr_f_i(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
FCVTSZ_WS(r0, r1); FCVTSZ_WS(r0, r1);
extr_i(r0, r0); extr_i(r0, r0);
} }
static void static void
_truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _truncr_d_i(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
FCVTSZ_WD(r0, r1); FCVTSZ_WD(r0, r1);
extr_i(r0, r0); extr_i(r0, r0);
@ -433,7 +433,7 @@ fopi(mul)
fopi(div) fopi(div)
static void static void
_ldr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _ldr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -453,7 +453,7 @@ _ldi_f(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -463,7 +463,7 @@ _ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -473,7 +473,7 @@ _ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_str_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _str_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -493,7 +493,7 @@ _sti_f(jit_state_t *_jit, jit_word_t i0, int32_t r0)
} }
static void static void
_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _stxr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -503,7 +503,7 @@ _stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -513,7 +513,7 @@ _stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_movr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _movr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (r0 != r1) if (r0 != r1)
FMOVS(r0, r1); FMOVS(r0, r1);
@ -541,7 +541,7 @@ _movi_f(jit_state_t *_jit, int32_t r0, jit_float32_t i0)
static void static void
_fccr(jit_state_t *_jit, int32_t cc, _fccr(jit_state_t *_jit, int32_t cc,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMPES(r1, r2); FCMPES(r1, r2);
CSET(r0, cc); CSET(r0, cc);
@ -549,7 +549,7 @@ _fccr(jit_state_t *_jit, int32_t cc,
static void static void
_fcci(jit_state_t *_jit, int32_t cc, _fcci(jit_state_t *_jit, int32_t cc,
int32_t r0, jit_int32_t r1, jit_float32_t i0) int32_t r0, int32_t r1, jit_float32_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_fpr); reg = jit_get_reg(jit_class_fpr);
@ -559,7 +559,7 @@ _fcci(jit_state_t *_jit, int32_t cc,
} }
static void static void
_uneqr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _uneqr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_word_t w; jit_word_t w;
FCMPES(r1, r2); FCMPES(r1, r2);
@ -572,7 +572,7 @@ _uneqr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
fopi(uneq) fopi(uneq)
static void static void
_ltgtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ltgtr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_word_t w; jit_word_t w;
FCMPES(r1, r2); FCMPES(r1, r2);
@ -586,7 +586,7 @@ fopi(ltgt)
static jit_word_t static jit_word_t
_fbccr(jit_state_t *_jit, int32_t cc, _fbccr(jit_state_t *_jit, int32_t cc,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w, d; jit_word_t w, d;
FCMPES(r0, r1); FCMPES(r0, r1);
@ -610,7 +610,7 @@ _fbcci(jit_state_t *_jit, int32_t cc,
} }
static jit_word_t static jit_word_t
_buneqr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _buneqr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t u, v, w; jit_word_t u, v, w;
FCMPES(r0, r1); FCMPES(r0, r1);
@ -627,7 +627,7 @@ _buneqr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
fbopi(uneq) fbopi(uneq)
static jit_word_t static jit_word_t
_bltgtr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bltgtr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t u, v, w; jit_word_t u, v, w;
FCMPES(r0, r1); FCMPES(r0, r1);
@ -650,7 +650,7 @@ dopi(mul)
dopi(div) dopi(div)
static void static void
_ldr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _ldr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -670,7 +670,7 @@ _ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -680,7 +680,7 @@ _ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -690,7 +690,7 @@ _ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_str_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _str_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -710,7 +710,7 @@ _sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0)
} }
static void static void
_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _stxr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -720,7 +720,7 @@ _stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -730,7 +730,7 @@ _stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_movr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _movr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (r0 != r1) if (r0 != r1)
FMOVD(r0, r1); FMOVD(r0, r1);
@ -757,7 +757,7 @@ _movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t i0)
static void static void
_dccr(jit_state_t *_jit, int32_t cc, _dccr(jit_state_t *_jit, int32_t cc,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMPED(r1, r2); FCMPED(r1, r2);
CSET(r0, cc); CSET(r0, cc);
@ -765,7 +765,7 @@ _dccr(jit_state_t *_jit, int32_t cc,
static void static void
_dcci(jit_state_t *_jit, int32_t cc, _dcci(jit_state_t *_jit, int32_t cc,
int32_t r0, jit_int32_t r1, jit_float64_t i0) int32_t r0, int32_t r1, jit_float64_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_fpr); reg = jit_get_reg(jit_class_fpr);
@ -775,7 +775,7 @@ _dcci(jit_state_t *_jit, int32_t cc,
} }
static void static void
_uneqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _uneqr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_word_t w; jit_word_t w;
FCMPED(r1, r2); FCMPED(r1, r2);
@ -788,7 +788,7 @@ _uneqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
dopi(uneq) dopi(uneq)
static void static void
_ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ltgtr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_word_t w; jit_word_t w;
FCMPED(r1, r2); FCMPED(r1, r2);
@ -802,7 +802,7 @@ dopi(ltgt)
static jit_word_t static jit_word_t
_dbccr(jit_state_t *_jit, int32_t cc, _dbccr(jit_state_t *_jit, int32_t cc,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w, d; jit_word_t w, d;
FCMPED(r0, r1); FCMPED(r0, r1);
@ -826,7 +826,7 @@ _dbcci(jit_state_t *_jit, int32_t cc,
} }
static jit_word_t static jit_word_t
_buneqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _buneqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t u, v, w; jit_word_t u, v, w;
FCMPED(r0, r1); FCMPED(r0, r1);
@ -843,7 +843,7 @@ _buneqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
dbopi(uneq) dbopi(uneq)
static jit_word_t static jit_word_t
_bltgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bltgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t u, v, w; jit_word_t u, v, w;
FCMPED(r0, r1); FCMPED(r0, r1);
@ -860,7 +860,7 @@ _bltgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
dbopi(ltgt) dbopi(ltgt)
static void static void
_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vaarg_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
jit_word_t ge_code; jit_word_t ge_code;
jit_word_t lt_code; jit_word_t lt_code;

View file

@ -213,7 +213,7 @@ _jit_allocai(jit_state_t *_jit, int32_t length)
} }
void void
_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) _jit_allocar(jit_state_t *_jit, int32_t u, int32_t v)
{ {
int32_t r0, r1; int32_t r0, r1;
assert(_jitc->function); assert(_jitc->function);
@ -1536,25 +1536,25 @@ jit_flush(void *fptr, void *tptr)
} }
void void
_emit_ldxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _emit_ldxi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
ldxi(rn(r0), rn(r1), i0); ldxi(rn(r0), rn(r1), i0);
} }
void void
_emit_stxi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _emit_stxi(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
stxi(i0, rn(r0), rn(r1)); stxi(i0, rn(r0), rn(r1));
} }
void void
_emit_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _emit_ldxi_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
ldxi_d(rn(r0), rn(r1), i0); ldxi_d(rn(r0), rn(r1), i0);
} }
void void
_emit_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _emit_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
stxi_d(i0, rn(r0), rn(r1)); stxi_d(i0, rn(r0), rn(r1));
} }

File diff suppressed because it is too large Load diff

View file

@ -300,7 +300,7 @@ static void _Opr(jit_state_t*,int,int,int,unsigned int,int);
# define FNEGT(ra,rc) CPYSN(ra,ra,rc) # define FNEGT(ra,rc) CPYSN(ra,ra,rc)
# define movr_f(r0,r1) movr_d(r0,r1) # define movr_f(r0,r1) movr_d(r0,r1)
# define movr_d(r0,r1) _movr_d(_jit,r0,r1) # define movr_d(r0,r1) _movr_d(_jit,r0,r1)
static void _movr_d(jit_state_t*,int32_t,jit_int32_t); static void _movr_d(jit_state_t*,int32_t,int32_t);
# define movi_f(r0,i0) _movi_f(_jit,r0,i0) # define movi_f(r0,i0) _movi_f(_jit,r0,i0)
static void _movi_f(jit_state_t*,int32_t,jit_float32_t*); static void _movi_f(jit_state_t*,int32_t,jit_float32_t*);
# define movi_d(r0,i0) _movi_d(_jit,r0,i0) # define movi_d(r0,i0) _movi_d(_jit,r0,i0)
@ -310,250 +310,250 @@ static void _movi_d(jit_state_t*,int32_t,jit_float64_t*);
# define negr_f(r0,r1) FNEGS(r1,r0) # define negr_f(r0,r1) FNEGS(r1,r0)
# define negr_d(r0,r1) FNEGT(r1,r0) # define negr_d(r0,r1) FNEGT(r1,r0)
# define sqrtr_f(r0,r1) _sqrtr_f(_jit,r0,r1) # define sqrtr_f(r0,r1) _sqrtr_f(_jit,r0,r1)
static void _sqrtr_f(jit_state_t*,int32_t,jit_int32_t); static void _sqrtr_f(jit_state_t*,int32_t,int32_t);
# define sqrtr_d(r0,r1) _sqrtr_d(_jit,r0,r1) # define sqrtr_d(r0,r1) _sqrtr_d(_jit,r0,r1)
static void _sqrtr_d(jit_state_t*,int32_t,jit_int32_t); static void _sqrtr_d(jit_state_t*,int32_t,int32_t);
# define extr_f_d(r0,r1) movr_d(r0,r1) # define extr_f_d(r0,r1) movr_d(r0,r1)
# define extr_d_f(r0,r1) movr_f(r0,r1) # define extr_d_f(r0,r1) movr_f(r0,r1)
# define truncr_f_i(r0,r1) truncr_d_i(r0,r1) # define truncr_f_i(r0,r1) truncr_d_i(r0,r1)
# define truncr_f_l(r0,r1) truncr_d_l(r0,r1) # define truncr_f_l(r0,r1) truncr_d_l(r0,r1)
# define truncr_d_i(r0,r1) truncr_d_l(r0,r1) # define truncr_d_i(r0,r1) truncr_d_l(r0,r1)
# define truncr_d_l(r0,r1) _truncr_d_l(_jit,r0,r1) # define truncr_d_l(r0,r1) _truncr_d_l(_jit,r0,r1)
static void _truncr_d_l(jit_state_t*,int32_t,jit_int32_t); static void _truncr_d_l(jit_state_t*,int32_t,int32_t);
# define extr_f(r0,r1) _extr_f(_jit,r0,r1) # define extr_f(r0,r1) _extr_f(_jit,r0,r1)
static void _extr_f(jit_state_t*,int32_t,jit_int32_t); static void _extr_f(jit_state_t*,int32_t,int32_t);
# define extr_d(r0,r1) _extr_d(_jit,r0,r1) # define extr_d(r0,r1) _extr_d(_jit,r0,r1)
static void _extr_d(jit_state_t*,int32_t,jit_int32_t); static void _extr_d(jit_state_t*,int32_t,int32_t);
# define addr_f(r0,r1,r2) _addr_f(_jit,r0,r1,r2) # define addr_f(r0,r1,r2) _addr_f(_jit,r0,r1,r2)
static void _addr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _addr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define addi_f(r0,r1,i0) _addi_f(_jit,r0,r1,i0) # define addi_f(r0,r1,i0) _addi_f(_jit,r0,r1,i0)
static void _addi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _addi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define addr_d(r0,r1,r2) _addr_d(_jit,r0,r1,r2) # define addr_d(r0,r1,r2) _addr_d(_jit,r0,r1,r2)
static void _addr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _addr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define addi_d(r0,r1,i0) _addi_d(_jit,r0,r1,i0) # define addi_d(r0,r1,i0) _addi_d(_jit,r0,r1,i0)
static void _addi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _addi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define subr_f(r0,r1,r2) _subr_f(_jit,r0,r1,r2) # define subr_f(r0,r1,r2) _subr_f(_jit,r0,r1,r2)
static void _subr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _subr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define subi_f(r0,r1,i0) _subi_f(_jit,r0,r1,i0) # define subi_f(r0,r1,i0) _subi_f(_jit,r0,r1,i0)
static void _subi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _subi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define subr_d(r0,r1,r2) _subr_d(_jit,r0,r1,r2) # define subr_d(r0,r1,r2) _subr_d(_jit,r0,r1,r2)
static void _subr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _subr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define subi_d(r0,r1,i0) _subi_d(_jit,r0,r1,i0) # define subi_d(r0,r1,i0) _subi_d(_jit,r0,r1,i0)
static void _subi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _subi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define rsbr_f(r0, r1, r2) subr_f(r0, r2, r1) # define rsbr_f(r0, r1, r2) subr_f(r0, r2, r1)
# define rsbi_f(r0, r1, i0) _rsbi_f(_jit, r0, r1, i0) # define rsbi_f(r0, r1, i0) _rsbi_f(_jit, r0, r1, i0)
static void _rsbi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _rsbi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define rsbr_d(r0, r1, r2) subr_d(r0, r2, r1) # define rsbr_d(r0, r1, r2) subr_d(r0, r2, r1)
# define rsbi_d(r0, r1, i0) _rsbi_d(_jit, r0, r1, i0) # define rsbi_d(r0, r1, i0) _rsbi_d(_jit, r0, r1, i0)
static void _rsbi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _rsbi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define mulr_f(r0,r1,r2) _mulr_f(_jit,r0,r1,r2) # define mulr_f(r0,r1,r2) _mulr_f(_jit,r0,r1,r2)
static void _mulr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _mulr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define muli_f(r0,r1,i0) _muli_f(_jit,r0,r1,i0) # define muli_f(r0,r1,i0) _muli_f(_jit,r0,r1,i0)
static void _muli_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _muli_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define mulr_d(r0,r1,r2) _mulr_d(_jit,r0,r1,r2) # define mulr_d(r0,r1,r2) _mulr_d(_jit,r0,r1,r2)
static void _mulr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _mulr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define muli_d(r0,r1,i0) _muli_d(_jit,r0,r1,i0) # define muli_d(r0,r1,i0) _muli_d(_jit,r0,r1,i0)
static void _muli_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _muli_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define divr_f(r0,r1,r2) _divr_f(_jit,r0,r1,r2) # define divr_f(r0,r1,r2) _divr_f(_jit,r0,r1,r2)
static void _divr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _divr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define divi_f(r0,r1,i0) _divi_f(_jit,r0,r1,i0) # define divi_f(r0,r1,i0) _divi_f(_jit,r0,r1,i0)
static void _divi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _divi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define divr_d(r0,r1,r2) _divr_d(_jit,r0,r1,r2) # define divr_d(r0,r1,r2) _divr_d(_jit,r0,r1,r2)
static void _divr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _divr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define divi_d(r0,r1,i0) _divi_d(_jit,r0,r1,i0) # define divi_d(r0,r1,i0) _divi_d(_jit,r0,r1,i0)
static void _divi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _divi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define ltr_f(r0,r1,r2) ltr_d(r0,r1,r2) # define ltr_f(r0,r1,r2) ltr_d(r0,r1,r2)
# define ltr_d(r0,r1,r2) _ltr_d(_jit,r0,r1,r2) # define ltr_d(r0,r1,r2) _ltr_d(_jit,r0,r1,r2)
static void _ltr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ltr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define lti_f(r0,r1,i0) _lti_f(_jit,r0,r1,i0) # define lti_f(r0,r1,i0) _lti_f(_jit,r0,r1,i0)
static void _lti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _lti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define lti_d(r0,r1,i0) _lti_d(_jit,r0,r1,i0) # define lti_d(r0,r1,i0) _lti_d(_jit,r0,r1,i0)
static void _lti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _lti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define ler_f(r0,r1,r2) ler_d(r0,r1,r2) # define ler_f(r0,r1,r2) ler_d(r0,r1,r2)
# define ler_d(r0,r1,r2) _ler_d(_jit,r0,r1,r2) # define ler_d(r0,r1,r2) _ler_d(_jit,r0,r1,r2)
static void _ler_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ler_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define lei_f(r0,r1,i0) _lei_f(_jit,r0,r1,i0) # define lei_f(r0,r1,i0) _lei_f(_jit,r0,r1,i0)
static void _lei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _lei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define lei_d(r0,r1,i0) _lei_d(_jit,r0,r1,i0) # define lei_d(r0,r1,i0) _lei_d(_jit,r0,r1,i0)
static void _lei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _lei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define eqr_f(r0,r1,r2) eqr_d(r0,r1,r2) # define eqr_f(r0,r1,r2) eqr_d(r0,r1,r2)
# define eqr_d(r0,r1,r2) _eqr_d(_jit,r0,r1,r2) # define eqr_d(r0,r1,r2) _eqr_d(_jit,r0,r1,r2)
static void _eqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _eqr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define eqi_f(r0,r1,i0) _eqi_f(_jit,r0,r1,i0) # define eqi_f(r0,r1,i0) _eqi_f(_jit,r0,r1,i0)
static void _eqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _eqi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define eqi_d(r0,r1,i0) _eqi_d(_jit,r0,r1,i0) # define eqi_d(r0,r1,i0) _eqi_d(_jit,r0,r1,i0)
static void _eqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _eqi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define ger_f(r0,r1,r2) ger_d(r0,r1,r2) # define ger_f(r0,r1,r2) ger_d(r0,r1,r2)
# define ger_d(r0,r1,r2) _ger_d(_jit,r0,r1,r2) # define ger_d(r0,r1,r2) _ger_d(_jit,r0,r1,r2)
static void _ger_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ger_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define gei_f(r0,r1,i0) _gei_f(_jit,r0,r1,i0) # define gei_f(r0,r1,i0) _gei_f(_jit,r0,r1,i0)
static void _gei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _gei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define gei_d(r0,r1,i0) _gei_d(_jit,r0,r1,i0) # define gei_d(r0,r1,i0) _gei_d(_jit,r0,r1,i0)
static void _gei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _gei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define gtr_f(r0,r1,r2) gtr_d(r0,r1,r2) # define gtr_f(r0,r1,r2) gtr_d(r0,r1,r2)
# define gtr_d(r0,r1,r2) _gtr_d(_jit,r0,r1,r2) # define gtr_d(r0,r1,r2) _gtr_d(_jit,r0,r1,r2)
static void _gtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _gtr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define gti_f(r0,r1,i0) _gti_f(_jit,r0,r1,i0) # define gti_f(r0,r1,i0) _gti_f(_jit,r0,r1,i0)
static void _gti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _gti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define gti_d(r0,r1,i0) _gti_d(_jit,r0,r1,i0) # define gti_d(r0,r1,i0) _gti_d(_jit,r0,r1,i0)
static void _gti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _gti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define ner_f(r0,r1,r2) ner_d(r0,r1,r2) # define ner_f(r0,r1,r2) ner_d(r0,r1,r2)
# define ner_d(r0,r1,r2) _ner_d(_jit,r0,r1,r2) # define ner_d(r0,r1,r2) _ner_d(_jit,r0,r1,r2)
static void _ner_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ner_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define nei_f(r0,r1,i0) _nei_f(_jit,r0,r1,i0) # define nei_f(r0,r1,i0) _nei_f(_jit,r0,r1,i0)
static void _nei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _nei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define nei_d(r0,r1,i0) _nei_d(_jit,r0,r1,i0) # define nei_d(r0,r1,i0) _nei_d(_jit,r0,r1,i0)
static void _nei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _nei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define unltr_f(r0,r1,r2) unltr_d(r0,r1,r2) # define unltr_f(r0,r1,r2) unltr_d(r0,r1,r2)
# define unltr_d(r0,r1,r2) _unltr_d(_jit,r0,r1,r2) # define unltr_d(r0,r1,r2) _unltr_d(_jit,r0,r1,r2)
static void _unltr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _unltr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define unlti_f(r0,r1,i0) _unlti_f(_jit,r0,r1,i0) # define unlti_f(r0,r1,i0) _unlti_f(_jit,r0,r1,i0)
static void _unlti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _unlti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define unlti_d(r0,r1,i0) _unlti_d(_jit,r0,r1,i0) # define unlti_d(r0,r1,i0) _unlti_d(_jit,r0,r1,i0)
static void _unlti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _unlti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define unler_f(r0,r1,r2) unler_d(r0,r1,r2) # define unler_f(r0,r1,r2) unler_d(r0,r1,r2)
# define unler_d(r0,r1,r2) _unler_d(_jit,r0,r1,r2) # define unler_d(r0,r1,r2) _unler_d(_jit,r0,r1,r2)
static void _unler_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _unler_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define unlei_f(r0,r1,i0) _unlei_f(_jit,r0,r1,i0) # define unlei_f(r0,r1,i0) _unlei_f(_jit,r0,r1,i0)
static void _unlei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _unlei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define unlei_d(r0,r1,i0) _unlei_d(_jit,r0,r1,i0) # define unlei_d(r0,r1,i0) _unlei_d(_jit,r0,r1,i0)
static void _unlei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _unlei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define uneqr_f(r0,r1,r2) uneqr_d(r0,r1,r2) # define uneqr_f(r0,r1,r2) uneqr_d(r0,r1,r2)
# define uneqr_d(r0,r1,r2) _uneqr_d(_jit,r0,r1,r2) # define uneqr_d(r0,r1,r2) _uneqr_d(_jit,r0,r1,r2)
static void _uneqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _uneqr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define uneqi_f(r0,r1,i0) _uneqi_f(_jit,r0,r1,i0) # define uneqi_f(r0,r1,i0) _uneqi_f(_jit,r0,r1,i0)
static void _uneqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _uneqi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define uneqi_d(r0,r1,i0) _uneqi_d(_jit,r0,r1,i0) # define uneqi_d(r0,r1,i0) _uneqi_d(_jit,r0,r1,i0)
static void _uneqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _uneqi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define unger_f(r0,r1,r2) unger_d(r0,r1,r2) # define unger_f(r0,r1,r2) unger_d(r0,r1,r2)
# define unger_d(r0,r1,r2) _unger_d(_jit,r0,r1,r2) # define unger_d(r0,r1,r2) _unger_d(_jit,r0,r1,r2)
static void _unger_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _unger_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ungei_f(r0,r1,i0) _ungei_f(_jit,r0,r1,i0) # define ungei_f(r0,r1,i0) _ungei_f(_jit,r0,r1,i0)
static void _ungei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _ungei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define ungei_d(r0,r1,i0) _ungei_d(_jit,r0,r1,i0) # define ungei_d(r0,r1,i0) _ungei_d(_jit,r0,r1,i0)
static void _ungei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _ungei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define ungtr_f(r0,r1,r2) ungtr_d(r0,r1,r2) # define ungtr_f(r0,r1,r2) ungtr_d(r0,r1,r2)
# define ungtr_d(r0,r1,r2) _ungtr_d(_jit,r0,r1,r2) # define ungtr_d(r0,r1,r2) _ungtr_d(_jit,r0,r1,r2)
static void _ungtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ungtr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ungti_f(r0,r1,i0) _ungti_f(_jit,r0,r1,i0) # define ungti_f(r0,r1,i0) _ungti_f(_jit,r0,r1,i0)
static void _ungti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _ungti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define ungti_d(r0,r1,i0) _ungti_d(_jit,r0,r1,i0) # define ungti_d(r0,r1,i0) _ungti_d(_jit,r0,r1,i0)
static void _ungti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _ungti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define ltgtr_f(r0,r1,r2) ltgtr_d(r0,r1,r2) # define ltgtr_f(r0,r1,r2) ltgtr_d(r0,r1,r2)
# define ltgtr_d(r0,r1,r2) _ltgtr_d(_jit,r0,r1,r2) # define ltgtr_d(r0,r1,r2) _ltgtr_d(_jit,r0,r1,r2)
static void _ltgtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ltgtr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ltgti_f(r0,r1,i0) _ltgti_f(_jit,r0,r1,i0) # define ltgti_f(r0,r1,i0) _ltgti_f(_jit,r0,r1,i0)
static void _ltgti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _ltgti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define ltgti_d(r0,r1,i0) _ltgti_d(_jit,r0,r1,i0) # define ltgti_d(r0,r1,i0) _ltgti_d(_jit,r0,r1,i0)
static void _ltgti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _ltgti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define ordr_f(r0,r1,r2) ordr_d(r0,r1,r2) # define ordr_f(r0,r1,r2) ordr_d(r0,r1,r2)
# define ordr_d(r0,r1,r2) _ordr_d(_jit,r0,r1,r2) # define ordr_d(r0,r1,r2) _ordr_d(_jit,r0,r1,r2)
static void _ordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ordr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ordi_f(r0,r1,i0) _ordi_f(_jit,r0,r1,i0) # define ordi_f(r0,r1,i0) _ordi_f(_jit,r0,r1,i0)
static void _ordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _ordi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define ordi_d(r0,r1,i0) _ordi_d(_jit,r0,r1,i0) # define ordi_d(r0,r1,i0) _ordi_d(_jit,r0,r1,i0)
static void _ordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _ordi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define unordr_f(r0,r1,r2) unordr_d(r0,r1,r2) # define unordr_f(r0,r1,r2) unordr_d(r0,r1,r2)
# define unordr_d(r0,r1,r2) _unordr_d(_jit,r0,r1,r2) # define unordr_d(r0,r1,r2) _unordr_d(_jit,r0,r1,r2)
static void _unordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _unordr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define unordi_f(r0,r1,i0) _unordi_f(_jit,r0,r1,i0) # define unordi_f(r0,r1,i0) _unordi_f(_jit,r0,r1,i0)
static void _unordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _unordi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define unordi_d(r0,r1,i0) _unordi_d(_jit,r0,r1,i0) # define unordi_d(r0,r1,i0) _unordi_d(_jit,r0,r1,i0)
static void _unordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _unordi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define bltr_f(i0,r0,r1) bltr_d(i0,r0,r1) # define bltr_f(i0,r0,r1) bltr_d(i0,r0,r1)
# define bltr_d(i0,r0,r1) _bltr_d(_jit,i0,r0,r1) # define bltr_d(i0,r0,r1) _bltr_d(_jit,i0,r0,r1)
static jit_word_t _bltr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bltr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define blti_f(i0,r0,i1) _blti_f(_jit,i0,r0,i1) # define blti_f(i0,r0,i1) _blti_f(_jit,i0,r0,i1)
static jit_word_t _blti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _blti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define blti_d(i0,r0,i1) _blti_d(_jit,i0,r0,i1) # define blti_d(i0,r0,i1) _blti_d(_jit,i0,r0,i1)
static jit_word_t _blti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _blti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bler_f(i0,r0,r1) bler_d(i0,r0,r1) # define bler_f(i0,r0,r1) bler_d(i0,r0,r1)
# define bler_d(i0,r0,r1) _bler_d(_jit,i0,r0,r1) # define bler_d(i0,r0,r1) _bler_d(_jit,i0,r0,r1)
static jit_word_t _bler_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bler_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define blei_f(i0,r0,i1) _blei_f(_jit,i0,r0,i1) # define blei_f(i0,r0,i1) _blei_f(_jit,i0,r0,i1)
static jit_word_t _blei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _blei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define blei_d(i0,r0,i1) _blei_d(_jit,i0,r0,i1) # define blei_d(i0,r0,i1) _blei_d(_jit,i0,r0,i1)
static jit_word_t _blei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _blei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define beqr_f(i0,r0,r1) beqr_d(i0,r0,r1) # define beqr_f(i0,r0,r1) beqr_d(i0,r0,r1)
# define beqr_d(i0,r0,r1) _beqr_d(_jit,i0,r0,r1) # define beqr_d(i0,r0,r1) _beqr_d(_jit,i0,r0,r1)
static jit_word_t _beqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _beqr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define beqi_f(i0,r0,i1) _beqi_f(_jit,i0,r0,i1) # define beqi_f(i0,r0,i1) _beqi_f(_jit,i0,r0,i1)
static jit_word_t _beqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _beqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define beqi_d(i0,r0,i1) _beqi_d(_jit,i0,r0,i1) # define beqi_d(i0,r0,i1) _beqi_d(_jit,i0,r0,i1)
static jit_word_t _beqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _beqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bger_f(i0,r0,r1) bger_d(i0,r0,r1) # define bger_f(i0,r0,r1) bger_d(i0,r0,r1)
# define bger_d(i0,r0,r1) _bger_d(_jit,i0,r0,r1) # define bger_d(i0,r0,r1) _bger_d(_jit,i0,r0,r1)
static jit_word_t _bger_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bger_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bgei_f(i0,r0,i1) _bgei_f(_jit,i0,r0,i1) # define bgei_f(i0,r0,i1) _bgei_f(_jit,i0,r0,i1)
static jit_word_t _bgei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bgei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bgei_d(i0,r0,i1) _bgei_d(_jit,i0,r0,i1) # define bgei_d(i0,r0,i1) _bgei_d(_jit,i0,r0,i1)
static jit_word_t _bgei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bgei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bgtr_f(i0,r0,r1) bgtr_d(i0,r0,r1) # define bgtr_f(i0,r0,r1) bgtr_d(i0,r0,r1)
# define bgtr_d(i0,r0,r1) _bgtr_d(_jit,i0,r0,r1) # define bgtr_d(i0,r0,r1) _bgtr_d(_jit,i0,r0,r1)
static jit_word_t _bgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bgtr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bgti_f(i0,r0,i1) _bgti_f(_jit,i0,r0,i1) # define bgti_f(i0,r0,i1) _bgti_f(_jit,i0,r0,i1)
static jit_word_t _bgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bgti_d(i0,r0,i1) _bgti_d(_jit,i0,r0,i1) # define bgti_d(i0,r0,i1) _bgti_d(_jit,i0,r0,i1)
static jit_word_t _bgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bner_f(i0,r0,r1) bner_d(i0,r0,r1) # define bner_f(i0,r0,r1) bner_d(i0,r0,r1)
# define bner_d(i0,r0,r1) _bner_d(_jit,i0,r0,r1) # define bner_d(i0,r0,r1) _bner_d(_jit,i0,r0,r1)
static jit_word_t _bner_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bner_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bnei_f(i0,r0,i1) _bnei_f(_jit,i0,r0,i1) # define bnei_f(i0,r0,i1) _bnei_f(_jit,i0,r0,i1)
static jit_word_t _bnei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bnei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bnei_d(i0,r0,i1) _bnei_d(_jit,i0,r0,i1) # define bnei_d(i0,r0,i1) _bnei_d(_jit,i0,r0,i1)
static jit_word_t _bnei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bnei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bunltr_f(i0,r0,r1) bunltr_d(i0,r0,r1) # define bunltr_f(i0,r0,r1) bunltr_d(i0,r0,r1)
# define bunltr_d(i0,r0,r1) _bunltr_d(_jit,i0,r0,r1) # define bunltr_d(i0,r0,r1) _bunltr_d(_jit,i0,r0,r1)
static jit_word_t _bunltr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bunltr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bunlti_f(i0,r0,i1) _bunlti_f(_jit,i0,r0,i1) # define bunlti_f(i0,r0,i1) _bunlti_f(_jit,i0,r0,i1)
static jit_word_t _bunlti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bunlti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bunlti_d(i0,r0,i1) _bunlti_d(_jit,i0,r0,i1) # define bunlti_d(i0,r0,i1) _bunlti_d(_jit,i0,r0,i1)
static jit_word_t _bunlti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bunlti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bunler_f(i0,r0,r1) bunler_d(i0,r0,r1) # define bunler_f(i0,r0,r1) bunler_d(i0,r0,r1)
# define bunler_d(i0,r0,r1) _bunler_d(_jit,i0,r0,r1) # define bunler_d(i0,r0,r1) _bunler_d(_jit,i0,r0,r1)
static jit_word_t _bunler_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bunler_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bunlei_f(i0,r0,i1) _bunlei_f(_jit,i0,r0,i1) # define bunlei_f(i0,r0,i1) _bunlei_f(_jit,i0,r0,i1)
static jit_word_t _bunlei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bunlei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bunlei_d(i0,r0,i1) _bunlei_d(_jit,i0,r0,i1) # define bunlei_d(i0,r0,i1) _bunlei_d(_jit,i0,r0,i1)
static jit_word_t _bunlei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bunlei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define buneqr_f(i0,r0,r1) buneqr_d(i0,r0,r1) # define buneqr_f(i0,r0,r1) buneqr_d(i0,r0,r1)
# define buneqr_d(i0,r0,r1) _buneqr_d(_jit,i0,r0,r1) # define buneqr_d(i0,r0,r1) _buneqr_d(_jit,i0,r0,r1)
static jit_word_t _buneqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _buneqr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define buneqi_f(i0,r0,i1) _buneqi_f(_jit,i0,r0,i1) # define buneqi_f(i0,r0,i1) _buneqi_f(_jit,i0,r0,i1)
static jit_word_t _buneqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _buneqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define buneqi_d(i0,r0,i1) _buneqi_d(_jit,i0,r0,i1) # define buneqi_d(i0,r0,i1) _buneqi_d(_jit,i0,r0,i1)
static jit_word_t _buneqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _buneqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bunger_f(i0,r0,r1) bunger_d(i0,r0,r1) # define bunger_f(i0,r0,r1) bunger_d(i0,r0,r1)
# define bunger_d(i0,r0,r1) _bunger_d(_jit,i0,r0,r1) # define bunger_d(i0,r0,r1) _bunger_d(_jit,i0,r0,r1)
static jit_word_t _bunger_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bunger_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bungei_f(i0,r0,i1) _bungei_f(_jit,i0,r0,i1) # define bungei_f(i0,r0,i1) _bungei_f(_jit,i0,r0,i1)
static jit_word_t _bungei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bungei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bungei_d(i0,r0,i1) _bungei_d(_jit,i0,r0,i1) # define bungei_d(i0,r0,i1) _bungei_d(_jit,i0,r0,i1)
static jit_word_t _bungei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bungei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bungtr_f(i0,r0,r1) bungtr_d(i0,r0,r1) # define bungtr_f(i0,r0,r1) bungtr_d(i0,r0,r1)
# define bungtr_d(i0,r0,r1) _bungtr_d(_jit,i0,r0,r1) # define bungtr_d(i0,r0,r1) _bungtr_d(_jit,i0,r0,r1)
static jit_word_t _bungtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bungtr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bungti_f(i0,r0,i1) _bungti_f(_jit,i0,r0,i1) # define bungti_f(i0,r0,i1) _bungti_f(_jit,i0,r0,i1)
static jit_word_t _bungti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bungti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bungti_d(i0,r0,i1) _bungti_d(_jit,i0,r0,i1) # define bungti_d(i0,r0,i1) _bungti_d(_jit,i0,r0,i1)
static jit_word_t _bungti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bungti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bltgtr_f(i0,r0,r1) bltgtr_d(i0,r0,r1) # define bltgtr_f(i0,r0,r1) bltgtr_d(i0,r0,r1)
# define bltgtr_d(i0,r0,r1) _bltgtr_d(_jit,i0,r0,r1) # define bltgtr_d(i0,r0,r1) _bltgtr_d(_jit,i0,r0,r1)
static jit_word_t _bltgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bltgtr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bltgti_f(i0,r0,i1) _bltgti_f(_jit,i0,r0,i1) # define bltgti_f(i0,r0,i1) _bltgti_f(_jit,i0,r0,i1)
static jit_word_t _bltgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bltgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bltgti_d(i0,r0,i1) _bltgti_d(_jit,i0,r0,i1) # define bltgti_d(i0,r0,i1) _bltgti_d(_jit,i0,r0,i1)
static jit_word_t _bltgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bltgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bordr_f(i0,r0,r1) bordr_d(i0,r0,r1) # define bordr_f(i0,r0,r1) bordr_d(i0,r0,r1)
# define bordr_d(i0,r0,r1) _bordr_d(_jit,i0,r0,r1) # define bordr_d(i0,r0,r1) _bordr_d(_jit,i0,r0,r1)
static jit_word_t _bordr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bordr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bordi_f(i0,r0,i1) _bordi_f(_jit,i0,r0,i1) # define bordi_f(i0,r0,i1) _bordi_f(_jit,i0,r0,i1)
static jit_word_t _bordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bordi_d(i0,r0,i1) _bordi_d(_jit,i0,r0,i1) # define bordi_d(i0,r0,i1) _bordi_d(_jit,i0,r0,i1)
static jit_word_t _bordi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bordi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bunordr_f(i0,r0,r1) bunordr_d(i0,r0,r1) # define bunordr_f(i0,r0,r1) bunordr_d(i0,r0,r1)
# define bunordr_d(i0,r0,r1) _bunordr_d(_jit,i0,r0,r1) # define bunordr_d(i0,r0,r1) _bunordr_d(_jit,i0,r0,r1)
static jit_word_t _bunordr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bunordr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bunordi_f(i0,r0,i1) _bunordi_f(_jit,i0,r0,i1) # define bunordi_f(i0,r0,i1) _bunordi_f(_jit,i0,r0,i1)
static jit_word_t _bunordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bunordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bunordi_d(i0,r0,i1) _bunordi_d(_jit,i0,r0,i1) # define bunordi_d(i0,r0,i1) _bunordi_d(_jit,i0,r0,i1)
@ -565,13 +565,13 @@ static void _ldi_f(jit_state_t*,int32_t,jit_word_t);
# define ldi_d(r0,i0) _ldi_d(_jit,r0,i0) # define ldi_d(r0,i0) _ldi_d(_jit,r0,i0)
static void _ldi_d(jit_state_t*,int32_t,jit_word_t); static void _ldi_d(jit_state_t*,int32_t,jit_word_t);
# define ldxr_f(r0,r1,r2) _ldxr_f(_jit,r0,r1,r2) # define ldxr_f(r0,r1,r2) _ldxr_f(_jit,r0,r1,r2)
static void _ldxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ldxi_f(r0,r1,i0) _ldxi_f(_jit,r0,r1,i0) # define ldxi_f(r0,r1,i0) _ldxi_f(_jit,r0,r1,i0)
static void _ldxi_f(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_f(jit_state_t*,int32_t,int32_t,jit_word_t);
# define ldxr_d(r0,r1,r2) _ldxr_d(_jit,r0,r1,r2) # define ldxr_d(r0,r1,r2) _ldxr_d(_jit,r0,r1,r2)
static void _ldxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ldxi_d(r0,r1,i0) _ldxi_d(_jit,r0,r1,i0) # define ldxi_d(r0,r1,i0) _ldxi_d(_jit,r0,r1,i0)
static void _ldxi_d(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_d(jit_state_t*,int32_t,int32_t,jit_word_t);
# define str_f(r0,r1) STS(r1,r0,0) # define str_f(r0,r1) STS(r1,r0,0)
# define sti_f(i0,r0) _sti_f(_jit,i0,r0) # define sti_f(i0,r0) _sti_f(_jit,i0,r0)
static void _sti_f(jit_state_t*,jit_word_t,int32_t); static void _sti_f(jit_state_t*,jit_word_t,int32_t);
@ -579,22 +579,22 @@ static void _sti_f(jit_state_t*,jit_word_t,int32_t);
# define sti_d(i0,r0) _sti_d(_jit,i0,r0) # define sti_d(i0,r0) _sti_d(_jit,i0,r0)
static void _sti_d(jit_state_t*,jit_word_t,int32_t); static void _sti_d(jit_state_t*,jit_word_t,int32_t);
# define stxr_f(r0,r1,r2) _stxr_f(_jit,r0,r1,r2) # define stxr_f(r0,r1,r2) _stxr_f(_jit,r0,r1,r2)
static void _stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _stxr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define stxi_f(i0,r0,r1) _stxi_f(_jit,i0,r0,r1) # define stxi_f(i0,r0,r1) _stxi_f(_jit,i0,r0,r1)
static void _stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_f(jit_state_t*,jit_word_t,int32_t,int32_t);
# define stxr_d(r0,r1,r2) _stxr_d(_jit,r0,r1,r2) # define stxr_d(r0,r1,r2) _stxr_d(_jit,r0,r1,r2)
static void _stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _stxr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define stxi_d(i0,r0,r1) _stxi_d(_jit,i0,r0,r1) # define stxi_d(i0,r0,r1) _stxi_d(_jit,i0,r0,r1)
static void _stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1) # define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1)
static void _vaarg_d(jit_state_t*, int32_t, jit_int32_t); static void _vaarg_d(jit_state_t*, int32_t, int32_t);
#endif #endif
#if CODE #if CODE
# define fpr_opi(name, type, size) \ # define fpr_opi(name, type, size) \
static void \ static void \
_##name##i_##type(jit_state_t *_jit, \ _##name##i_##type(jit_state_t *_jit, \
int32_t r0, jit_int32_t r1, \ int32_t r0, int32_t r1, \
jit_float##size##_t *i0) \ jit_float##size##_t *i0) \
{ \ { \
int32_t reg = jit_get_reg(jit_class_fpr); \ int32_t reg = jit_get_reg(jit_class_fpr); \
@ -621,7 +621,7 @@ _b##name##i_##type(jit_state_t *_jit, \
# define dbopi(name) fpr_bopi(name, d, 64) # define dbopi(name) fpr_bopi(name, d, 64)
static void static void
_movr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _movr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (r0 != r1) if (r0 != r1)
FMOV(r1, r0); FMOV(r1, r0);
@ -670,7 +670,7 @@ _movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t *i0)
} }
static void static void
_truncr_d_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _truncr_d_l(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_fpr); reg = jit_get_reg(jit_class_fpr);
@ -682,21 +682,21 @@ _truncr_d_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_sqrtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _sqrtr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
SQRTS_SU(r1, r0); SQRTS_SU(r1, r0);
TRAPB(); TRAPB();
} }
static void static void
_sqrtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _sqrtr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
SQRTT_SU(r1, r0); SQRTT_SU(r1, r0);
TRAPB(); TRAPB();
} }
static void static void
_extr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
stxi_l(-8, _FP_REGNO, r1); stxi_l(-8, _FP_REGNO, r1);
ldxi_d(r0, _FP_REGNO, -8); ldxi_d(r0, _FP_REGNO, -8);
@ -704,7 +704,7 @@ _extr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
stxi_l(-8, _FP_REGNO, r1); stxi_l(-8, _FP_REGNO, r1);
ldxi_d(r0, _FP_REGNO, -8); ldxi_d(r0, _FP_REGNO, -8);
@ -712,7 +712,7 @@ _extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_addr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _addr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
ADDS_SU(r1, r2, r0); ADDS_SU(r1, r2, r0);
TRAPB(); TRAPB();
@ -720,7 +720,7 @@ _addr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
fopi(add) fopi(add)
static void static void
_addr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _addr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
ADDT_SU(r1, r2, r0); ADDT_SU(r1, r2, r0);
TRAPB(); TRAPB();
@ -728,7 +728,7 @@ _addr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
dopi(add) dopi(add)
static void static void
_subr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _subr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
SUBS_SU(r1, r2, r0); SUBS_SU(r1, r2, r0);
TRAPB(); TRAPB();
@ -737,7 +737,7 @@ fopi(sub)
fopi(rsb) fopi(rsb)
static void static void
_subr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _subr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
SUBT_SU(r1, r2, r0); SUBT_SU(r1, r2, r0);
TRAPB(); TRAPB();
@ -746,7 +746,7 @@ dopi(sub)
dopi(rsb) dopi(rsb)
static void static void
_mulr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _mulr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
MULS_SU(r1, r2, r0); MULS_SU(r1, r2, r0);
TRAPB(); TRAPB();
@ -754,7 +754,7 @@ _mulr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
fopi(mul) fopi(mul)
static void static void
_mulr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _mulr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
MULT_SU(r1, r2, r0); MULT_SU(r1, r2, r0);
TRAPB(); TRAPB();
@ -762,7 +762,7 @@ _mulr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
dopi(mul) dopi(mul)
static void static void
_divr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _divr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
DIVS_SU(r1, r2, r0); DIVS_SU(r1, r2, r0);
TRAPB(); TRAPB();
@ -770,7 +770,7 @@ _divr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
fopi(div) fopi(div)
static void static void
_divr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _divr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
DIVT_SU(r1, r2, r0); DIVT_SU(r1, r2, r0);
TRAPB(); TRAPB();
@ -778,7 +778,7 @@ _divr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
dopi(div) dopi(div)
static void static void
_ltr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ltr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
jit_word_t v, w; jit_word_t v, w;
@ -801,7 +801,7 @@ fopi(lt);
dopi(lt); dopi(lt);
static void static void
_ler_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ler_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
jit_word_t v, w; jit_word_t v, w;
@ -824,7 +824,7 @@ fopi(le);
dopi(le); dopi(le);
static void static void
_eqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _eqr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
jit_word_t v, w; jit_word_t v, w;
@ -847,7 +847,7 @@ fopi(eq);
dopi(eq); dopi(eq);
static void static void
_ger_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ger_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
jit_word_t v, w; jit_word_t v, w;
@ -870,7 +870,7 @@ fopi(ge);
dopi(ge); dopi(ge);
static void static void
_gtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _gtr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
jit_word_t v, w; jit_word_t v, w;
@ -893,7 +893,7 @@ fopi(gt);
dopi(gt); dopi(gt);
static void static void
_ner_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ner_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
jit_word_t v, w; jit_word_t v, w;
@ -916,7 +916,7 @@ fopi(ne);
dopi(ne); dopi(ne);
static void static void
_unltr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _unltr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
jit_word_t v, w; jit_word_t v, w;
@ -939,7 +939,7 @@ fopi(unlt);
dopi(unlt); dopi(unlt);
static void static void
_unler_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _unler_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
jit_word_t v, w; jit_word_t v, w;
@ -962,7 +962,7 @@ fopi(unle);
dopi(unle); dopi(unle);
static void static void
_uneqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _uneqr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
jit_word_t v, w; jit_word_t v, w;
@ -985,7 +985,7 @@ fopi(uneq);
dopi(uneq); dopi(uneq);
static void static void
_unger_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _unger_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
jit_word_t v, w; jit_word_t v, w;
@ -1008,7 +1008,7 @@ fopi(unge);
dopi(unge); dopi(unge);
static void static void
_ungtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ungtr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
jit_word_t v, w; jit_word_t v, w;
@ -1031,7 +1031,7 @@ fopi(ungt);
dopi(ungt); dopi(ungt);
static void static void
_ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ltgtr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
jit_word_t v, w; jit_word_t v, w;
@ -1054,7 +1054,7 @@ fopi(ltgt);
dopi(ltgt); dopi(ltgt);
static void static void
_ordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ordr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_word_t w; jit_word_t w;
int32_t reg; int32_t reg;
@ -1072,7 +1072,7 @@ fopi(ord);
dopi(ord); dopi(ord);
static void static void
_unordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _unordr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_word_t w; jit_word_t w;
int32_t reg; int32_t reg;
@ -1090,7 +1090,7 @@ fopi(unord);
dopi(unord); dopi(unord);
static jit_word_t static jit_word_t
_bltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
jit_word_t v, w; jit_word_t v, w;
@ -1111,7 +1111,7 @@ fbopi(lt);
dbopi(lt); dbopi(lt);
static jit_word_t static jit_word_t
_bler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
jit_word_t v, w; jit_word_t v, w;
@ -1132,7 +1132,7 @@ fbopi(le);
dbopi(le); dbopi(le);
static jit_word_t static jit_word_t
_beqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _beqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
jit_word_t v, w; jit_word_t v, w;
@ -1153,7 +1153,7 @@ fbopi(eq);
dbopi(eq); dbopi(eq);
static jit_word_t static jit_word_t
_bger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
jit_word_t v, w; jit_word_t v, w;
@ -1174,7 +1174,7 @@ fbopi(ge);
dbopi(ge); dbopi(ge);
static jit_word_t static jit_word_t
_bgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
jit_word_t v, w; jit_word_t v, w;
@ -1195,7 +1195,7 @@ fbopi(gt);
dbopi(gt); dbopi(gt);
static jit_word_t static jit_word_t
_bner_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bner_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
jit_word_t u, v, w; jit_word_t u, v, w;
@ -1219,7 +1219,7 @@ fbopi(ne);
dbopi(ne); dbopi(ne);
static jit_word_t static jit_word_t
_bunltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bunltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
jit_word_t u, v, w; jit_word_t u, v, w;
@ -1243,7 +1243,7 @@ fbopi(unlt);
dbopi(unlt); dbopi(unlt);
static jit_word_t static jit_word_t
_bunler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bunler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
jit_word_t u, v, w; jit_word_t u, v, w;
@ -1267,7 +1267,7 @@ fbopi(unle);
dbopi(unle); dbopi(unle);
static jit_word_t static jit_word_t
_buneqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _buneqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
jit_word_t u, v, w; jit_word_t u, v, w;
@ -1291,7 +1291,7 @@ fbopi(uneq);
dbopi(uneq); dbopi(uneq);
static jit_word_t static jit_word_t
_bunger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bunger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
jit_word_t u, v, w; jit_word_t u, v, w;
@ -1315,7 +1315,7 @@ fbopi(unge);
dbopi(unge); dbopi(unge);
static jit_word_t static jit_word_t
_bungtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bungtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
jit_word_t u, v, w; jit_word_t u, v, w;
@ -1339,7 +1339,7 @@ fbopi(ungt);
dbopi(ungt); dbopi(ungt);
static jit_word_t static jit_word_t
_bltgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bltgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t u, v, w; jit_word_t u, v, w;
int32_t reg; int32_t reg;
@ -1363,7 +1363,7 @@ fbopi(ltgt);
dbopi(ltgt); dbopi(ltgt);
static jit_word_t static jit_word_t
_bordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
int32_t reg; int32_t reg;
@ -1379,7 +1379,7 @@ fbopi(ord);
dbopi(ord); dbopi(ord);
static jit_word_t static jit_word_t
_bunordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bunordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
int32_t reg; int32_t reg;
@ -1423,7 +1423,7 @@ _ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_word_t reg; jit_word_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1433,7 +1433,7 @@ _ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
jit_word_t reg; jit_word_t reg;
if (_s16_p(i0)) if (_s16_p(i0))
@ -1447,7 +1447,7 @@ _ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_word_t reg; jit_word_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1457,7 +1457,7 @@ _ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
jit_word_t reg; jit_word_t reg;
if (_s16_p(i0)) if (_s16_p(i0))
@ -1499,7 +1499,7 @@ _sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0)
} }
static void static void
_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _stxr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_word_t reg; jit_word_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1509,7 +1509,7 @@ _stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t reg; jit_word_t reg;
if (_s16_p(i0)) if (_s16_p(i0))
@ -1523,7 +1523,7 @@ _stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _stxr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_word_t reg; jit_word_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1533,7 +1533,7 @@ _stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t reg; jit_word_t reg;
if (_s16_p(i0)) if (_s16_p(i0))
@ -1547,7 +1547,7 @@ _stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vaarg_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
jit_word_t ge_code; jit_word_t ge_code;
int32_t rg0, rg1, rg2; int32_t rg0, rg1, rg2;

View file

@ -213,7 +213,7 @@ _jit_allocai(jit_state_t *_jit, int32_t length)
} }
void void
_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) _jit_allocar(jit_state_t *_jit, int32_t u, int32_t v)
{ {
int32_t reg; int32_t reg;
assert(_jitc->function != NULL); assert(_jitc->function != NULL);
@ -1505,25 +1505,25 @@ jit_flush(void *fptr, void *tptr)
} }
void void
_emit_ldxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _emit_ldxi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
ldxi(rn(r0), rn(r1), i0); ldxi(rn(r0), rn(r1), i0);
} }
void void
_emit_stxi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _emit_stxi(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
stxi(i0, rn(r0), rn(r1)); stxi(i0, rn(r0), rn(r1));
} }
void void
_emit_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _emit_ldxi_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
ldxi_d(rn(r0), rn(r1), i0); ldxi_d(rn(r0), rn(r1), i0);
} }
void void
_emit_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _emit_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
stxi_d(i0, rn(r0), rn(r1)); stxi_d(i0, rn(r0), rn(r1));
} }

View file

@ -838,111 +838,111 @@ static void _torl(jit_state_t*,int,int,int) maybe_unused;
# define nop(i0) _nop(_jit,i0) # define nop(i0) _nop(_jit,i0)
static void _nop(jit_state_t*,int32_t); static void _nop(jit_state_t*,int32_t);
# define movr(r0,r1) _movr(_jit,r0,r1) # define movr(r0,r1) _movr(_jit,r0,r1)
static void _movr(jit_state_t*,int32_t,jit_int32_t); static void _movr(jit_state_t*,int32_t,int32_t);
# define movi(r0,i0) _movi(_jit,r0,i0) # define movi(r0,i0) _movi(_jit,r0,i0)
static void _movi(jit_state_t*,int32_t,jit_word_t); static void _movi(jit_state_t*,int32_t,jit_word_t);
# define movi_p(r0,i0) _movi_p(_jit,r0,i0) # define movi_p(r0,i0) _movi_p(_jit,r0,i0)
static jit_word_t _movi_p(jit_state_t*,int32_t,jit_word_t); static jit_word_t _movi_p(jit_state_t*,int32_t,jit_word_t);
# define comr(r0,r1) _comr(_jit,r0,r1) # define comr(r0,r1) _comr(_jit,r0,r1)
static void _comr(jit_state_t*,int32_t,jit_int32_t); static void _comr(jit_state_t*,int32_t,int32_t);
# define negr(r0,r1) _negr(_jit,r0,r1) # define negr(r0,r1) _negr(_jit,r0,r1)
static void _negr(jit_state_t*,int32_t,jit_int32_t); static void _negr(jit_state_t*,int32_t,int32_t);
# define addr(r0,r1,r2) _addr(_jit,r0,r1,r2) # define addr(r0,r1,r2) _addr(_jit,r0,r1,r2)
static void _addr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _addr(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define addi(r0,r1,i0) _addi(_jit,r0,r1,i0) # define addi(r0,r1,i0) _addi(_jit,r0,r1,i0)
static void _addi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _addi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define addcr(r0,r1,r2) _addcr(_jit,r0,r1,r2) # define addcr(r0,r1,r2) _addcr(_jit,r0,r1,r2)
static void _addcr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _addcr(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define addci(r0,r1,i0) _addci(_jit,r0,r1,i0) # define addci(r0,r1,i0) _addci(_jit,r0,r1,i0)
static void _addci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _addci(jit_state_t*,int32_t,int32_t,jit_word_t);
# define addxr(r0,r1,r2) _addxr(_jit,r0,r1,r2) # define addxr(r0,r1,r2) _addxr(_jit,r0,r1,r2)
static void _addxr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _addxr(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define addxi(r0,r1,i0) _addxi(_jit,r0,r1,i0) # define addxi(r0,r1,i0) _addxi(_jit,r0,r1,i0)
static void _addxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _addxi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define subr(r0,r1,r2) _subr(_jit,r0,r1,r2) # define subr(r0,r1,r2) _subr(_jit,r0,r1,r2)
static void _subr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _subr(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define subi(r0,r1,i0) _subi(_jit,r0,r1,i0) # define subi(r0,r1,i0) _subi(_jit,r0,r1,i0)
static void _subi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _subi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define subcr(r0,r1,r2) _subcr(_jit,r0,r1,r2) # define subcr(r0,r1,r2) _subcr(_jit,r0,r1,r2)
static void _subcr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _subcr(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define subci(r0,r1,i0) _subci(_jit,r0,r1,i0) # define subci(r0,r1,i0) _subci(_jit,r0,r1,i0)
static void _subci(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _subci(jit_state_t*,int32_t,int32_t,jit_word_t);
# define subxr(r0,r1,r2) _subxr(_jit,r0,r1,r2) # define subxr(r0,r1,r2) _subxr(_jit,r0,r1,r2)
static void _subxr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _subxr(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define subxi(r0,r1,i0) _subxi(_jit,r0,r1,i0) # define subxi(r0,r1,i0) _subxi(_jit,r0,r1,i0)
static void _subxi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _subxi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define rsbi(r0, r1, i0) _rsbi(_jit, r0, r1, i0) # define rsbi(r0, r1, i0) _rsbi(_jit, r0, r1, i0)
static void _rsbi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _rsbi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define mulr(r0,r1,r2) _mulr(_jit,r0,r1,r2) # define mulr(r0,r1,r2) _mulr(_jit,r0,r1,r2)
static void _mulr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _mulr(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define muli(r0,r1,i0) _muli(_jit,r0,r1,i0) # define muli(r0,r1,i0) _muli(_jit,r0,r1,i0)
static void _muli(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _muli(jit_state_t*,int32_t,int32_t,jit_word_t);
# define qmulr(r0,r1,r2,r3) iqmulr(r0,r1,r2,r3,1) # define qmulr(r0,r1,r2,r3) iqmulr(r0,r1,r2,r3,1)
# define qmulr_u(r0,r1,r2,r3) iqmulr(r0,r1,r2,r3,0) # define qmulr_u(r0,r1,r2,r3) iqmulr(r0,r1,r2,r3,0)
# define iqmulr(r0,r1,r2,r3,cc) _iqmulr(_jit,r0,r1,r2,r3,cc) # define iqmulr(r0,r1,r2,r3,cc) _iqmulr(_jit,r0,r1,r2,r3,cc)
static void _iqmulr(jit_state_t*,int32_t,jit_int32_t, static void _iqmulr(jit_state_t*,int32_t,int32_t,
int32_t,jit_int32_t,jit_bool_t); int32_t,int32_t,jit_bool_t);
# define qmuli(r0,r1,r2,i0) iqmuli(r0,r1,r2,i0,1) # define qmuli(r0,r1,r2,i0) iqmuli(r0,r1,r2,i0,1)
# define qmuli_u(r0,r1,r2,i0) iqmuli(r0,r1,r2,i0,0) # define qmuli_u(r0,r1,r2,i0) iqmuli(r0,r1,r2,i0,0)
# define iqmuli(r0,r1,r2,i0,cc) _iqmuli(_jit,r0,r1,r2,i0,cc) # define iqmuli(r0,r1,r2,i0,cc) _iqmuli(_jit,r0,r1,r2,i0,cc)
static void _iqmuli(jit_state_t*,int32_t,jit_int32_t, static void _iqmuli(jit_state_t*,int32_t,int32_t,
int32_t,jit_word_t,jit_bool_t); int32_t,jit_word_t,jit_bool_t);
# define divrem(d,s,r0,r1,r2) _divrem(_jit,d,s,r0,r1,r2) # define divrem(d,s,r0,r1,r2) _divrem(_jit,d,s,r0,r1,r2)
static void _divrem(jit_state_t*,int,int,int32_t,jit_int32_t,jit_int32_t); static void _divrem(jit_state_t*,int,int,int32_t,int32_t,jit_int32_t);
# define divr(r0,r1,r2) _divr(_jit,r0,r1,r2) # define divr(r0,r1,r2) _divr(_jit,r0,r1,r2)
static void _divr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _divr(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define divi(r0,r1,i0) _divi(_jit,r0,r1,i0) # define divi(r0,r1,i0) _divi(_jit,r0,r1,i0)
static void _divi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _divi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define divr_u(r0,r1,r2) _divr_u(_jit,r0,r1,r2) # define divr_u(r0,r1,r2) _divr_u(_jit,r0,r1,r2)
static void _divr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _divr_u(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define divi_u(r0,r1,i0) _divi_u(_jit,r0,r1,i0) # define divi_u(r0,r1,i0) _divi_u(_jit,r0,r1,i0)
static void _divi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _divi_u(jit_state_t*,int32_t,int32_t,jit_word_t);
# define qdivr(r0,r1,r2,r3) iqdivr(r0,r1,r2,r3,1) # define qdivr(r0,r1,r2,r3) iqdivr(r0,r1,r2,r3,1)
# define qdivr_u(r0,r1,r2,r3) iqdivr(r0,r1,r2,r3,0) # define qdivr_u(r0,r1,r2,r3) iqdivr(r0,r1,r2,r3,0)
# define iqdivr(r0,r1,r2,r3,cc) _iqdivr(_jit,r0,r1,r2,r3,cc) # define iqdivr(r0,r1,r2,r3,cc) _iqdivr(_jit,r0,r1,r2,r3,cc)
static void _iqdivr(jit_state_t*,int32_t,jit_int32_t, static void _iqdivr(jit_state_t*,int32_t,int32_t,
int32_t,jit_int32_t,jit_bool_t); int32_t,int32_t,jit_bool_t);
# define qdivi(r0,r1,r2,i0) iqdivi(r0,r1,r2,i0,1) # define qdivi(r0,r1,r2,i0) iqdivi(r0,r1,r2,i0,1)
# define qdivi_u(r0,r1,r2,i0) iqdivi(r0,r1,r2,i0,0) # define qdivi_u(r0,r1,r2,i0) iqdivi(r0,r1,r2,i0,0)
# define iqdivi(r0,r1,r2,i0,cc) _iqdivi(_jit,r0,r1,r2,i0,cc) # define iqdivi(r0,r1,r2,i0,cc) _iqdivi(_jit,r0,r1,r2,i0,cc)
static void _iqdivi(jit_state_t*,int32_t,jit_int32_t, static void _iqdivi(jit_state_t*,int32_t,int32_t,
int32_t,jit_word_t,jit_bool_t); int32_t,jit_word_t,jit_bool_t);
# define remr(r0,r1,r2) _remr(_jit,r0,r1,r2) # define remr(r0,r1,r2) _remr(_jit,r0,r1,r2)
static void _remr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _remr(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define remi(r0,r1,i0) _remi(_jit,r0,r1,i0) # define remi(r0,r1,i0) _remi(_jit,r0,r1,i0)
static void _remi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _remi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define remr_u(r0,r1,r2) _remr_u(_jit,r0,r1,r2) # define remr_u(r0,r1,r2) _remr_u(_jit,r0,r1,r2)
static void _remr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _remr_u(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define remi_u(r0,r1,i0) _remi_u(_jit,r0,r1,i0) # define remi_u(r0,r1,i0) _remi_u(_jit,r0,r1,i0)
static void _remi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _remi_u(jit_state_t*,int32_t,int32_t,jit_word_t);
# define andr(r0,r1,r2) _andr(_jit,r0,r1,r2) # define andr(r0,r1,r2) _andr(_jit,r0,r1,r2)
static void _andr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _andr(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define andi(r0,r1,i0) _andi(_jit,r0,r1,i0) # define andi(r0,r1,i0) _andi(_jit,r0,r1,i0)
static void _andi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _andi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define orr(r0,r1,r2) _orr(_jit,r0,r1,r2) # define orr(r0,r1,r2) _orr(_jit,r0,r1,r2)
static void _orr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _orr(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ori(r0,r1,i0) _ori(_jit,r0,r1,i0) # define ori(r0,r1,i0) _ori(_jit,r0,r1,i0)
static void _ori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ori(jit_state_t*,int32_t,int32_t,jit_word_t);
# define xorr(r0,r1,r2) _xorr(_jit,r0,r1,r2) # define xorr(r0,r1,r2) _xorr(_jit,r0,r1,r2)
static void _xorr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _xorr(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define xori(r0,r1,i0) _xori(_jit,r0,r1,i0) # define xori(r0,r1,i0) _xori(_jit,r0,r1,i0)
static void _xori(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _xori(jit_state_t*,int32_t,int32_t,jit_word_t);
# define lshr(r0,r1,r2) _lshr(_jit,r0,r1,r2) # define lshr(r0,r1,r2) _lshr(_jit,r0,r1,r2)
static void _lshr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _lshr(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define lshi(r0,r1,i0) _lshi(_jit,r0,r1,i0) # define lshi(r0,r1,i0) _lshi(_jit,r0,r1,i0)
static void _lshi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _lshi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define rshr(r0,r1,r2) _rshr(_jit,r0,r1,r2) # define rshr(r0,r1,r2) _rshr(_jit,r0,r1,r2)
static void _rshr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _rshr(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define rshi(r0,r1,i0) _rshi(_jit,r0,r1,i0) # define rshi(r0,r1,i0) _rshi(_jit,r0,r1,i0)
static void _rshi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _rshi(jit_state_t*,int32_t,int32_t,jit_word_t);
# define rshr_u(r0,r1,r2) _rshr_u(_jit,r0,r1,r2) # define rshr_u(r0,r1,r2) _rshr_u(_jit,r0,r1,r2)
static void _rshr_u(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _rshr_u(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define rshi_u(r0,r1,i0) _rshi_u(_jit,r0,r1,i0) # define rshi_u(r0,r1,i0) _rshi_u(_jit,r0,r1,i0)
static void _rshi_u(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _rshi_u(jit_state_t*,int32_t,int32_t,jit_word_t);
# define ccr(ct,cf,r0,r1,r2) _ccr(_jit,ct,cf,r0,r1,r2) # define ccr(ct,cf,r0,r1,r2) _ccr(_jit,ct,cf,r0,r1,r2)
static void _ccr(jit_state_t*,int,int,int32_t,jit_int32_t,jit_int32_t); static void _ccr(jit_state_t*,int,int,int32_t,int32_t,jit_int32_t);
# define cci(ct,cf,r0,r1,i0) _cci(_jit,ct,cf,r0,r1,i0) # define cci(ct,cf,r0,r1,i0) _cci(_jit,ct,cf,r0,r1,i0)
static void _cci(jit_state_t*,int,int,int32_t,jit_int32_t,jit_word_t); static void _cci(jit_state_t*,int,int,int32_t,int32_t,jit_word_t);
# define ltr(r0, r1, r2) ccr(ARM_CC_LT,ARM_CC_GE,r0,r1,r2) # define ltr(r0, r1, r2) ccr(ARM_CC_LT,ARM_CC_GE,r0,r1,r2)
# define lti(r0, r1, i0) cci(ARM_CC_LT,ARM_CC_GE,r0,r1,i0) # define lti(r0, r1, i0) cci(ARM_CC_LT,ARM_CC_GE,r0,r1,i0)
# define ltr_u(r0, r1, r2) ccr(ARM_CC_LO,ARM_CC_HS,r0,r1,r2) # define ltr_u(r0, r1, r2) ccr(ARM_CC_LO,ARM_CC_HS,r0,r1,r2)
@ -962,9 +962,9 @@ static void _cci(jit_state_t*,int,int,int32_t,jit_int32_t,jit_word_t);
# define gtr_u(r0, r1, r2) ccr(ARM_CC_HI,ARM_CC_LS,r0,r1,r2) # define gtr_u(r0, r1, r2) ccr(ARM_CC_HI,ARM_CC_LS,r0,r1,r2)
# define gti_u(r0, r1, i0) cci(ARM_CC_HI,ARM_CC_LS,r0,r1,i0) # define gti_u(r0, r1, i0) cci(ARM_CC_HI,ARM_CC_LS,r0,r1,i0)
# define ner(r0,r1,r2) _ner(_jit,r0,r1,r2) # define ner(r0,r1,r2) _ner(_jit,r0,r1,r2)
static void _ner(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ner(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define nei(r0,r1,i0) _nei(_jit,r0,r1,i0) # define nei(r0,r1,i0) _nei(_jit,r0,r1,i0)
static void _nei(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _nei(jit_state_t*,int32_t,int32_t,jit_word_t);
# define jmpr(r0) _jmpr(_jit,r0) # define jmpr(r0) _jmpr(_jit,r0)
static void _jmpr(jit_state_t*,int32_t); static void _jmpr(jit_state_t*,int32_t);
# define jmpi(i0) _jmpi(_jit,i0) # define jmpi(i0) _jmpi(_jit,i0)
@ -972,7 +972,7 @@ static void _jmpi(jit_state_t*,jit_word_t);
# define jmpi_p(i0, i1) _jmpi_p(_jit,i0, i1) # define jmpi_p(i0, i1) _jmpi_p(_jit,i0, i1)
static jit_word_t _jmpi_p(jit_state_t*,jit_word_t,jit_bool_t); static jit_word_t _jmpi_p(jit_state_t*,jit_word_t,jit_bool_t);
# define bccr(cc,i0,r0,r1) _bccr(_jit,cc,i0,r0,r1) # define bccr(cc,i0,r0,r1) _bccr(_jit,cc,i0,r0,r1)
static jit_word_t _bccr(jit_state_t*,int,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bccr(jit_state_t*,int,jit_word_t,int32_t,int32_t);
# define bcci(cc,i0,r0,i1) _bcci(_jit,cc,i0,r0,i1) # define bcci(cc,i0,r0,i1) _bcci(_jit,cc,i0,r0,i1)
static jit_word_t _bcci(jit_state_t*,int,jit_word_t,int32_t,jit_word_t); static jit_word_t _bcci(jit_state_t*,int,jit_word_t,int32_t,jit_word_t);
# define bltr(i0, r0, r1) bccr(ARM_CC_LT,i0,r0,r1) # define bltr(i0, r0, r1) bccr(ARM_CC_LT,i0,r0,r1)
@ -996,7 +996,7 @@ static jit_word_t _bcci(jit_state_t*,int,jit_word_t,int32_t,jit_word_t);
# define bner(i0, r0, r1) bccr(ARM_CC_NE,i0,r0,r1) # define bner(i0, r0, r1) bccr(ARM_CC_NE,i0,r0,r1)
# define bnei(i0, r0, i1) bcci(ARM_CC_NE,i0,r0,i1) # define bnei(i0, r0, i1) bcci(ARM_CC_NE,i0,r0,i1)
# define baddr(cc,i0,r0,r1) _baddr(_jit,cc,i0,r0,r1) # define baddr(cc,i0,r0,r1) _baddr(_jit,cc,i0,r0,r1)
static jit_word_t _baddr(jit_state_t*,int,jit_word_t,int32_t,jit_int32_t); static jit_word_t _baddr(jit_state_t*,int,jit_word_t,int32_t,int32_t);
# define baddi(cc,i0,r0,r1) _baddi(_jit,cc,i0,r0,r1) # define baddi(cc,i0,r0,r1) _baddi(_jit,cc,i0,r0,r1)
static jit_word_t _baddi(jit_state_t*,int,jit_word_t,int32_t,jit_word_t); static jit_word_t _baddi(jit_state_t*,int,jit_word_t,int32_t,jit_word_t);
# define boaddr(i0,r0,r1) baddr(ARM_CC_VS,i0,r0,r1) # define boaddr(i0,r0,r1) baddr(ARM_CC_VS,i0,r0,r1)
@ -1008,7 +1008,7 @@ static jit_word_t _baddi(jit_state_t*,int,jit_word_t,int32_t,jit_word_t);
# define bxaddr_u(i0,r0,r1) baddr(ARM_CC_LO,i0,r0,r1) # define bxaddr_u(i0,r0,r1) baddr(ARM_CC_LO,i0,r0,r1)
# define bxaddi_u(i0,r0,i1) baddi(ARM_CC_LO,i0,r0,i1) # define bxaddi_u(i0,r0,i1) baddi(ARM_CC_LO,i0,r0,i1)
# define bsubr(cc,i0,r0,r1) _bsubr(_jit,cc,i0,r0,r1) # define bsubr(cc,i0,r0,r1) _bsubr(_jit,cc,i0,r0,r1)
static jit_word_t _bsubr(jit_state_t*,int,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bsubr(jit_state_t*,int,jit_word_t,int32_t,int32_t);
# define bsubi(cc,i0,r0,r1) _bsubi(_jit,cc,i0,r0,r1) # define bsubi(cc,i0,r0,r1) _bsubi(_jit,cc,i0,r0,r1)
static jit_word_t _bsubi(jit_state_t*,int,jit_word_t,int32_t,jit_word_t); static jit_word_t _bsubi(jit_state_t*,int,jit_word_t,int32_t,jit_word_t);
# define bosubr(i0,r0,r1) bsubr(ARM_CC_VS,i0,r0,r1) # define bosubr(i0,r0,r1) bsubr(ARM_CC_VS,i0,r0,r1)
@ -1020,7 +1020,7 @@ static jit_word_t _bsubi(jit_state_t*,int,jit_word_t,int32_t,jit_word_t);
# define bxsubr_u(i0,r0,r1) bsubr(ARM_CC_HS,i0,r0,r1) # define bxsubr_u(i0,r0,r1) bsubr(ARM_CC_HS,i0,r0,r1)
# define bxsubi_u(i0,r0,i1) bsubi(ARM_CC_HS,i0,r0,i1) # define bxsubi_u(i0,r0,i1) bsubi(ARM_CC_HS,i0,r0,i1)
# define bmxr(cc,i0,r0,r1) _bmxr(_jit,cc,i0,r0,r1) # define bmxr(cc,i0,r0,r1) _bmxr(_jit,cc,i0,r0,r1)
static jit_word_t _bmxr(jit_state_t*,int,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bmxr(jit_state_t*,int,jit_word_t,int32_t,int32_t);
# define bmxi(cc,i0,r0,r1) _bmxi(_jit,cc,i0,r0,r1) # define bmxi(cc,i0,r0,r1) _bmxi(_jit,cc,i0,r0,r1)
static jit_word_t _bmxi(jit_state_t*,int,jit_word_t,int32_t,jit_word_t); static jit_word_t _bmxi(jit_state_t*,int,jit_word_t,int32_t,jit_word_t);
# define bmsr(i0,r0,r1) bmxr(ARM_CC_NE,i0,r0,r1) # define bmsr(i0,r0,r1) bmxr(ARM_CC_NE,i0,r0,r1)
@ -1028,86 +1028,86 @@ static jit_word_t _bmxi(jit_state_t*,int,jit_word_t,int32_t,jit_word_t);
# define bmcr(i0,r0,r1) bmxr(ARM_CC_EQ,i0,r0,r1) # define bmcr(i0,r0,r1) bmxr(ARM_CC_EQ,i0,r0,r1)
# define bmci(i0,r0,i1) bmxi(ARM_CC_EQ,i0,r0,i1) # define bmci(i0,r0,i1) bmxi(ARM_CC_EQ,i0,r0,i1)
# define ldr_c(r0,r1) _ldr_c(_jit,r0,r1) # define ldr_c(r0,r1) _ldr_c(_jit,r0,r1)
static void _ldr_c(jit_state_t*,int32_t,jit_int32_t); static void _ldr_c(jit_state_t*,int32_t,int32_t);
# define ldi_c(r0,i0) _ldi_c(_jit,r0,i0) # define ldi_c(r0,i0) _ldi_c(_jit,r0,i0)
static void _ldi_c(jit_state_t*,int32_t,jit_word_t); static void _ldi_c(jit_state_t*,int32_t,jit_word_t);
# define ldxr_c(r0,r1,r2) _ldxr_c(_jit,r0,r1,r2) # define ldxr_c(r0,r1,r2) _ldxr_c(_jit,r0,r1,r2)
static void _ldxr_c(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_c(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ldxi_c(r0,r1,i0) _ldxi_c(_jit,r0,r1,i0) # define ldxi_c(r0,r1,i0) _ldxi_c(_jit,r0,r1,i0)
static void _ldxi_c(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_c(jit_state_t*,int32_t,int32_t,jit_word_t);
# define ldr_uc(r0,r1) _ldr_uc(_jit,r0,r1) # define ldr_uc(r0,r1) _ldr_uc(_jit,r0,r1)
static void _ldr_uc(jit_state_t*,int32_t,jit_int32_t); static void _ldr_uc(jit_state_t*,int32_t,int32_t);
# define ldi_uc(r0,i0) _ldi_uc(_jit,r0,i0) # define ldi_uc(r0,i0) _ldi_uc(_jit,r0,i0)
static void _ldi_uc(jit_state_t*,int32_t,jit_word_t); static void _ldi_uc(jit_state_t*,int32_t,jit_word_t);
# define ldxr_uc(r0,r1,r2) _ldxr_uc(_jit,r0,r1,r2) # define ldxr_uc(r0,r1,r2) _ldxr_uc(_jit,r0,r1,r2)
static void _ldxr_uc(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_uc(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ldxi_uc(r0,r1,i0) _ldxi_uc(_jit,r0,r1,i0) # define ldxi_uc(r0,r1,i0) _ldxi_uc(_jit,r0,r1,i0)
static void _ldxi_uc(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_uc(jit_state_t*,int32_t,int32_t,jit_word_t);
# define ldr_s(r0,r1) _ldr_s(_jit,r0,r1) # define ldr_s(r0,r1) _ldr_s(_jit,r0,r1)
static void _ldr_s(jit_state_t*,int32_t,jit_int32_t); static void _ldr_s(jit_state_t*,int32_t,int32_t);
# define ldi_s(r0,i0) _ldi_s(_jit,r0,i0) # define ldi_s(r0,i0) _ldi_s(_jit,r0,i0)
static void _ldi_s(jit_state_t*,int32_t,jit_word_t); static void _ldi_s(jit_state_t*,int32_t,jit_word_t);
# define ldxr_s(r0,r1,r2) _ldxr_s(_jit,r0,r1,r2) # define ldxr_s(r0,r1,r2) _ldxr_s(_jit,r0,r1,r2)
static void _ldxr_s(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_s(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ldxi_s(r0,r1,i0) _ldxi_s(_jit,r0,r1,i0) # define ldxi_s(r0,r1,i0) _ldxi_s(_jit,r0,r1,i0)
static void _ldxi_s(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_s(jit_state_t*,int32_t,int32_t,jit_word_t);
# define ldr_us(r0,r1) _ldr_us(_jit,r0,r1) # define ldr_us(r0,r1) _ldr_us(_jit,r0,r1)
static void _ldr_us(jit_state_t*,int32_t,jit_int32_t); static void _ldr_us(jit_state_t*,int32_t,int32_t);
# define ldi_us(r0,i0) _ldi_us(_jit,r0,i0) # define ldi_us(r0,i0) _ldi_us(_jit,r0,i0)
static void _ldi_us(jit_state_t*,int32_t,jit_word_t); static void _ldi_us(jit_state_t*,int32_t,jit_word_t);
# define ldxr_us(r0,r1,r2) _ldxr_us(_jit,r0,r1,r2) # define ldxr_us(r0,r1,r2) _ldxr_us(_jit,r0,r1,r2)
static void _ldxr_us(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_us(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ldxi_us(r0,r1,i0) _ldxi_us(_jit,r0,r1,i0) # define ldxi_us(r0,r1,i0) _ldxi_us(_jit,r0,r1,i0)
static void _ldxi_us(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_us(jit_state_t*,int32_t,int32_t,jit_word_t);
# define ldr_i(r0,r1) _ldr_i(_jit,r0,r1) # define ldr_i(r0,r1) _ldr_i(_jit,r0,r1)
static void _ldr_i(jit_state_t*,int32_t,jit_int32_t); static void _ldr_i(jit_state_t*,int32_t,int32_t);
# define ldi_i(r0,i0) _ldi_i(_jit,r0,i0) # define ldi_i(r0,i0) _ldi_i(_jit,r0,i0)
static void _ldi_i(jit_state_t*,int32_t,jit_word_t); static void _ldi_i(jit_state_t*,int32_t,jit_word_t);
# define ldxr_i(r0,r1,r2) _ldxr_i(_jit,r0,r1,r2) # define ldxr_i(r0,r1,r2) _ldxr_i(_jit,r0,r1,r2)
static void _ldxr_i(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_i(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ldxi_i(r0,r1,i0) _ldxi_i(_jit,r0,r1,i0) # define ldxi_i(r0,r1,i0) _ldxi_i(_jit,r0,r1,i0)
static void _ldxi_i(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_i(jit_state_t*,int32_t,int32_t,jit_word_t);
# define str_c(r0,r1) _str_c(_jit,r0,r1) # define str_c(r0,r1) _str_c(_jit,r0,r1)
static void _str_c(jit_state_t*,int32_t,jit_int32_t); static void _str_c(jit_state_t*,int32_t,int32_t);
# define sti_c(i0,r0) _sti_c(_jit,i0,r0) # define sti_c(i0,r0) _sti_c(_jit,i0,r0)
static void _sti_c(jit_state_t*,jit_word_t,int32_t); static void _sti_c(jit_state_t*,jit_word_t,int32_t);
# define stxr_c(r0,r1,r2) _stxr_c(_jit,r0,r1,r2) # define stxr_c(r0,r1,r2) _stxr_c(_jit,r0,r1,r2)
static void _stxr_c(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _stxr_c(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define stxi_c(r0,r1,i0) _stxi_c(_jit,r0,r1,i0) # define stxi_c(r0,r1,i0) _stxi_c(_jit,r0,r1,i0)
static void _stxi_c(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_c(jit_state_t*,jit_word_t,int32_t,int32_t);
# define str_s(r0,r1) _str_s(_jit,r0,r1) # define str_s(r0,r1) _str_s(_jit,r0,r1)
static void _str_s(jit_state_t*,int32_t,jit_int32_t); static void _str_s(jit_state_t*,int32_t,int32_t);
# define sti_s(i0,r0) _sti_s(_jit,i0,r0) # define sti_s(i0,r0) _sti_s(_jit,i0,r0)
static void _sti_s(jit_state_t*,jit_word_t,int32_t); static void _sti_s(jit_state_t*,jit_word_t,int32_t);
# define stxr_s(r0,r1,r2) _stxr_s(_jit,r0,r1,r2) # define stxr_s(r0,r1,r2) _stxr_s(_jit,r0,r1,r2)
static void _stxr_s(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _stxr_s(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define stxi_s(r0,r1,i0) _stxi_s(_jit,r0,r1,i0) # define stxi_s(r0,r1,i0) _stxi_s(_jit,r0,r1,i0)
static void _stxi_s(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_s(jit_state_t*,jit_word_t,int32_t,int32_t);
# define str_i(r0,r1) _str_i(_jit,r0,r1) # define str_i(r0,r1) _str_i(_jit,r0,r1)
static void _str_i(jit_state_t*,int32_t,jit_int32_t); static void _str_i(jit_state_t*,int32_t,int32_t);
# define sti_i(i0,r0) _sti_i(_jit,i0,r0) # define sti_i(i0,r0) _sti_i(_jit,i0,r0)
static void _sti_i(jit_state_t*,jit_word_t,int32_t); static void _sti_i(jit_state_t*,jit_word_t,int32_t);
# define stxr_i(r0,r1,r2) _stxr_i(_jit,r0,r1,r2) # define stxr_i(r0,r1,r2) _stxr_i(_jit,r0,r1,r2)
static void _stxr_i(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxr_i(jit_state_t*,jit_word_t,int32_t,int32_t);
# define stxi_i(r0,r1,i0) _stxi_i(_jit,r0,r1,i0) # define stxi_i(r0,r1,i0) _stxi_i(_jit,r0,r1,i0)
static void _stxi_i(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_i(jit_state_t*,jit_word_t,int32_t,int32_t);
# if __BYTE_ORDER == __LITTLE_ENDIAN # if __BYTE_ORDER == __LITTLE_ENDIAN
# define htonr_us(r0,r1) _htonr_us(_jit,r0,r1) # define htonr_us(r0,r1) _htonr_us(_jit,r0,r1)
static void _htonr_us(jit_state_t*,int32_t,jit_int32_t); static void _htonr_us(jit_state_t*,int32_t,int32_t);
# define htonr_ui(r0,r1) _htonr_ui(_jit,r0,r1) # define htonr_ui(r0,r1) _htonr_ui(_jit,r0,r1)
static void _htonr_ui(jit_state_t*,int32_t,jit_int32_t); static void _htonr_ui(jit_state_t*,int32_t,int32_t);
# else # else
# define htonr_us(r0,r1) extr_us(r0,r1) # define htonr_us(r0,r1) extr_us(r0,r1)
# define htonr(r0,r1) movr(r0,r1) # define htonr(r0,r1) movr(r0,r1)
# endif # endif
# define extr_c(r0,r1) _extr_c(_jit,r0,r1) # define extr_c(r0,r1) _extr_c(_jit,r0,r1)
static void _extr_c(jit_state_t*,int32_t,jit_int32_t); static void _extr_c(jit_state_t*,int32_t,int32_t);
# define extr_uc(r0,r1) _extr_uc(_jit,r0,r1) # define extr_uc(r0,r1) _extr_uc(_jit,r0,r1)
static void _extr_uc(jit_state_t*,int32_t,jit_int32_t); static void _extr_uc(jit_state_t*,int32_t,int32_t);
# define extr_s(r0,r1) _extr_s(_jit,r0,r1) # define extr_s(r0,r1) _extr_s(_jit,r0,r1)
static void _extr_s(jit_state_t*,int32_t,jit_int32_t); static void _extr_s(jit_state_t*,int32_t,int32_t);
# define extr_us(r0,r1) _extr_us(_jit,r0,r1) # define extr_us(r0,r1) _extr_us(_jit,r0,r1)
static void _extr_us(jit_state_t*,int32_t,jit_int32_t); static void _extr_us(jit_state_t*,int32_t,int32_t);
# define prolog(i0) _prolog(_jit,i0) # define prolog(i0) _prolog(_jit,i0)
static void _prolog(jit_state_t*,jit_node_t*); static void _prolog(jit_state_t*,jit_node_t*);
# define epilog(i0) _epilog(_jit,i0) # define epilog(i0) _epilog(_jit,i0)
@ -1121,7 +1121,7 @@ static jit_word_t _calli_p(jit_state_t*,jit_word_t);
# define vastart(r0) _vastart(_jit, r0) # define vastart(r0) _vastart(_jit, r0)
static void _vastart(jit_state_t*, int32_t); static void _vastart(jit_state_t*, int32_t);
# define vaarg(r0, r1) _vaarg(_jit, r0, r1) # define vaarg(r0, r1) _vaarg(_jit, r0, r1)
static void _vaarg(jit_state_t*, int32_t, jit_int32_t); static void _vaarg(jit_state_t*, int32_t, int32_t);
# define patch_at(kind,jump,label) _patch_at(_jit,kind,jump,label) # define patch_at(kind,jump,label) _patch_at(_jit,kind,jump,label)
static void _patch_at(jit_state_t*,int32_t,jit_word_t,jit_word_t); static void _patch_at(jit_state_t*,int32_t,jit_word_t,jit_word_t);
#endif #endif
@ -1524,7 +1524,7 @@ _nop(jit_state_t *_jit, int32_t i0)
} }
static void static void
_movr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _movr(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (r0 != r1) { if (r0 != r1) {
if (jit_thumb_p()) if (jit_thumb_p())
@ -1583,7 +1583,7 @@ _movi_p(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_comr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _comr(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if (!jit_no_set_flags() && (r0|r1) < 8) if (!jit_no_set_flags() && (r0|r1) < 8)
@ -1596,7 +1596,7 @@ _comr(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_negr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _negr(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if (!jit_no_set_flags() && (r0|r1) < 8) if (!jit_no_set_flags() && (r0|r1) < 8)
@ -1609,7 +1609,7 @@ _negr(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_addr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _addr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if (!jit_no_set_flags() && (r0|r1|r2) < 8) if (!jit_no_set_flags() && (r0|r1|r2) < 8)
@ -1624,7 +1624,7 @@ _addr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_addi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _addi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int i; int i;
int32_t reg; int32_t reg;
@ -1671,7 +1671,7 @@ _addi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_addcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _addcr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
/* thumb auto set carry if not inside IT block */ /* thumb auto set carry if not inside IT block */
@ -1685,7 +1685,7 @@ _addcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_addci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _addci(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int i; int i;
int32_t reg; int32_t reg;
@ -1728,7 +1728,7 @@ _addci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_addxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _addxr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
/* keep setting carry because don't know last ADC */ /* keep setting carry because don't know last ADC */
if (jit_thumb_p()) { if (jit_thumb_p()) {
@ -1743,7 +1743,7 @@ _addxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_addxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _addxi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int i; int i;
int32_t reg; int32_t reg;
@ -1786,7 +1786,7 @@ _addxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_subr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _subr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if (!jit_no_set_flags() && (r0|r1|r2) < 8) if (!jit_no_set_flags() && (r0|r1|r2) < 8)
@ -1799,7 +1799,7 @@ _subr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_subi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _subi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int i; int i;
int32_t reg; int32_t reg;
@ -1846,7 +1846,7 @@ _subi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_subcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _subcr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
/* thumb auto set carry if not inside IT block */ /* thumb auto set carry if not inside IT block */
@ -1860,7 +1860,7 @@ _subcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_subci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _subci(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int i; int i;
int32_t reg; int32_t reg;
@ -1903,7 +1903,7 @@ _subci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_subxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _subxr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
/* keep setting carry because don't know last SBC */ /* keep setting carry because don't know last SBC */
if (jit_thumb_p()) { if (jit_thumb_p()) {
@ -1918,7 +1918,7 @@ _subxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_subxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _subxi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int i; int i;
int32_t reg; int32_t reg;
@ -1961,14 +1961,14 @@ _subxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_rsbi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _rsbi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
subi(r0, r1, i0); subi(r0, r1, i0);
negr(r0, r0); negr(r0, r0);
} }
static void static void
_mulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _mulr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (jit_thumb_p()) { if (jit_thumb_p()) {
@ -1996,7 +1996,7 @@ _mulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_muli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _muli(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -2006,8 +2006,8 @@ _muli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_iqmulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, _iqmulr(jit_state_t *_jit, int32_t r0, int32_t r1,
int32_t r2, jit_int32_t r3, jit_bool_t sign) int32_t r2, int32_t r3, jit_bool_t sign)
{ {
int32_t reg; int32_t reg;
if (jit_thumb_p()) { if (jit_thumb_p()) {
@ -2059,7 +2059,7 @@ _iqmulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1,
} }
static void static void
_iqmuli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, _iqmuli(jit_state_t *_jit, int32_t r0, int32_t r1,
int32_t r2, jit_word_t i0, jit_bool_t sign) int32_t r2, jit_word_t i0, jit_bool_t sign)
{ {
int32_t reg; int32_t reg;
@ -2071,7 +2071,7 @@ _iqmuli(jit_state_t *_jit, int32_t r0, jit_int32_t r1,
static void static void
_divrem(jit_state_t *_jit, int div, int sign, _divrem(jit_state_t *_jit, int div, int sign,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_word_t d; jit_word_t d;
jit_word_t w; jit_word_t w;
@ -2101,7 +2101,7 @@ _divrem(jit_state_t *_jit, int div, int sign,
} }
static void static void
_divr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _divr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_armv7r_p() && jit_thumb_p()) if (jit_armv7r_p() && jit_thumb_p())
T2_SDIV(r0, r1, r2); T2_SDIV(r0, r1, r2);
@ -2110,7 +2110,7 @@ _divr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_divi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _divi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -2120,7 +2120,7 @@ _divi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_divr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _divr_u(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_armv7r_p() && jit_thumb_p()) if (jit_armv7r_p() && jit_thumb_p())
T2_UDIV(r0, r1, r2); T2_UDIV(r0, r1, r2);
@ -2129,7 +2129,7 @@ _divr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_divi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _divi_u(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -2139,8 +2139,8 @@ _divi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_iqdivr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, _iqdivr(jit_state_t *_jit, int32_t r0, int32_t r1,
int32_t r2, jit_int32_t r3, jit_bool_t sign) int32_t r2, int32_t r3, jit_bool_t sign)
{ {
jit_word_t d; jit_word_t d;
jit_word_t w; jit_word_t w;
@ -2170,7 +2170,7 @@ _iqdivr(jit_state_t *_jit, int32_t r0, jit_int32_t r1,
} }
static void static void
_iqdivi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, _iqdivi(jit_state_t *_jit, int32_t r0, int32_t r1,
int32_t r2, jit_word_t i0, jit_bool_t sign) int32_t r2, jit_word_t i0, jit_bool_t sign)
{ {
int32_t reg; int32_t reg;
@ -2181,13 +2181,13 @@ _iqdivi(jit_state_t *_jit, int32_t r0, jit_int32_t r1,
} }
static void static void
_remr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _remr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
divrem(0, 1, r0, r1, r2); divrem(0, 1, r0, r1, r2);
} }
static void static void
_remi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _remi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -2197,13 +2197,13 @@ _remi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_remr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _remr_u(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
divrem(0, 0, r0, r1, r2); divrem(0, 0, r0, r1, r2);
} }
static void static void
_remi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _remi_u(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -2213,7 +2213,7 @@ _remi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_andr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _andr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if (!jit_no_set_flags() && (r0|r1|r2) < 8 && (r0 == r1 || r0 == r2)) if (!jit_no_set_flags() && (r0|r1|r2) < 8 && (r0 == r1 || r0 == r2))
@ -2226,7 +2226,7 @@ _andr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_andi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _andi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int i; int i;
int32_t reg; int32_t reg;
@ -2265,7 +2265,7 @@ _andi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_orr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _orr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if (!jit_no_set_flags() && (r0|r1|r2) < 8 && (r0 == r1 || r0 == r2)) if (!jit_no_set_flags() && (r0|r1|r2) < 8 && (r0 == r1 || r0 == r2))
@ -2278,7 +2278,7 @@ _orr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ori(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int i; int i;
int32_t reg; int32_t reg;
@ -2313,7 +2313,7 @@ _ori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_xorr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _xorr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if (!jit_no_set_flags() && (r0|r1|r2) < 8 && (r0 == r1 || r0 == r2)) if (!jit_no_set_flags() && (r0|r1|r2) < 8 && (r0 == r1 || r0 == r2))
@ -2326,7 +2326,7 @@ _xorr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_xori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _xori(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int i; int i;
int32_t reg; int32_t reg;
@ -2361,7 +2361,7 @@ _xori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_lshr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _lshr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if (!jit_no_set_flags() && (r0|r1|r2) < 8 && r0 == r1) if (!jit_no_set_flags() && (r0|r1|r2) < 8 && r0 == r1)
@ -2374,7 +2374,7 @@ _lshr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_lshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _lshi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
assert(i0 >= 0 && i0 <= 31); assert(i0 >= 0 && i0 <= 31);
if (i0 == 0) if (i0 == 0)
@ -2390,7 +2390,7 @@ _lshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_rshr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _rshr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if (!jit_no_set_flags() && (r0|r1|r2) < 8 && r0 == r1) if (!jit_no_set_flags() && (r0|r1|r2) < 8 && r0 == r1)
@ -2403,7 +2403,7 @@ _rshr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_rshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _rshi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
assert(i0 >= 0 && i0 <= 31); assert(i0 >= 0 && i0 <= 31);
if (i0 == 0) if (i0 == 0)
@ -2419,7 +2419,7 @@ _rshi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_rshr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _rshr_u(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if (!jit_no_set_flags() && (r0|r1|r2) < 8 && r0 == r1) if (!jit_no_set_flags() && (r0|r1|r2) < 8 && r0 == r1)
@ -2432,7 +2432,7 @@ _rshr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_rshi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _rshi_u(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
assert(i0 >= 0 && i0 <= 31); assert(i0 >= 0 && i0 <= 31);
if (i0 == 0) if (i0 == 0)
@ -2449,7 +2449,7 @@ _rshi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
static void static void
_ccr(jit_state_t *_jit, int ct, int cf, _ccr(jit_state_t *_jit, int ct, int cf,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
assert((ct ^ cf) >> 28 == 1); assert((ct ^ cf) >> 28 == 1);
@ -2478,7 +2478,7 @@ _ccr(jit_state_t *_jit, int ct, int cf,
static void static void
_cci(jit_state_t *_jit, int ct, int cf, _cci(jit_state_t *_jit, int ct, int cf,
int32_t r0, jit_int32_t r1, jit_word_t i0) int32_t r0, int32_t r1, jit_word_t i0)
{ {
int i; int i;
int32_t reg; int32_t reg;
@ -2527,7 +2527,7 @@ _cci(jit_state_t *_jit, int ct, int cf,
} }
static void static void
_ner(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ner(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) if (jit_thumb_p())
ccr(ARM_CC_NE, ARM_CC_EQ, r0, r1, r2); ccr(ARM_CC_NE, ARM_CC_EQ, r0, r1, r2);
@ -2538,7 +2538,7 @@ _ner(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_nei(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _nei(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int i; int i;
int32_t reg; int32_t reg;
@ -2637,7 +2637,7 @@ _jmpi_p(jit_state_t *_jit, jit_word_t i0, jit_bool_t i1)
} }
static jit_word_t static jit_word_t
_bccr(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, jit_int32_t r1) _bccr(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
jit_word_t d; jit_word_t d;
@ -2710,7 +2710,7 @@ _bcci(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, jit_word_t i1)
} }
static jit_word_t static jit_word_t
_baddr(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, jit_int32_t r1) _baddr(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
jit_word_t d; jit_word_t d;
@ -2785,7 +2785,7 @@ _baddi(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, int i1)
} }
static jit_word_t static jit_word_t
_bsubr(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, jit_int32_t r1) _bsubr(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
jit_word_t d; jit_word_t d;
@ -2860,7 +2860,7 @@ _bsubi(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, int i1)
} }
static jit_word_t static jit_word_t
_bmxr(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, jit_int32_t r1) _bmxr(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
jit_word_t d; jit_word_t d;
@ -2944,7 +2944,7 @@ _bmxi(jit_state_t *_jit, int cc, jit_word_t i0, int32_t r0, jit_word_t i1)
} }
static void static void
_ldr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _ldr_c(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (jit_thumb_p()) if (jit_thumb_p())
T2_LDRSBI(r0, r1, 0); T2_LDRSBI(r0, r1, 0);
@ -2966,7 +2966,7 @@ _ldi_c(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_ldxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_c(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if ((r0|r1|r2) < 8) if ((r0|r1|r2) < 8)
@ -2979,7 +2979,7 @@ _ldxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ldxi_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_c(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (jit_thumb_p()) { if (jit_thumb_p()) {
@ -3025,7 +3025,7 @@ _ldxi_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ldr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _ldr_uc(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (jit_thumb_p()) if (jit_thumb_p())
T2_LDRBI(r0, r1, 0); T2_LDRBI(r0, r1, 0);
@ -3047,7 +3047,7 @@ _ldi_uc(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_ldxr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_uc(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if ((r0|r1|r2) < 8) if ((r0|r1|r2) < 8)
@ -3060,7 +3060,7 @@ _ldxr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ldxi_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_uc(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (jit_thumb_p()) { if (jit_thumb_p()) {
@ -3108,7 +3108,7 @@ _ldxi_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ldr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _ldr_s(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (jit_thumb_p()) if (jit_thumb_p())
T2_LDRSHI(r0, r1, 0); T2_LDRSHI(r0, r1, 0);
@ -3130,7 +3130,7 @@ _ldi_s(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_ldxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_s(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if ((r0|r1|r2) < 8) if ((r0|r1|r2) < 8)
@ -3143,7 +3143,7 @@ _ldxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ldxi_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_s(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (jit_thumb_p()) { if (jit_thumb_p()) {
@ -3189,7 +3189,7 @@ _ldxi_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ldr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _ldr_us(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (jit_thumb_p()) if (jit_thumb_p())
T2_LDRHI(r0, r1, 0); T2_LDRHI(r0, r1, 0);
@ -3211,7 +3211,7 @@ _ldi_us(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_ldxr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_us(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if ((r0|r1|r2) < 8) if ((r0|r1|r2) < 8)
@ -3224,7 +3224,7 @@ _ldxr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ldxi_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_us(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (jit_thumb_p()) { if (jit_thumb_p()) {
@ -3272,7 +3272,7 @@ _ldxi_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ldr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _ldr_i(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (jit_thumb_p()) if (jit_thumb_p())
T2_LDRI(r0, r1, 0); T2_LDRI(r0, r1, 0);
@ -3294,7 +3294,7 @@ _ldi_i(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_ldxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_i(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if ((r0|r1|r2) < 8) if ((r0|r1|r2) < 8)
@ -3307,7 +3307,7 @@ _ldxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ldxi_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_i(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (jit_thumb_p()) { if (jit_thumb_p()) {
@ -3358,7 +3358,7 @@ _ldxi_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_str_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _str_c(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (jit_thumb_p()) if (jit_thumb_p())
T2_STRBI(r1, r0, 0); T2_STRBI(r1, r0, 0);
@ -3380,7 +3380,7 @@ _sti_c(jit_state_t *_jit, jit_word_t i0, int32_t r0)
} }
static void static void
_stxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _stxr_c(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if ((r0|r1|r2) < 8) if ((r0|r1|r2) < 8)
@ -3393,7 +3393,7 @@ _stxr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_stxi_c(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_c(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (jit_thumb_p()) { if (jit_thumb_p()) {
@ -3430,7 +3430,7 @@ _stxi_c(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_str_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _str_s(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (jit_thumb_p()) if (jit_thumb_p())
T2_STRHI(r1, r0, 0); T2_STRHI(r1, r0, 0);
@ -3452,7 +3452,7 @@ _sti_s(jit_state_t *_jit, jit_word_t i0, int32_t r0)
} }
static void static void
_stxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _stxr_s(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if ((r0|r1|r2) < 8) if ((r0|r1|r2) < 8)
@ -3465,7 +3465,7 @@ _stxr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_stxi_s(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_s(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (jit_thumb_p()) { if (jit_thumb_p()) {
@ -3502,7 +3502,7 @@ _stxi_s(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_str_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _str_i(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (jit_thumb_p()) if (jit_thumb_p())
T2_STRI(r1, r0, 0); T2_STRI(r1, r0, 0);
@ -3524,7 +3524,7 @@ _sti_i(jit_state_t *_jit, jit_word_t i0, int32_t r0)
} }
static void static void
_stxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _stxr_i(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if ((r0|r1|r2) < 8) if ((r0|r1|r2) < 8)
@ -3537,7 +3537,7 @@ _stxr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_stxi_i(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_i(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (jit_thumb_p()) { if (jit_thumb_p()) {
@ -3578,7 +3578,7 @@ _stxi_i(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
# if __BYTE_ORDER == __LITTLE_ENDIAN # if __BYTE_ORDER == __LITTLE_ENDIAN
static void static void
_htonr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _htonr_us(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t t0; int32_t t0;
if (jit_thumb_p()) { if (jit_thumb_p()) {
@ -3607,7 +3607,7 @@ _htonr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
/* inline glibc htonl (without register clobber) */ /* inline glibc htonl (without register clobber) */
static void static void
_htonr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _htonr_ui(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (jit_thumb_p()) { if (jit_thumb_p()) {
@ -3632,7 +3632,7 @@ _htonr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
#endif #endif
static void static void
_extr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_c(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if ((r0|r1) < 8) if ((r0|r1) < 8)
@ -3651,7 +3651,7 @@ _extr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_extr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_uc(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if ((r0|r1) < 8) if ((r0|r1) < 8)
@ -3668,7 +3668,7 @@ _extr_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_extr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_s(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if ((r0|r1) < 8) if ((r0|r1) < 8)
@ -3687,7 +3687,7 @@ _extr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_extr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_us(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (jit_thumb_p()) { if (jit_thumb_p()) {
if ((r0|r1) < 8) if ((r0|r1) < 8)
@ -3846,7 +3846,7 @@ _vastart(jit_state_t *_jit, int32_t r0)
} }
static void static void
_vaarg(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vaarg(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
assert(_jitc->function->self.call & jit_call_varargs); assert(_jitc->function->self.call & jit_call_varargs);

View file

@ -50,52 +50,52 @@ extern int __aeabi_fcmpun(float, float);
extern int __aeabi_dcmpun(double, double); extern int __aeabi_dcmpun(double, double);
# define swf_ff(i0,r0,r1) _swf_ff(_jit,i0,r0,r1) # define swf_ff(i0,r0,r1) _swf_ff(_jit,i0,r0,r1)
static void static void
_swf_ff(jit_state_t*,float(*)(float),int32_t,jit_int32_t) maybe_unused; _swf_ff(jit_state_t*,float(*)(float),int32_t,int32_t) maybe_unused;
# define swf_dd(i0,r0,r1) _swf_dd(_jit,i0,r0,r1) # define swf_dd(i0,r0,r1) _swf_dd(_jit,i0,r0,r1)
static void static void
_swf_dd(jit_state_t*,double(*)(double),int32_t,jit_int32_t) maybe_unused; _swf_dd(jit_state_t*,double(*)(double),int32_t,int32_t) maybe_unused;
# define swf_fff(i0,r0,r1,r2) _swf_fff(_jit,i0,r0,r1,r2) # define swf_fff(i0,r0,r1,r2) _swf_fff(_jit,i0,r0,r1,r2)
static void _swf_fff(jit_state_t*,float(*)(float,float), static void _swf_fff(jit_state_t*,float(*)(float,float),
int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t);
# define swf_ddd(i0,r0,r1,r2) _swf_ddd(_jit,i0,r0,r1,r2) # define swf_ddd(i0,r0,r1,r2) _swf_ddd(_jit,i0,r0,r1,r2)
static void _swf_ddd(jit_state_t*,double(*)(double,double), static void _swf_ddd(jit_state_t*,double(*)(double,double),
int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t);
# define swf_fff_(i0,r0,r1,i1) _swf_fff_(_jit,i0,r0,r1,i1) # define swf_fff_(i0,r0,r1,i1) _swf_fff_(_jit,i0,r0,r1,i1)
static void _swf_fff_(jit_state_t*,float(*)(float,float), static void _swf_fff_(jit_state_t*,float(*)(float,float),
int32_t,jit_int32_t,jit_float32_t); int32_t,int32_t,jit_float32_t);
# define swf_ddd_(i0,r0,r1,i1) _swf_ddd_(_jit,i0,r0,r1,i1) # define swf_ddd_(i0,r0,r1,i1) _swf_ddd_(_jit,i0,r0,r1,i1)
static void _swf_ddd_(jit_state_t*,double(*)(double,double), static void _swf_ddd_(jit_state_t*,double(*)(double,double),
int32_t,jit_int32_t,jit_float64_t); int32_t,int32_t,jit_float64_t);
# define swf_iff(i0,r0,r1,r2) _swf_iff(_jit,i0,r0,r1,r2) # define swf_iff(i0,r0,r1,r2) _swf_iff(_jit,i0,r0,r1,r2)
static void _swf_iff(jit_state_t*,int(*)(float,float), static void _swf_iff(jit_state_t*,int(*)(float,float),
int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t);
# define swf_idd(i0,r0,r1,r2) _swf_idd(_jit,i0,r0,r1,r2) # define swf_idd(i0,r0,r1,r2) _swf_idd(_jit,i0,r0,r1,r2)
static void _swf_idd(jit_state_t*,int(*)(double,double), static void _swf_idd(jit_state_t*,int(*)(double,double),
int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t);
# define swf_iff_(i0,r0,r1,r2) _swf_iff_(_jit,i0,r0,r1,r2) # define swf_iff_(i0,r0,r1,r2) _swf_iff_(_jit,i0,r0,r1,r2)
static void _swf_iff_(jit_state_t*,int(*)(float,float), static void _swf_iff_(jit_state_t*,int(*)(float,float),
int32_t,jit_int32_t,jit_float32_t); int32_t,int32_t,jit_float32_t);
# define swf_idd_(i0,r0,r1,r2) _swf_idd_(_jit,i0,r0,r1,r2) # define swf_idd_(i0,r0,r1,r2) _swf_idd_(_jit,i0,r0,r1,r2)
static void _swf_idd_(jit_state_t*,int(*)(double,double), static void _swf_idd_(jit_state_t*,int(*)(double,double),
int32_t,jit_int32_t,jit_float64_t); int32_t,int32_t,jit_float64_t);
# define swf_iunff(i0,r0,r1,r2) _swf_iunff(_jit,i0,r0,r1,r2) # define swf_iunff(i0,r0,r1,r2) _swf_iunff(_jit,i0,r0,r1,r2)
static void _swf_iunff(jit_state_t*,int(*)(float,float), static void _swf_iunff(jit_state_t*,int(*)(float,float),
int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t);
# define swf_iundd(i0,r0,r1,r2) _swf_iundd(_jit,i0,r0,r1,r2) # define swf_iundd(i0,r0,r1,r2) _swf_iundd(_jit,i0,r0,r1,r2)
static void _swf_iundd(jit_state_t*,int(*)(double,double), static void _swf_iundd(jit_state_t*,int(*)(double,double),
int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t);
# define swf_iunff_(i0,r0,r1,i1) _swf_iunff_(_jit,i0,r0,r1,i1) # define swf_iunff_(i0,r0,r1,i1) _swf_iunff_(_jit,i0,r0,r1,i1)
static void _swf_iunff_(jit_state_t*,int(*)(float,float), static void _swf_iunff_(jit_state_t*,int(*)(float,float),
int32_t,jit_int32_t,jit_float32_t); int32_t,int32_t,jit_float32_t);
# define swf_iundd_(i0,r0,r1,i1) _swf_iundd_(_jit,i0,r0,r1,i1) # define swf_iundd_(i0,r0,r1,i1) _swf_iundd_(_jit,i0,r0,r1,i1)
static void _swf_iundd_(jit_state_t*,int(*)(double,double), static void _swf_iundd_(jit_state_t*,int(*)(double,double),
int32_t,jit_int32_t,jit_float64_t); int32_t,int32_t,jit_float64_t);
# define swf_bff(i0,cc,i1,r0,r1) _swf_bff(_jit,i0,cc,i1,r0,r1) # define swf_bff(i0,cc,i1,r0,r1) _swf_bff(_jit,i0,cc,i1,r0,r1)
static jit_word_t _swf_bff(jit_state_t*,int(*)(float,float),int, static jit_word_t _swf_bff(jit_state_t*,int(*)(float,float),int,
jit_word_t,int32_t,jit_int32_t); jit_word_t,int32_t,int32_t);
# define swf_bdd(i0,cc,i1,r0,r1) _swf_bdd(_jit,i0,cc,i1,r0,r1) # define swf_bdd(i0,cc,i1,r0,r1) _swf_bdd(_jit,i0,cc,i1,r0,r1)
static jit_word_t _swf_bdd(jit_state_t*,int(*)(double,double),int, static jit_word_t _swf_bdd(jit_state_t*,int(*)(double,double),int,
jit_word_t,int32_t,jit_int32_t); jit_word_t,int32_t,int32_t);
# define swf_bff_(i0,cc,i1,r0,i2) _swf_bff_(_jit,i0,cc,i1,r0,i2) # define swf_bff_(i0,cc,i1,r0,i2) _swf_bff_(_jit,i0,cc,i1,r0,i2)
static jit_word_t _swf_bff_(jit_state_t*,int(*)(float,float),int, static jit_word_t _swf_bff_(jit_state_t*,int(*)(float,float),int,
jit_word_t,int32_t,jit_float32_t); jit_word_t,int32_t,jit_float32_t);
@ -104,10 +104,10 @@ static jit_word_t _swf_bdd_(jit_state_t*,int(*)(double,double),int,
jit_word_t,int32_t,jit_float64_t); jit_word_t,int32_t,jit_float64_t);
# define swf_bunff(eq,i0,r0,r1) _swf_bunff(_jit,eq,i0,r0,r1) # define swf_bunff(eq,i0,r0,r1) _swf_bunff(_jit,eq,i0,r0,r1)
static jit_word_t _swf_bunff(jit_state_t*,int, static jit_word_t _swf_bunff(jit_state_t*,int,
jit_word_t,int32_t,jit_int32_t); jit_word_t,int32_t,int32_t);
# define swf_bundd(eq,i0,r0,r1) _swf_bundd(_jit,eq,i0,r0,r1) # define swf_bundd(eq,i0,r0,r1) _swf_bundd(_jit,eq,i0,r0,r1)
static jit_word_t _swf_bundd(jit_state_t*,int, static jit_word_t _swf_bundd(jit_state_t*,int,
jit_word_t,int32_t,jit_int32_t); jit_word_t,int32_t,int32_t);
# define swf_bunff_(eq,i0,r0,i1) _swf_bunff_(_jit,eq,i0,r0,i1) # define swf_bunff_(eq,i0,r0,i1) _swf_bunff_(_jit,eq,i0,r0,i1)
static jit_word_t _swf_bunff_(jit_state_t*,int, static jit_word_t _swf_bunff_(jit_state_t*,int,
jit_word_t,int32_t,jit_float32_t); jit_word_t,int32_t,jit_float32_t);
@ -115,33 +115,33 @@ static jit_word_t _swf_bunff_(jit_state_t*,int,
static jit_word_t _swf_bundd_(jit_state_t*,int, static jit_word_t _swf_bundd_(jit_state_t*,int,
jit_word_t,int32_t,jit_float64_t); jit_word_t,int32_t,jit_float64_t);
# define swf_extr_f(r0,r1) _swf_extr_f(_jit,r0,r1) # define swf_extr_f(r0,r1) _swf_extr_f(_jit,r0,r1)
static void _swf_extr_f(jit_state_t*,int32_t,jit_int32_t); static void _swf_extr_f(jit_state_t*,int32_t,int32_t);
# define swf_extr_d(r0,r1) _swf_extr_d(_jit,r0,r1) # define swf_extr_d(r0,r1) _swf_extr_d(_jit,r0,r1)
static void _swf_extr_d(jit_state_t*,int32_t,jit_int32_t); static void _swf_extr_d(jit_state_t*,int32_t,int32_t);
# define swf_extr_d_f(r0,r1) _swf_extr_d_f(_jit,r0,r1) # define swf_extr_d_f(r0,r1) _swf_extr_d_f(_jit,r0,r1)
static void _swf_extr_d_f(jit_state_t*,int32_t,jit_int32_t); static void _swf_extr_d_f(jit_state_t*,int32_t,int32_t);
# define swf_extr_f_d(r0,r1) _swf_extr_f_d(_jit,r0,r1) # define swf_extr_f_d(r0,r1) _swf_extr_f_d(_jit,r0,r1)
static void _swf_extr_f_d(jit_state_t*,int32_t,jit_int32_t); static void _swf_extr_f_d(jit_state_t*,int32_t,int32_t);
# define swf_truncr_f_i(r0,r1) _swf_truncr_f_i(_jit,r0,r1) # define swf_truncr_f_i(r0,r1) _swf_truncr_f_i(_jit,r0,r1)
static void _swf_truncr_f_i(jit_state_t*,int32_t,jit_int32_t); static void _swf_truncr_f_i(jit_state_t*,int32_t,int32_t);
# define swf_truncr_d_i(r0,r1) _swf_truncr_d_i(_jit,r0,r1) # define swf_truncr_d_i(r0,r1) _swf_truncr_d_i(_jit,r0,r1)
static void _swf_truncr_d_i(jit_state_t*,int32_t,jit_int32_t); static void _swf_truncr_d_i(jit_state_t*,int32_t,int32_t);
# define swf_movr_f(r0,r1) _swf_movr_f(_jit,r0,r1) # define swf_movr_f(r0,r1) _swf_movr_f(_jit,r0,r1)
static void _swf_movr_f(jit_state_t*,int32_t,jit_int32_t); static void _swf_movr_f(jit_state_t*,int32_t,int32_t);
# define swf_movr_d(r0,r1) _swf_movr_d(_jit,r0,r1) # define swf_movr_d(r0,r1) _swf_movr_d(_jit,r0,r1)
static void _swf_movr_d(jit_state_t*,int32_t,jit_int32_t); static void _swf_movr_d(jit_state_t*,int32_t,int32_t);
# define swf_movi_f(r0,i0) _swf_movi_f(_jit,r0,i0) # define swf_movi_f(r0,i0) _swf_movi_f(_jit,r0,i0)
static void _swf_movi_f(jit_state_t*,int32_t,jit_float32_t); static void _swf_movi_f(jit_state_t*,int32_t,jit_float32_t);
# define swf_movi_d(r0,i0) _swf_movi_d(_jit,r0,i0) # define swf_movi_d(r0,i0) _swf_movi_d(_jit,r0,i0)
static void _swf_movi_d(jit_state_t*,int32_t,jit_float64_t); static void _swf_movi_d(jit_state_t*,int32_t,jit_float64_t);
# define swf_absr_f(r0,r1) _swf_absr_f(_jit,r0,r1) # define swf_absr_f(r0,r1) _swf_absr_f(_jit,r0,r1)
static void _swf_absr_f(jit_state_t*,int32_t,jit_int32_t); static void _swf_absr_f(jit_state_t*,int32_t,int32_t);
# define swf_absr_d(r0,r1) _swf_absr_d(_jit,r0,r1) # define swf_absr_d(r0,r1) _swf_absr_d(_jit,r0,r1)
static void _swf_absr_d(jit_state_t*,int32_t,jit_int32_t); static void _swf_absr_d(jit_state_t*,int32_t,int32_t);
# define swf_negr_f(r0,r1) _swf_negr_f(_jit,r0,r1) # define swf_negr_f(r0,r1) _swf_negr_f(_jit,r0,r1)
static void _swf_negr_f(jit_state_t*,int32_t,jit_int32_t); static void _swf_negr_f(jit_state_t*,int32_t,int32_t);
# define swf_negr_d(r0,r1) _swf_negr_d(_jit,r0,r1) # define swf_negr_d(r0,r1) _swf_negr_d(_jit,r0,r1)
static void _swf_negr_d(jit_state_t*,int32_t,jit_int32_t); static void _swf_negr_d(jit_state_t*,int32_t,int32_t);
# define swf_sqrtr_f(r0,r1) swf_ff(sqrtf,r0,r1) # define swf_sqrtr_f(r0,r1) swf_ff(sqrtf,r0,r1)
# define swf_sqrtr_d(r0,r1) swf_dd(sqrt,r0,r1) # define swf_sqrtr_d(r0,r1) swf_dd(sqrt,r0,r1)
# define swf_addr_f(r0,r1,r2) swf_fff(__addsf3,r0,r1,r2) # define swf_addr_f(r0,r1,r2) swf_fff(__addsf3,r0,r1,r2)
@ -154,10 +154,10 @@ static void _swf_negr_d(jit_state_t*,int32_t,jit_int32_t);
# define swf_subi_d(r0,r1,i0) swf_ddd_(__aeabi_dsub,r0,r1,i0) # define swf_subi_d(r0,r1,i0) swf_ddd_(__aeabi_dsub,r0,r1,i0)
# define swf_rsbr_f(r0, r1, r2) swf_subr_f(r0, r2, r1) # define swf_rsbr_f(r0, r1, r2) swf_subr_f(r0, r2, r1)
# define swf_rsbi_f(r0, r1, i0) _swf_rsbi_f(_jit, r0, r1, i0) # define swf_rsbi_f(r0, r1, i0) _swf_rsbi_f(_jit, r0, r1, i0)
static void _swf_rsbi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _swf_rsbi_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define swf_rsbr_d(r0, r1, r2) swf_subr_d(r0, r2, r1) # define swf_rsbr_d(r0, r1, r2) swf_subr_d(r0, r2, r1)
# define swf_rsbi_d(r0, r1, i0) _swf_rsbi_d(_jit, r0, r1, i0) # define swf_rsbi_d(r0, r1, i0) _swf_rsbi_d(_jit, r0, r1, i0)
static void _swf_rsbi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _swf_rsbi_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define swf_mulr_f(r0,r1,r2) swf_fff(__aeabi_fmul,r0,r1,r2) # define swf_mulr_f(r0,r1,r2) swf_fff(__aeabi_fmul,r0,r1,r2)
# define swf_muli_f(r0,r1,i0) swf_fff_(__aeabi_fmul,r0,r1,i0) # define swf_muli_f(r0,r1,i0) swf_fff_(__aeabi_fmul,r0,r1,i0)
# define swf_mulr_d(r0,r1,r2) swf_ddd(__aeabi_dmul,r0,r1,r2) # define swf_mulr_d(r0,r1,r2) swf_ddd(__aeabi_dmul,r0,r1,r2)
@ -187,13 +187,13 @@ static void _swf_rsbi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t);
# define swf_gtr_d(r0,r1,r2) swf_idd(__aeabi_dcmpgt,r0,r1,r2) # define swf_gtr_d(r0,r1,r2) swf_idd(__aeabi_dcmpgt,r0,r1,r2)
# define swf_gti_d(r0,r1,i0) swf_idd_(__aeabi_dcmpgt,r0,r1,i0) # define swf_gti_d(r0,r1,i0) swf_idd_(__aeabi_dcmpgt,r0,r1,i0)
# define swf_ner_f(r0,r1,r2) _swf_ner_f(_jit,r0,r1,r2) # define swf_ner_f(r0,r1,r2) _swf_ner_f(_jit,r0,r1,r2)
static void _swf_ner_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _swf_ner_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define swf_nei_f(r0,r1,i0) _swf_nei_f(_jit,r0,r1,i0) # define swf_nei_f(r0,r1,i0) _swf_nei_f(_jit,r0,r1,i0)
static void _swf_nei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _swf_nei_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define swf_ner_d(r0,r1,r2) _swf_ner_d(_jit,r0,r1,r2) # define swf_ner_d(r0,r1,r2) _swf_ner_d(_jit,r0,r1,r2)
static void _swf_ner_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _swf_ner_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define swf_nei_d(r0,r1,i0) _swf_nei_d(_jit,r0,r1,i0) # define swf_nei_d(r0,r1,i0) _swf_nei_d(_jit,r0,r1,i0)
static void _swf_nei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _swf_nei_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define swf_unltr_f(r0,r1,r2) swf_iunff(__aeabi_fcmplt,r0,r1,r2) # define swf_unltr_f(r0,r1,r2) swf_iunff(__aeabi_fcmplt,r0,r1,r2)
# define swf_unlti_f(r0,r1,i0) swf_iunff_(__aeabi_fcmplt,r0,r1,i0) # define swf_unlti_f(r0,r1,i0) swf_iunff_(__aeabi_fcmplt,r0,r1,i0)
# define swf_unltr_d(r0,r1,r2) swf_iundd(__aeabi_dcmplt,r0,r1,r2) # define swf_unltr_d(r0,r1,r2) swf_iundd(__aeabi_dcmplt,r0,r1,r2)
@ -215,21 +215,21 @@ static void _swf_nei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t);
# define swf_ungtr_d(r0,r1,r2) swf_iundd(__aeabi_dcmpgt,r0,r1,r2) # define swf_ungtr_d(r0,r1,r2) swf_iundd(__aeabi_dcmpgt,r0,r1,r2)
# define swf_ungti_d(r0,r1,i0) swf_iundd_(__aeabi_dcmpgt,r0,r1,i0) # define swf_ungti_d(r0,r1,i0) swf_iundd_(__aeabi_dcmpgt,r0,r1,i0)
# define swf_ltgtr_f(r0,r1,r2) _swf_ltgtr_f(_jit,r0,r1,r2) # define swf_ltgtr_f(r0,r1,r2) _swf_ltgtr_f(_jit,r0,r1,r2)
static void _swf_ltgtr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _swf_ltgtr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define swf_ltgti_f(r0,r1,i0) _swf_ltgti_f(_jit,r0,r1,i0) # define swf_ltgti_f(r0,r1,i0) _swf_ltgti_f(_jit,r0,r1,i0)
static void _swf_ltgti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _swf_ltgti_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define swf_ltgtr_d(r0,r1,r2) _swf_ltgtr_d(_jit,r0,r1,r2) # define swf_ltgtr_d(r0,r1,r2) _swf_ltgtr_d(_jit,r0,r1,r2)
static void _swf_ltgtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _swf_ltgtr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define swf_ltgti_d(r0,r1,i0) _swf_ltgti_d(_jit,r0,r1,i0) # define swf_ltgti_d(r0,r1,i0) _swf_ltgti_d(_jit,r0,r1,i0)
static void _swf_ltgti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _swf_ltgti_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define swf_ordr_f(r0,r1,r2) _swf_ordr_f(_jit,r0,r1,r2) # define swf_ordr_f(r0,r1,r2) _swf_ordr_f(_jit,r0,r1,r2)
static void _swf_ordr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _swf_ordr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define swf_ordi_f(r0,r1,i0) _swf_ordi_f(_jit,r0,r1,i0) # define swf_ordi_f(r0,r1,i0) _swf_ordi_f(_jit,r0,r1,i0)
static void _swf_ordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _swf_ordi_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define swf_ordr_d(r0,r1,r2) _swf_ordr_d(_jit,r0,r1,r2) # define swf_ordr_d(r0,r1,r2) _swf_ordr_d(_jit,r0,r1,r2)
static void _swf_ordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _swf_ordr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define swf_ordi_d(r0,r1,i0) _swf_ordi_d(_jit,r0,r1,i0) # define swf_ordi_d(r0,r1,i0) _swf_ordi_d(_jit,r0,r1,i0)
static void _swf_ordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _swf_ordi_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define swf_unordr_f(r0,r1,r2) swf_iunff(__aeabi_fcmpun,r0,r1,r2) # define swf_unordr_f(r0,r1,r2) swf_iunff(__aeabi_fcmpun,r0,r1,r2)
# define swf_unordi_f(r0,r1,i0) swf_iunff_(__aeabi_fcmpun,r0,r1,i0) # define swf_unordi_f(r0,r1,i0) swf_iunff_(__aeabi_fcmpun,r0,r1,i0)
# define swf_unordr_d(r0,r1,r2) swf_iundd(__aeabi_dcmpun,r0,r1,r2) # define swf_unordr_d(r0,r1,r2) swf_iundd(__aeabi_dcmpun,r0,r1,r2)
@ -291,39 +291,39 @@ static void _swf_ordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t);
# define swf_bunordr_d(i0,r0,r1) swf_bdd(__aeabi_dcmpun,ARM_CC_NE,i0,r0,r1) # define swf_bunordr_d(i0,r0,r1) swf_bdd(__aeabi_dcmpun,ARM_CC_NE,i0,r0,r1)
# define swf_bunordi_d(i0,r0,i1) swf_bdd_(__aeabi_dcmpun,ARM_CC_NE,i0,r0,i1) # define swf_bunordi_d(i0,r0,i1) swf_bdd_(__aeabi_dcmpun,ARM_CC_NE,i0,r0,i1)
# define swf_ldr_f(r0,r1) _swf_ldr_f(_jit,r0,r1) # define swf_ldr_f(r0,r1) _swf_ldr_f(_jit,r0,r1)
static void _swf_ldr_f(jit_state_t*,int32_t,jit_int32_t); static void _swf_ldr_f(jit_state_t*,int32_t,int32_t);
# define swf_ldr_d(r0,r1) _swf_ldr_d(_jit,r0,r1) # define swf_ldr_d(r0,r1) _swf_ldr_d(_jit,r0,r1)
static void _swf_ldr_d(jit_state_t*,int32_t,jit_int32_t); static void _swf_ldr_d(jit_state_t*,int32_t,int32_t);
# define swf_ldi_f(r0,i0) _swf_ldi_f(_jit,r0,i0) # define swf_ldi_f(r0,i0) _swf_ldi_f(_jit,r0,i0)
static void _swf_ldi_f(jit_state_t*,int32_t,jit_word_t); static void _swf_ldi_f(jit_state_t*,int32_t,jit_word_t);
# define swf_ldi_d(r0,i0) _swf_ldi_d(_jit,r0,i0) # define swf_ldi_d(r0,i0) _swf_ldi_d(_jit,r0,i0)
static void _swf_ldi_d(jit_state_t*,int32_t,jit_word_t); static void _swf_ldi_d(jit_state_t*,int32_t,jit_word_t);
# define swf_ldxr_f(r0,r1,r2) _swf_ldxr_f(_jit,r0,r1,r2) # define swf_ldxr_f(r0,r1,r2) _swf_ldxr_f(_jit,r0,r1,r2)
static void _swf_ldxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _swf_ldxr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define swf_ldxr_d(r0,r1,r2) _swf_ldxr_d(_jit,r0,r1,r2) # define swf_ldxr_d(r0,r1,r2) _swf_ldxr_d(_jit,r0,r1,r2)
static void _swf_ldxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _swf_ldxr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define swf_ldxi_f(r0,r1,i0) _swf_ldxi_f(_jit,r0,r1,i0) # define swf_ldxi_f(r0,r1,i0) _swf_ldxi_f(_jit,r0,r1,i0)
static void _swf_ldxi_f(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _swf_ldxi_f(jit_state_t*,int32_t,int32_t,jit_word_t);
# define swf_ldxi_d(r0,r1,i0) _swf_ldxi_d(_jit,r0,r1,i0) # define swf_ldxi_d(r0,r1,i0) _swf_ldxi_d(_jit,r0,r1,i0)
static void _swf_ldxi_d(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _swf_ldxi_d(jit_state_t*,int32_t,int32_t,jit_word_t);
# define swf_str_f(r0,r1) _swf_str_f(_jit,r0,r1) # define swf_str_f(r0,r1) _swf_str_f(_jit,r0,r1)
static void _swf_str_f(jit_state_t*,int32_t,jit_int32_t); static void _swf_str_f(jit_state_t*,int32_t,int32_t);
# define swf_str_d(r0,r1) _swf_str_d(_jit,r0,r1) # define swf_str_d(r0,r1) _swf_str_d(_jit,r0,r1)
static void _swf_str_d(jit_state_t*,int32_t,jit_int32_t); static void _swf_str_d(jit_state_t*,int32_t,int32_t);
# define swf_sti_f(r0,i0) _swf_sti_f(_jit,r0,i0) # define swf_sti_f(r0,i0) _swf_sti_f(_jit,r0,i0)
static void _swf_sti_f(jit_state_t*,jit_word_t,int32_t); static void _swf_sti_f(jit_state_t*,jit_word_t,int32_t);
# define swf_sti_d(r0,i0) _swf_sti_d(_jit,r0,i0) # define swf_sti_d(r0,i0) _swf_sti_d(_jit,r0,i0)
static void _swf_sti_d(jit_state_t*,jit_word_t,int32_t); static void _swf_sti_d(jit_state_t*,jit_word_t,int32_t);
# define swf_stxr_f(r0,r1,r2) _swf_stxr_f(_jit,r0,r1,r2) # define swf_stxr_f(r0,r1,r2) _swf_stxr_f(_jit,r0,r1,r2)
static void _swf_stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _swf_stxr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define swf_stxr_d(r0,r1,r2) _swf_stxr_d(_jit,r0,r1,r2) # define swf_stxr_d(r0,r1,r2) _swf_stxr_d(_jit,r0,r1,r2)
static void _swf_stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _swf_stxr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define swf_stxi_f(r0,r1,i0) _swf_stxi_f(_jit,r0,r1,i0) # define swf_stxi_f(r0,r1,i0) _swf_stxi_f(_jit,r0,r1,i0)
static void _swf_stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _swf_stxi_f(jit_state_t*,jit_word_t,int32_t,int32_t);
# define swf_stxi_d(r0,r1,i0) _swf_stxi_d(_jit,r0,r1,i0) # define swf_stxi_d(r0,r1,i0) _swf_stxi_d(_jit,r0,r1,i0)
static void _swf_stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _swf_stxi_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define swf_vaarg_d(r0, r1) _swf_vaarg_d(_jit, r0, r1) # define swf_vaarg_d(r0, r1) _swf_vaarg_d(_jit, r0, r1)
static void _swf_vaarg_d(jit_state_t*, int32_t, jit_int32_t); static void _swf_vaarg_d(jit_state_t*, int32_t, int32_t);
#endif #endif
#if CODE #if CODE
@ -561,7 +561,7 @@ __aeabi_dcmpun(double u, double v)
static void static void
_swf_ff(jit_state_t *_jit, float(*i0)(float), _swf_ff(jit_state_t *_jit, float(*i0)(float),
int32_t r0, jit_int32_t r1) int32_t r0, int32_t r1)
{ {
jit_get_reg_args(); jit_get_reg_args();
if (jit_fpr_p(r1)) if (jit_fpr_p(r1))
@ -578,7 +578,7 @@ _swf_ff(jit_state_t *_jit, float(*i0)(float),
static void static void
_swf_dd(jit_state_t *_jit, double (*i0)(double), _swf_dd(jit_state_t *_jit, double (*i0)(double),
int32_t r0, jit_int32_t r1) int32_t r0, int32_t r1)
{ {
jit_get_reg_args(); jit_get_reg_args();
if (jit_fpr_p(r1)) { if (jit_fpr_p(r1)) {
@ -611,7 +611,7 @@ _swf_dd(jit_state_t *_jit, double (*i0)(double),
static void static void
_swf_fff(jit_state_t *_jit, float (*i0)(float, float), _swf_fff(jit_state_t *_jit, float (*i0)(float, float),
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_get_reg_args(); jit_get_reg_args();
if (jit_fpr_p(r1)) if (jit_fpr_p(r1))
@ -632,7 +632,7 @@ _swf_fff(jit_state_t *_jit, float (*i0)(float, float),
static void static void
_swf_ddd(jit_state_t *_jit, double (*i0)(double, double), _swf_ddd(jit_state_t *_jit, double (*i0)(double, double),
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_get_reg_args(); jit_get_reg_args();
if (jit_fpr_p(r1)) { if (jit_fpr_p(r1)) {
@ -677,7 +677,7 @@ _swf_ddd(jit_state_t *_jit, double (*i0)(double, double),
static void static void
_swf_fff_(jit_state_t *_jit, float (*i0)(float, float), _swf_fff_(jit_state_t *_jit, float (*i0)(float, float),
int32_t r0, jit_int32_t r1, jit_float32_t i1) int32_t r0, int32_t r1, jit_float32_t i1)
{ {
union { union {
int32_t i; int32_t i;
@ -699,7 +699,7 @@ _swf_fff_(jit_state_t *_jit, float (*i0)(float, float),
} }
static void static void
_swf_rsbi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_float32_t i0) _swf_rsbi_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_float32_t i0)
{ {
union { union {
int32_t i; int32_t i;
@ -722,7 +722,7 @@ _swf_rsbi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_float32_t i0)
static void static void
_swf_ddd_(jit_state_t *_jit, double (*i0)(double, double), _swf_ddd_(jit_state_t *_jit, double (*i0)(double, double),
int32_t r0, jit_int32_t r1, jit_float64_t i1) int32_t r0, int32_t r1, jit_float64_t i1)
{ {
union { union {
int32_t i[2]; int32_t i[2];
@ -762,7 +762,7 @@ _swf_ddd_(jit_state_t *_jit, double (*i0)(double, double),
} }
static void static void
_swf_rsbi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_float64_t i0) _swf_rsbi_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_float64_t i0)
{ {
union { union {
int32_t i[2]; int32_t i[2];
@ -802,7 +802,7 @@ _swf_rsbi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_float64_t i0)
static void static void
_swf_iff(jit_state_t *_jit, int (*i0)(float, float), _swf_iff(jit_state_t *_jit, int (*i0)(float, float),
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_get_reg_args(); jit_get_reg_args();
if (jit_fpr_p(r1)) if (jit_fpr_p(r1))
@ -820,7 +820,7 @@ _swf_iff(jit_state_t *_jit, int (*i0)(float, float),
static void static void
_swf_idd(jit_state_t *_jit, int (*i0)(double, double), _swf_idd(jit_state_t *_jit, int (*i0)(double, double),
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_get_reg_args(); jit_get_reg_args();
if (jit_fpr_p(r1)) { if (jit_fpr_p(r1)) {
@ -854,7 +854,7 @@ _swf_idd(jit_state_t *_jit, int (*i0)(double, double),
static void static void
_swf_iff_(jit_state_t *_jit, int (*i0)(float, float), _swf_iff_(jit_state_t *_jit, int (*i0)(float, float),
int32_t r0, jit_int32_t r1, jit_float32_t i1) int32_t r0, int32_t r1, jit_float32_t i1)
{ {
union { union {
int32_t i; int32_t i;
@ -874,7 +874,7 @@ _swf_iff_(jit_state_t *_jit, int (*i0)(float, float),
static void static void
_swf_idd_(jit_state_t *_jit, int (*i0)(double, double), _swf_idd_(jit_state_t *_jit, int (*i0)(double, double),
int32_t r0, jit_int32_t r1, jit_float64_t i1) int32_t r0, int32_t r1, jit_float64_t i1)
{ {
union { union {
int32_t i[2]; int32_t i[2];
@ -903,7 +903,7 @@ _swf_idd_(jit_state_t *_jit, int (*i0)(double, double),
static void static void
_swf_iunff(jit_state_t *_jit, int (*i0)(float, float), _swf_iunff(jit_state_t *_jit, int (*i0)(float, float),
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_word_t instr; jit_word_t instr;
jit_get_reg_args(); jit_get_reg_args();
@ -948,7 +948,7 @@ _swf_iunff(jit_state_t *_jit, int (*i0)(float, float),
static void static void
_swf_iundd(jit_state_t *_jit, int (*i0)(double, double), _swf_iundd(jit_state_t *_jit, int (*i0)(double, double),
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_word_t instr; jit_word_t instr;
jit_get_reg_args(); jit_get_reg_args();
@ -1025,7 +1025,7 @@ _swf_iundd(jit_state_t *_jit, int (*i0)(double, double),
static void static void
_swf_iunff_(jit_state_t *_jit, int (*i0)(float, float), _swf_iunff_(jit_state_t *_jit, int (*i0)(float, float),
int32_t r0, jit_int32_t r1, jit_float32_t i1) int32_t r0, int32_t r1, jit_float32_t i1)
{ {
jit_word_t instr; jit_word_t instr;
union { union {
@ -1069,7 +1069,7 @@ _swf_iunff_(jit_state_t *_jit, int (*i0)(float, float),
static void static void
_swf_iundd_(jit_state_t *_jit, int (*i0)(double, double), _swf_iundd_(jit_state_t *_jit, int (*i0)(double, double),
int32_t r0, jit_int32_t r1, jit_float64_t i1) int32_t r0, int32_t r1, jit_float64_t i1)
{ {
jit_word_t instr; jit_word_t instr;
union { union {
@ -1131,7 +1131,7 @@ _swf_iundd_(jit_state_t *_jit, int (*i0)(double, double),
static jit_word_t static jit_word_t
_swf_bff(jit_state_t *_jit, int (*i0)(float, float), int cc, _swf_bff(jit_state_t *_jit, int (*i0)(float, float), int cc,
jit_word_t i1, int32_t r0, jit_int32_t r1) jit_word_t i1, int32_t r0, int32_t r1)
{ {
jit_word_t w, d; jit_word_t w, d;
jit_get_reg_args(); jit_get_reg_args();
@ -1164,7 +1164,7 @@ _swf_bff(jit_state_t *_jit, int (*i0)(float, float), int cc,
static jit_word_t static jit_word_t
_swf_bdd(jit_state_t *_jit, int (*i0)(double, double), int cc, _swf_bdd(jit_state_t *_jit, int (*i0)(double, double), int cc,
jit_word_t i1, int32_t r0, jit_int32_t r1) jit_word_t i1, int32_t r0, int32_t r1)
{ {
jit_word_t w, d; jit_word_t w, d;
jit_get_reg_args(); jit_get_reg_args();
@ -1292,7 +1292,7 @@ _swf_bdd_(jit_state_t *_jit, int (*i0)(double, double), int cc,
static jit_word_t static jit_word_t
_swf_bunff(jit_state_t *_jit, int eq, _swf_bunff(jit_state_t *_jit, int eq,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w, d, j0, j1; jit_word_t w, d, j0, j1;
jit_get_reg_args(); jit_get_reg_args();
@ -1362,7 +1362,7 @@ _swf_bunff(jit_state_t *_jit, int eq,
static jit_word_t static jit_word_t
_swf_bundd(jit_state_t *_jit, int eq, _swf_bundd(jit_state_t *_jit, int eq,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w, d, j0, j1; jit_word_t w, d, j0, j1;
jit_get_reg_args(); jit_get_reg_args();
@ -1619,7 +1619,7 @@ _swf_bundd_(jit_state_t *_jit, int eq,
} }
static void static void
_swf_extr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _swf_extr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
jit_get_reg_args(); jit_get_reg_args();
movr(_R0_REGNO, r1); movr(_R0_REGNO, r1);
@ -1632,7 +1632,7 @@ _swf_extr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_swf_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _swf_extr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
jit_get_reg_args(); jit_get_reg_args();
movr(_R0_REGNO, r1); movr(_R0_REGNO, r1);
@ -1653,7 +1653,7 @@ _swf_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_swf_extr_d_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _swf_extr_d_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
jit_get_reg_args(); jit_get_reg_args();
if (jit_fpr_p(r1)) { if (jit_fpr_p(r1)) {
@ -1677,7 +1677,7 @@ _swf_extr_d_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_swf_extr_f_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _swf_extr_f_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
jit_get_reg_args(); jit_get_reg_args();
if (jit_fpr_p(r1)) if (jit_fpr_p(r1))
@ -1701,7 +1701,7 @@ _swf_extr_f_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_swf_truncr_f_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _swf_truncr_f_i(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
#if !NAN_TO_INT_IS_ZERO #if !NAN_TO_INT_IS_ZERO
jit_word_t is_nan; jit_word_t is_nan;
@ -1755,7 +1755,7 @@ _swf_truncr_f_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_swf_truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _swf_truncr_d_i(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
#if !NAN_TO_INT_IS_ZERO #if !NAN_TO_INT_IS_ZERO
jit_word_t is_nan; jit_word_t is_nan;
@ -1819,7 +1819,7 @@ _swf_truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_swf_movr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _swf_movr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (r0 != r1) { if (r0 != r1) {
@ -1840,7 +1840,7 @@ _swf_movr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_swf_movr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _swf_movr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (r0 != r1) { if (r0 != r1) {
@ -1938,7 +1938,7 @@ _swf_movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t i0)
} }
static void static void
_swf_absr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _swf_absr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r1)) { if (jit_fpr_p(r1)) {
@ -1963,7 +1963,7 @@ _swf_absr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_swf_absr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _swf_absr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r1)) { if (jit_fpr_p(r1)) {
@ -2010,7 +2010,7 @@ _swf_absr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_swf_negr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _swf_negr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r1)) { if (jit_fpr_p(r1)) {
@ -2035,7 +2035,7 @@ _swf_negr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_swf_negr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _swf_negr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r1)) { if (jit_fpr_p(r1)) {
@ -2082,91 +2082,91 @@ _swf_negr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_swf_ner_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _swf_ner_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
swf_iff(__aeabi_fcmpeq, r0, r1, r2); swf_iff(__aeabi_fcmpeq, r0, r1, r2);
xori(r0, r0, 1); xori(r0, r0, 1);
} }
static void static void
_swf_nei_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_float32_t i0) _swf_nei_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_float32_t i0)
{ {
swf_iff_(__aeabi_fcmpeq, r0, r1, i0); swf_iff_(__aeabi_fcmpeq, r0, r1, i0);
xori(r0, r0, 1); xori(r0, r0, 1);
} }
static void static void
_swf_ner_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _swf_ner_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
swf_idd(__aeabi_dcmpeq, r0, r1, r2); swf_idd(__aeabi_dcmpeq, r0, r1, r2);
xori(r0, r0, 1); xori(r0, r0, 1);
} }
static void static void
_swf_nei_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_float64_t i0) _swf_nei_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_float64_t i0)
{ {
swf_idd_(__aeabi_dcmpeq, r0, r1, i0); swf_idd_(__aeabi_dcmpeq, r0, r1, i0);
xori(r0, r0, 1); xori(r0, r0, 1);
} }
static void static void
_swf_ltgtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _swf_ltgtr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
swf_iunff(__aeabi_fcmpeq, r0, r1, r2); swf_iunff(__aeabi_fcmpeq, r0, r1, r2);
xori(r0, r0, 1); xori(r0, r0, 1);
} }
static void static void
_swf_ltgti_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_float32_t i0) _swf_ltgti_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_float32_t i0)
{ {
swf_iunff_(__aeabi_fcmpeq, r0, r1, i0); swf_iunff_(__aeabi_fcmpeq, r0, r1, i0);
xori(r0, r0, 1); xori(r0, r0, 1);
} }
static void static void
_swf_ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _swf_ltgtr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
swf_iundd(__aeabi_dcmpeq, r0, r1, r2); swf_iundd(__aeabi_dcmpeq, r0, r1, r2);
xori(r0, r0, 1); xori(r0, r0, 1);
} }
static void static void
_swf_ltgti_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_float64_t i0) _swf_ltgti_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_float64_t i0)
{ {
swf_iundd_(__aeabi_dcmpeq, r0, r1, i0); swf_iundd_(__aeabi_dcmpeq, r0, r1, i0);
xori(r0, r0, 1); xori(r0, r0, 1);
} }
static void static void
_swf_ordr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _swf_ordr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
swf_iff(__aeabi_fcmpun, r0, r1, r2); swf_iff(__aeabi_fcmpun, r0, r1, r2);
xori(r0, r0, 1); xori(r0, r0, 1);
} }
static void static void
_swf_ordi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_float32_t i0) _swf_ordi_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_float32_t i0)
{ {
swf_iff_(__aeabi_fcmpun, r0, r1, i0); swf_iff_(__aeabi_fcmpun, r0, r1, i0);
xori(r0, r0, 1); xori(r0, r0, 1);
} }
static void static void
_swf_ordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _swf_ordr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
swf_idd(__aeabi_dcmpun, r0, r1, r2); swf_idd(__aeabi_dcmpun, r0, r1, r2);
xori(r0, r0, 1); xori(r0, r0, 1);
} }
static void static void
_swf_ordi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_float64_t i0) _swf_ordi_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_float64_t i0)
{ {
swf_idd_(__aeabi_dcmpun, r0, r1, i0); swf_idd_(__aeabi_dcmpun, r0, r1, i0);
xori(r0, r0, 1); xori(r0, r0, 1);
} }
static void static void
_swf_ldr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _swf_ldr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r0)) { if (jit_fpr_p(r0)) {
@ -2180,7 +2180,7 @@ _swf_ldr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_swf_ldr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _swf_ldr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r0)) { if (jit_fpr_p(r0)) {
@ -2254,7 +2254,7 @@ _swf_ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_swf_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _swf_ldxr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r0)) { if (jit_fpr_p(r0)) {
@ -2268,7 +2268,7 @@ _swf_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_swf_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _swf_ldxr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t rg0, rg1; int32_t rg0, rg1;
if (jit_fpr_p(r0)) { if (jit_fpr_p(r0)) {
@ -2304,7 +2304,7 @@ _swf_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_swf_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _swf_ldxi_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r0)) { if (jit_fpr_p(r0)) {
@ -2318,7 +2318,7 @@ _swf_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_swf_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _swf_ldxi_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t rg0, rg1; int32_t rg0, rg1;
if (jit_fpr_p(r0)) { if (jit_fpr_p(r0)) {
@ -2387,7 +2387,7 @@ _swf_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_swf_str_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _swf_str_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r1)) { if (jit_fpr_p(r1)) {
@ -2401,7 +2401,7 @@ _swf_str_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_swf_str_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _swf_str_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r1)) { if (jit_fpr_p(r1)) {
@ -2484,7 +2484,7 @@ _swf_sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0)
} }
static void static void
_swf_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _swf_stxr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r2)) { if (jit_fpr_p(r2)) {
@ -2498,7 +2498,7 @@ _swf_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_swf_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _swf_stxr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t rg0, rg1; int32_t rg0, rg1;
if (jit_fpr_p(r2)) { if (jit_fpr_p(r2)) {
@ -2534,7 +2534,7 @@ _swf_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_swf_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _swf_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r1)) { if (jit_fpr_p(r1)) {
@ -2548,7 +2548,7 @@ _swf_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_swf_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _swf_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t rg0, rg1; int32_t rg0, rg1;
if (jit_fpr_p(r1)) { if (jit_fpr_p(r1)) {
@ -2618,7 +2618,7 @@ _swf_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_swf_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _swf_vaarg_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;

View file

@ -467,25 +467,25 @@ static void _cc_vorsl(jit_state_t*,int,int,int,int,int);
# define CC_VSTR_F64(cc,r0,r1,i0) cc_vldst(cc,ARM_VSTR|ARM_V_F64|ARM_P,r0,r1,i0) # define CC_VSTR_F64(cc,r0,r1,i0) cc_vldst(cc,ARM_VSTR|ARM_V_F64|ARM_P,r0,r1,i0)
# define VSTR_F64(r0,r1,i0) CC_VSTR_F64(ARM_CC_AL,r0,r1,i0) # define VSTR_F64(r0,r1,i0) CC_VSTR_F64(ARM_CC_AL,r0,r1,i0)
# define vfp_movr_f(r0,r1) _vfp_movr_f(_jit,r0,r1) # define vfp_movr_f(r0,r1) _vfp_movr_f(_jit,r0,r1)
static void _vfp_movr_f(jit_state_t*,int32_t,jit_int32_t); static void _vfp_movr_f(jit_state_t*,int32_t,int32_t);
# define vfp_movr_d(r0,r1) _vfp_movr_d(_jit,r0,r1) # define vfp_movr_d(r0,r1) _vfp_movr_d(_jit,r0,r1)
static void _vfp_movr_d(jit_state_t*,int32_t,jit_int32_t); static void _vfp_movr_d(jit_state_t*,int32_t,int32_t);
# define vfp_movi_f(r0,i0) _vfp_movi_f(_jit,r0,i0) # define vfp_movi_f(r0,i0) _vfp_movi_f(_jit,r0,i0)
static void _vfp_movi_f(jit_state_t*,int32_t,jit_float32_t); static void _vfp_movi_f(jit_state_t*,int32_t,jit_float32_t);
# define vfp_movi_d(r0,i0) _vfp_movi_d(_jit,r0,i0) # define vfp_movi_d(r0,i0) _vfp_movi_d(_jit,r0,i0)
static void _vfp_movi_d(jit_state_t*,int32_t,jit_float64_t); static void _vfp_movi_d(jit_state_t*,int32_t,jit_float64_t);
# define vfp_extr_f(r0,r1) _vfp_extr_f(_jit,r0,r1) # define vfp_extr_f(r0,r1) _vfp_extr_f(_jit,r0,r1)
static void _vfp_extr_f(jit_state_t*,int32_t,jit_int32_t); static void _vfp_extr_f(jit_state_t*,int32_t,int32_t);
# define vfp_extr_d(r0,r1) _vfp_extr_d(_jit,r0,r1) # define vfp_extr_d(r0,r1) _vfp_extr_d(_jit,r0,r1)
static void _vfp_extr_d(jit_state_t*,int32_t,jit_int32_t); static void _vfp_extr_d(jit_state_t*,int32_t,int32_t);
# define vfp_extr_d_f(r0,r1) _vfp_extr_d_f(_jit,r0,r1) # define vfp_extr_d_f(r0,r1) _vfp_extr_d_f(_jit,r0,r1)
static void _vfp_extr_d_f(jit_state_t*,int32_t,jit_int32_t); static void _vfp_extr_d_f(jit_state_t*,int32_t,int32_t);
# define vfp_extr_f_d(r0,r1) _vfp_extr_f_d(_jit,r0,r1) # define vfp_extr_f_d(r0,r1) _vfp_extr_f_d(_jit,r0,r1)
static void _vfp_extr_f_d(jit_state_t*,int32_t,jit_int32_t); static void _vfp_extr_f_d(jit_state_t*,int32_t,int32_t);
# define vfp_truncr_f_i(r0,r1) _vfp_truncr_f_i(_jit,r0,r1) # define vfp_truncr_f_i(r0,r1) _vfp_truncr_f_i(_jit,r0,r1)
static void _vfp_truncr_f_i(jit_state_t*,int32_t,jit_int32_t); static void _vfp_truncr_f_i(jit_state_t*,int32_t,int32_t);
# define vfp_truncr_d_i(r0,r1) _vfp_truncr_d_i(_jit,r0,r1) # define vfp_truncr_d_i(r0,r1) _vfp_truncr_d_i(_jit,r0,r1)
static void _vfp_truncr_d_i(jit_state_t*,int32_t,jit_int32_t); static void _vfp_truncr_d_i(jit_state_t*,int32_t,int32_t);
# define vfp_absr_f(r0,r1) VABS_F32(r0,r1) # define vfp_absr_f(r0,r1) VABS_F32(r0,r1)
# define vfp_absr_d(r0,r1) VABS_F64(r0,r1) # define vfp_absr_d(r0,r1) VABS_F64(r0,r1)
# define vfp_negr_f(r0,r1) VNEG_F32(r0,r1) # define vfp_negr_f(r0,r1) VNEG_F32(r0,r1)
@ -494,162 +494,162 @@ static void _vfp_truncr_d_i(jit_state_t*,int32_t,jit_int32_t);
# define vfp_sqrtr_d(r0,r1) VSQRT_F64(r0,r1) # define vfp_sqrtr_d(r0,r1) VSQRT_F64(r0,r1)
# define vfp_addr_f(r0,r1,r2) VADD_F32(r0,r1,r2) # define vfp_addr_f(r0,r1,r2) VADD_F32(r0,r1,r2)
# define vfp_addi_f(r0,r1,i0) _vfp_addi_f(_jit,r0,r1,i0) # define vfp_addi_f(r0,r1,i0) _vfp_addi_f(_jit,r0,r1,i0)
static void _vfp_addi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _vfp_addi_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define vfp_addr_d(r0,r1,r2) VADD_F64(r0,r1,r2) # define vfp_addr_d(r0,r1,r2) VADD_F64(r0,r1,r2)
# define vfp_addi_d(r0,r1,i0) _vfp_addi_d(_jit,r0,r1,i0) # define vfp_addi_d(r0,r1,i0) _vfp_addi_d(_jit,r0,r1,i0)
static void _vfp_addi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _vfp_addi_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define vfp_subr_f(r0,r1,r2) VSUB_F32(r0,r1,r2) # define vfp_subr_f(r0,r1,r2) VSUB_F32(r0,r1,r2)
# define vfp_subi_f(r0,r1,i0) _vfp_subi_f(_jit,r0,r1,i0) # define vfp_subi_f(r0,r1,i0) _vfp_subi_f(_jit,r0,r1,i0)
static void _vfp_subi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _vfp_subi_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define vfp_subr_d(r0,r1,r2) VSUB_F64(r0,r1,r2) # define vfp_subr_d(r0,r1,r2) VSUB_F64(r0,r1,r2)
# define vfp_subi_d(r0,r1,i0) _vfp_subi_d(_jit,r0,r1,i0) # define vfp_subi_d(r0,r1,i0) _vfp_subi_d(_jit,r0,r1,i0)
static void _vfp_subi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _vfp_subi_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define vfp_rsbr_f(r0,r1,r2) vfp_subr_f(r0,r2,r1) # define vfp_rsbr_f(r0,r1,r2) vfp_subr_f(r0,r2,r1)
# define vfp_rsbi_f(r0,r1,i0) _vfp_rsbi_f(_jit,r0,r1,i0) # define vfp_rsbi_f(r0,r1,i0) _vfp_rsbi_f(_jit,r0,r1,i0)
static void _vfp_rsbi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _vfp_rsbi_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define vfp_rsbr_d(r0,r1,r2) vfp_subr_d(r0,r2,r1) # define vfp_rsbr_d(r0,r1,r2) vfp_subr_d(r0,r2,r1)
# define vfp_rsbi_d(r0,r1,i0) _vfp_rsbi_d(_jit,r0,r1,i0) # define vfp_rsbi_d(r0,r1,i0) _vfp_rsbi_d(_jit,r0,r1,i0)
static void _vfp_rsbi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _vfp_rsbi_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define vfp_mulr_f(r0,r1,r2) VMUL_F32(r0,r1,r2) # define vfp_mulr_f(r0,r1,r2) VMUL_F32(r0,r1,r2)
# define vfp_muli_f(r0,r1,i0) _vfp_muli_f(_jit,r0,r1,i0) # define vfp_muli_f(r0,r1,i0) _vfp_muli_f(_jit,r0,r1,i0)
static void _vfp_muli_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _vfp_muli_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define vfp_mulr_d(r0,r1,r2) VMUL_F64(r0,r1,r2) # define vfp_mulr_d(r0,r1,r2) VMUL_F64(r0,r1,r2)
# define vfp_muli_d(r0,r1,i0) _vfp_muli_d(_jit,r0,r1,i0) # define vfp_muli_d(r0,r1,i0) _vfp_muli_d(_jit,r0,r1,i0)
static void _vfp_muli_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _vfp_muli_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define vfp_divr_f(r0,r1,r2) VDIV_F32(r0,r1,r2) # define vfp_divr_f(r0,r1,r2) VDIV_F32(r0,r1,r2)
# define vfp_divi_f(r0,r1,i0) _vfp_divi_f(_jit,r0,r1,i0) # define vfp_divi_f(r0,r1,i0) _vfp_divi_f(_jit,r0,r1,i0)
static void _vfp_divi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _vfp_divi_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define vfp_divr_d(r0,r1,r2) VDIV_F64(r0,r1,r2) # define vfp_divr_d(r0,r1,r2) VDIV_F64(r0,r1,r2)
# define vfp_divi_d(r0,r1,i0) _vfp_divi_d(_jit,r0,r1,i0) # define vfp_divi_d(r0,r1,i0) _vfp_divi_d(_jit,r0,r1,i0)
static void _vfp_divi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _vfp_divi_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define vfp_cmp_f(r0,r1) _vfp_cmp_f(_jit,r0,r1) # define vfp_cmp_f(r0,r1) _vfp_cmp_f(_jit,r0,r1)
static void _vfp_cmp_f(jit_state_t*,int32_t,jit_int32_t); static void _vfp_cmp_f(jit_state_t*,int32_t,int32_t);
# define vfp_cmp_d(r0,r1) _vfp_cmp_d(_jit,r0,r1) # define vfp_cmp_d(r0,r1) _vfp_cmp_d(_jit,r0,r1)
static void _vfp_cmp_d(jit_state_t*,int32_t,jit_int32_t); static void _vfp_cmp_d(jit_state_t*,int32_t,int32_t);
# define vcmp01_x(c0,c1,r0) _vcmp01_x(_jit,c0,c1,r0) # define vcmp01_x(c0,c1,r0) _vcmp01_x(_jit,c0,c1,r0)
static void _vcmp01_x(jit_state_t*,int,int,int32_t); static void _vcmp01_x(jit_state_t*,int,int,int32_t);
# define vcmp01_f(c0,c1,r0,r1,r2) _vcmp01_f(_jit,c0,c1,r0,r1,r2) # define vcmp01_f(c0,c1,r0,r1,r2) _vcmp01_f(_jit,c0,c1,r0,r1,r2)
static void _vcmp01_f(jit_state_t*,int,int,int32_t,jit_int32_t,jit_int32_t); static void _vcmp01_f(jit_state_t*,int,int,int32_t,int32_t,jit_int32_t);
# define vcmp01_d(c0,c1,r0,r1,r2) _vcmp01_d(_jit,c0,c1,r0,r1,r2) # define vcmp01_d(c0,c1,r0,r1,r2) _vcmp01_d(_jit,c0,c1,r0,r1,r2)
static void _vcmp01_d(jit_state_t*,int,int,int32_t,jit_int32_t,jit_int32_t); static void _vcmp01_d(jit_state_t*,int,int,int32_t,int32_t,jit_int32_t);
# define vfp_ltr_f(r0,r1,r2) vcmp01_f(ARM_CC_PL,ARM_CC_MI,r0,r1,r2) # define vfp_ltr_f(r0,r1,r2) vcmp01_f(ARM_CC_PL,ARM_CC_MI,r0,r1,r2)
# define vfp_lti_f(r0,r1,i0) _vfp_lti_f(_jit,r0,r1,i0) # define vfp_lti_f(r0,r1,i0) _vfp_lti_f(_jit,r0,r1,i0)
static void _vfp_lti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _vfp_lti_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define vfp_ltr_d(r0,r1,r2) vcmp01_d(ARM_CC_PL,ARM_CC_MI,r0,r1,r2) # define vfp_ltr_d(r0,r1,r2) vcmp01_d(ARM_CC_PL,ARM_CC_MI,r0,r1,r2)
# define vfp_lti_d(r0,r1,i0) _vfp_lti_d(_jit,r0,r1,i0) # define vfp_lti_d(r0,r1,i0) _vfp_lti_d(_jit,r0,r1,i0)
static void _vfp_lti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _vfp_lti_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define vfp_ler_f(r0,r1,r2) vcmp01_f(ARM_CC_HS,ARM_CC_LS,r0,r1,r2) # define vfp_ler_f(r0,r1,r2) vcmp01_f(ARM_CC_HS,ARM_CC_LS,r0,r1,r2)
# define vfp_lei_f(r0,r1,i0) _vfp_lei_f(_jit,r0,r1,i0) # define vfp_lei_f(r0,r1,i0) _vfp_lei_f(_jit,r0,r1,i0)
static void _vfp_lei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _vfp_lei_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define vfp_ler_d(r0,r1,r2) vcmp01_d(ARM_CC_HS,ARM_CC_LS,r0,r1,r2) # define vfp_ler_d(r0,r1,r2) vcmp01_d(ARM_CC_HS,ARM_CC_LS,r0,r1,r2)
# define vfp_lei_d(r0,r1,i0) _vfp_lei_d(_jit,r0,r1,i0) # define vfp_lei_d(r0,r1,i0) _vfp_lei_d(_jit,r0,r1,i0)
static void _vfp_lei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _vfp_lei_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define vfp_eqr_f(r0,r1,r2) vcmp01_f(ARM_CC_NE,ARM_CC_EQ,r0,r1,r2) # define vfp_eqr_f(r0,r1,r2) vcmp01_f(ARM_CC_NE,ARM_CC_EQ,r0,r1,r2)
# define vfp_eqi_f(r0,r1,i0) _vfp_eqi_f(_jit,r0,r1,i0) # define vfp_eqi_f(r0,r1,i0) _vfp_eqi_f(_jit,r0,r1,i0)
static void _vfp_eqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _vfp_eqi_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define vfp_eqr_d(r0,r1,r2) vcmp01_d(ARM_CC_NE,ARM_CC_EQ,r0,r1,r2) # define vfp_eqr_d(r0,r1,r2) vcmp01_d(ARM_CC_NE,ARM_CC_EQ,r0,r1,r2)
# define vfp_eqi_d(r0,r1,i0) _vfp_eqi_d(_jit,r0,r1,i0) # define vfp_eqi_d(r0,r1,i0) _vfp_eqi_d(_jit,r0,r1,i0)
static void _vfp_eqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _vfp_eqi_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define vfp_ger_f(r0,r1,r2) vcmp01_f(ARM_CC_LT,ARM_CC_GE,r0,r1,r2) # define vfp_ger_f(r0,r1,r2) vcmp01_f(ARM_CC_LT,ARM_CC_GE,r0,r1,r2)
# define vfp_gei_f(r0,r1,i0) _vfp_gei_f(_jit,r0,r1,i0) # define vfp_gei_f(r0,r1,i0) _vfp_gei_f(_jit,r0,r1,i0)
static void _vfp_gei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _vfp_gei_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define vfp_ger_d(r0,r1,r2) vcmp01_d(ARM_CC_LT,ARM_CC_GE,r0,r1,r2) # define vfp_ger_d(r0,r1,r2) vcmp01_d(ARM_CC_LT,ARM_CC_GE,r0,r1,r2)
# define vfp_gei_d(r0,r1,i0) _vfp_gei_d(_jit,r0,r1,i0) # define vfp_gei_d(r0,r1,i0) _vfp_gei_d(_jit,r0,r1,i0)
static void _vfp_gei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _vfp_gei_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define vfp_gtr_f(r0,r1,r2) vcmp01_f(ARM_CC_LE,ARM_CC_GT,r0,r1,r2) # define vfp_gtr_f(r0,r1,r2) vcmp01_f(ARM_CC_LE,ARM_CC_GT,r0,r1,r2)
# define vfp_gti_f(r0,r1,i0) _vfp_gti_f(_jit,r0,r1,i0) # define vfp_gti_f(r0,r1,i0) _vfp_gti_f(_jit,r0,r1,i0)
static void _vfp_gti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _vfp_gti_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define vfp_gtr_d(r0,r1,r2) vcmp01_d(ARM_CC_LE,ARM_CC_GT,r0,r1,r2) # define vfp_gtr_d(r0,r1,r2) vcmp01_d(ARM_CC_LE,ARM_CC_GT,r0,r1,r2)
# define vfp_gti_d(r0,r1,i0) _vfp_gti_d(_jit,r0,r1,i0) # define vfp_gti_d(r0,r1,i0) _vfp_gti_d(_jit,r0,r1,i0)
static void _vfp_gti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _vfp_gti_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define vfp_ner_f(r0,r1,r2) vcmp01_f(ARM_CC_EQ,ARM_CC_NE,r0,r1,r2) # define vfp_ner_f(r0,r1,r2) vcmp01_f(ARM_CC_EQ,ARM_CC_NE,r0,r1,r2)
# define vfp_nei_f(r0,r1,i0) _vfp_nei_f(_jit,r0,r1,i0) # define vfp_nei_f(r0,r1,i0) _vfp_nei_f(_jit,r0,r1,i0)
static void _vfp_nei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _vfp_nei_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define vfp_ner_d(r0,r1,r2) vcmp01_d(ARM_CC_EQ,ARM_CC_NE,r0,r1,r2) # define vfp_ner_d(r0,r1,r2) vcmp01_d(ARM_CC_EQ,ARM_CC_NE,r0,r1,r2)
# define vfp_nei_d(r0,r1,i0) _vfp_nei_d(_jit,r0,r1,i0) # define vfp_nei_d(r0,r1,i0) _vfp_nei_d(_jit,r0,r1,i0)
static void _vfp_nei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _vfp_nei_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define vcmp10_x(c0,r0) _vcmp10_x(_jit,c0,r0) # define vcmp10_x(c0,r0) _vcmp10_x(_jit,c0,r0)
static void _vcmp10_x(jit_state_t*,int,int32_t); static void _vcmp10_x(jit_state_t*,int,int32_t);
# define vcmp_10_f(c0,r0,r1,r2) _vcmp_10_f(_jit,c0,r0,r1,r2) # define vcmp_10_f(c0,r0,r1,r2) _vcmp_10_f(_jit,c0,r0,r1,r2)
static void _vcmp_10_f(jit_state_t*,int,int32_t,jit_int32_t,jit_int32_t); static void _vcmp_10_f(jit_state_t*,int,int32_t,int32_t,jit_int32_t);
# define vcmp_10_d(c0,r0,r1,r2) _vcmp_10_d(_jit,c0,r0,r1,r2) # define vcmp_10_d(c0,r0,r1,r2) _vcmp_10_d(_jit,c0,r0,r1,r2)
static void _vcmp_10_d(jit_state_t*,int,int32_t,jit_int32_t,jit_int32_t); static void _vcmp_10_d(jit_state_t*,int,int32_t,int32_t,jit_int32_t);
# define vfp_unltr_f(r0,r1,r2) vcmp_10_f(ARM_CC_GE,r0,r1,r2) # define vfp_unltr_f(r0,r1,r2) vcmp_10_f(ARM_CC_GE,r0,r1,r2)
# define vfp_unlti_f(r0,r1,i0) _vfp_unlti_f(_jit,r0,r1,i0) # define vfp_unlti_f(r0,r1,i0) _vfp_unlti_f(_jit,r0,r1,i0)
static void _vfp_unlti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _vfp_unlti_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define vfp_unltr_d(r0,r1,r2) vcmp_10_d(ARM_CC_GE,r0,r1,r2) # define vfp_unltr_d(r0,r1,r2) vcmp_10_d(ARM_CC_GE,r0,r1,r2)
# define vfp_unlti_d(r0,r1,i0) _vfp_unlti_d(_jit,r0,r1,i0) # define vfp_unlti_d(r0,r1,i0) _vfp_unlti_d(_jit,r0,r1,i0)
static void _vfp_unlti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _vfp_unlti_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define vfp_unler_f(r0,r1,r2) vcmp_10_f(ARM_CC_GT,r0,r1,r2) # define vfp_unler_f(r0,r1,r2) vcmp_10_f(ARM_CC_GT,r0,r1,r2)
# define vfp_unlei_f(r0,r1,i0) _vfp_unlei_f(_jit,r0,r1,i0) # define vfp_unlei_f(r0,r1,i0) _vfp_unlei_f(_jit,r0,r1,i0)
static void _vfp_unlei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _vfp_unlei_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define vfp_unler_d(r0,r1,r2) vcmp_10_d(ARM_CC_GT,r0,r1,r2) # define vfp_unler_d(r0,r1,r2) vcmp_10_d(ARM_CC_GT,r0,r1,r2)
# define vfp_unlei_d(r0,r1,i0) _vfp_unlei_d(_jit,r0,r1,i0) # define vfp_unlei_d(r0,r1,i0) _vfp_unlei_d(_jit,r0,r1,i0)
static void _vfp_unlei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _vfp_unlei_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define vfp_uneqr_x(r0) _vfp_uneqr_x(_jit,r0) # define vfp_uneqr_x(r0) _vfp_uneqr_x(_jit,r0)
static void _vfp_uneqr_x(jit_state_t*,int32_t); static void _vfp_uneqr_x(jit_state_t*,int32_t);
# define vfp_uneqr_f(r0,r1,r2) _vfp_uneqr_f(_jit,r0,r1,r2) # define vfp_uneqr_f(r0,r1,r2) _vfp_uneqr_f(_jit,r0,r1,r2)
static void _vfp_uneqr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _vfp_uneqr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define vfp_uneqi_f(r0,r1,i0) _vfp_uneqi_f(_jit,r0,r1,i0) # define vfp_uneqi_f(r0,r1,i0) _vfp_uneqi_f(_jit,r0,r1,i0)
static void _vfp_uneqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _vfp_uneqi_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define vfp_uneqr_d(r0,r1,r2) _vfp_uneqr_d(_jit,r0,r1,r2) # define vfp_uneqr_d(r0,r1,r2) _vfp_uneqr_d(_jit,r0,r1,r2)
static void _vfp_uneqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _vfp_uneqr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define vfp_uneqi_d(r0,r1,i0) _vfp_uneqi_d(_jit,r0,r1,i0) # define vfp_uneqi_d(r0,r1,i0) _vfp_uneqi_d(_jit,r0,r1,i0)
static void _vfp_uneqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _vfp_uneqi_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define vcmp_01_x(c0,r0) _vcmp_01_x(_jit,c0,r0) # define vcmp_01_x(c0,r0) _vcmp_01_x(_jit,c0,r0)
static void _vcmp_01_x(jit_state_t*,int,int32_t); static void _vcmp_01_x(jit_state_t*,int,int32_t);
# define vcmp_01_f(c0,r0,r1,r2) _vcmp_01_f(_jit,c0,r0,r1,r2) # define vcmp_01_f(c0,r0,r1,r2) _vcmp_01_f(_jit,c0,r0,r1,r2)
static void _vcmp_01_f(jit_state_t*,int,int32_t,jit_int32_t,jit_int32_t); static void _vcmp_01_f(jit_state_t*,int,int32_t,int32_t,jit_int32_t);
# define vcmp_01_d(c0,r0,r1,r2) _vcmp_01_d(_jit,c0,r0,r1,r2) # define vcmp_01_d(c0,r0,r1,r2) _vcmp_01_d(_jit,c0,r0,r1,r2)
static void _vcmp_01_d(jit_state_t*,int,int32_t,jit_int32_t,jit_int32_t); static void _vcmp_01_d(jit_state_t*,int,int32_t,int32_t,jit_int32_t);
# define vfp_unger_f(r0,r1,r2) vcmp_01_f(ARM_CC_CS,r0,r1,r2) # define vfp_unger_f(r0,r1,r2) vcmp_01_f(ARM_CC_CS,r0,r1,r2)
# define vfp_ungei_f(r0,r1,i0) _vfp_ungei_f(_jit,r0,r1,i0) # define vfp_ungei_f(r0,r1,i0) _vfp_ungei_f(_jit,r0,r1,i0)
static void _vfp_ungei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _vfp_ungei_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define vfp_unger_d(r0,r1,r2) vcmp_01_d(ARM_CC_CS,r0,r1,r2) # define vfp_unger_d(r0,r1,r2) vcmp_01_d(ARM_CC_CS,r0,r1,r2)
# define vfp_ungei_d(r0,r1,i0) _vfp_ungei_d(_jit,r0,r1,i0) # define vfp_ungei_d(r0,r1,i0) _vfp_ungei_d(_jit,r0,r1,i0)
static void _vfp_ungei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _vfp_ungei_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define vfp_ungtr_f(r0,r1,r2) vcmp_01_f(ARM_CC_HI,r0,r1,r2) # define vfp_ungtr_f(r0,r1,r2) vcmp_01_f(ARM_CC_HI,r0,r1,r2)
# define vfp_ungti_f(r0,r1,i0) _vfp_ungti_f(_jit,r0,r1,i0) # define vfp_ungti_f(r0,r1,i0) _vfp_ungti_f(_jit,r0,r1,i0)
static void _vfp_ungti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _vfp_ungti_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define vfp_ungtr_d(r0,r1,r2) vcmp_01_d(ARM_CC_HI,r0,r1,r2) # define vfp_ungtr_d(r0,r1,r2) vcmp_01_d(ARM_CC_HI,r0,r1,r2)
# define vfp_ungti_d(r0,r1,i0) _vfp_ungti_d(_jit,r0,r1,i0) # define vfp_ungti_d(r0,r1,i0) _vfp_ungti_d(_jit,r0,r1,i0)
static void _vfp_ungti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _vfp_ungti_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define vfp_ltgtr_x(r0) _vfp_ltgtr_x(_jit,r0) # define vfp_ltgtr_x(r0) _vfp_ltgtr_x(_jit,r0)
static void _vfp_ltgtr_x(jit_state_t*,int32_t); static void _vfp_ltgtr_x(jit_state_t*,int32_t);
# define vfp_ltgtr_f(r0,r1,r2) _vfp_ltgtr_f(_jit,r0,r1,r2) # define vfp_ltgtr_f(r0,r1,r2) _vfp_ltgtr_f(_jit,r0,r1,r2)
static void _vfp_ltgtr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _vfp_ltgtr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define vfp_ltgti_f(r0,r1,i0) _vfp_ltgti_f(_jit,r0,r1,i0) # define vfp_ltgti_f(r0,r1,i0) _vfp_ltgti_f(_jit,r0,r1,i0)
static void _vfp_ltgti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _vfp_ltgti_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define vfp_ltgtr_d(r0,r1,r2) _vfp_ltgtr_d(_jit,r0,r1,r2) # define vfp_ltgtr_d(r0,r1,r2) _vfp_ltgtr_d(_jit,r0,r1,r2)
static void _vfp_ltgtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _vfp_ltgtr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define vfp_ltgti_d(r0,r1,i0) _vfp_ltgti_d(_jit,r0,r1,i0) # define vfp_ltgti_d(r0,r1,i0) _vfp_ltgti_d(_jit,r0,r1,i0)
static void _vfp_ltgti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _vfp_ltgti_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define vfp_ordr_f(r0,r1,r2) _vfp_ordr_f(_jit,r0,r1,r2) # define vfp_ordr_f(r0,r1,r2) _vfp_ordr_f(_jit,r0,r1,r2)
static void _vfp_ordr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _vfp_ordr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define vfp_ordi_f(r0,r1,i0) _vfp_ordi_f(_jit,r0,r1,i0) # define vfp_ordi_f(r0,r1,i0) _vfp_ordi_f(_jit,r0,r1,i0)
static void _vfp_ordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _vfp_ordi_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define vfp_ordr_d(r0,r1,r2) _vfp_ordr_d(_jit,r0,r1,r2) # define vfp_ordr_d(r0,r1,r2) _vfp_ordr_d(_jit,r0,r1,r2)
static void _vfp_ordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _vfp_ordr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define vfp_ordi_d(r0,r1,i0) _vfp_ordi_d(_jit,r0,r1,i0) # define vfp_ordi_d(r0,r1,i0) _vfp_ordi_d(_jit,r0,r1,i0)
static void _vfp_ordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _vfp_ordi_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define vfp_unordr_f(r0,r1,r2) _vfp_unordr_f(_jit,r0,r1,r2) # define vfp_unordr_f(r0,r1,r2) _vfp_unordr_f(_jit,r0,r1,r2)
static void _vfp_unordr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _vfp_unordr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define vfp_unordi_f(r0,r1,i0) _vfp_unordi_f(_jit,r0,r1,i0) # define vfp_unordi_f(r0,r1,i0) _vfp_unordi_f(_jit,r0,r1,i0)
static void _vfp_unordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t); static void _vfp_unordi_f(jit_state_t*,int32_t,int32_t,jit_float32_t);
# define vfp_unordr_d(r0,r1,r2) _vfp_unordr_d(_jit,r0,r1,r2) # define vfp_unordr_d(r0,r1,r2) _vfp_unordr_d(_jit,r0,r1,r2)
static void _vfp_unordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _vfp_unordr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define vfp_unordi_d(r0,r1,i0) _vfp_unordi_d(_jit,r0,r1,i0) # define vfp_unordi_d(r0,r1,i0) _vfp_unordi_d(_jit,r0,r1,i0)
static void _vfp_unordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t); static void _vfp_unordi_d(jit_state_t*,int32_t,int32_t,jit_float64_t);
# define vbcmp_x(cc,i0) _vbcmp_x(_jit,cc,i0) # define vbcmp_x(cc,i0) _vbcmp_x(_jit,cc,i0)
static jit_word_t _vbcmp_x(jit_state_t*,int,jit_word_t); static jit_word_t _vbcmp_x(jit_state_t*,int,jit_word_t);
# define vbcmp_f(cc,i0,r0,r1) _vbcmp_f(_jit,cc,i0,r0,r1) # define vbcmp_f(cc,i0,r0,r1) _vbcmp_f(_jit,cc,i0,r0,r1)
static jit_word_t static jit_word_t
_vbcmp_f(jit_state_t*,int,jit_word_t,int32_t,jit_int32_t); _vbcmp_f(jit_state_t*,int,jit_word_t,int32_t,int32_t);
# define vbcmp_x(cc,i0) _vbcmp_x(_jit,cc,i0) # define vbcmp_x(cc,i0) _vbcmp_x(_jit,cc,i0)
static jit_word_t _vbcmp_x(jit_state_t*,int,jit_word_t); static jit_word_t _vbcmp_x(jit_state_t*,int,jit_word_t);
# define vbcmp_d(cc,i0,r0,r1) _vbcmp_d(_jit,cc,i0,r0,r1) # define vbcmp_d(cc,i0,r0,r1) _vbcmp_d(_jit,cc,i0,r0,r1)
static jit_word_t static jit_word_t
_vbcmp_d(jit_state_t*,int,jit_word_t,int32_t,jit_int32_t); _vbcmp_d(jit_state_t*,int,jit_word_t,int32_t,int32_t);
# define vfp_bltr_f(i0,r0,r1) vbcmp_f(ARM_CC_MI,i0,r0,r1) # define vfp_bltr_f(i0,r0,r1) vbcmp_f(ARM_CC_MI,i0,r0,r1)
# define vfp_blti_f(i0,r0,i1) _vfp_blti_f(_jit,i0,r0,i1) # define vfp_blti_f(i0,r0,i1) _vfp_blti_f(_jit,i0,r0,i1)
static jit_word_t _vfp_blti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); static jit_word_t _vfp_blti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t);
@ -690,10 +690,10 @@ static jit_word_t _vfp_bnei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t);
static jit_word_t _vbncmp_x(jit_state_t*,int,jit_word_t); static jit_word_t _vbncmp_x(jit_state_t*,int,jit_word_t);
# define vbncmp_f(cc,i0,r0,r1) _vbncmp_f(_jit,cc,i0,r0,r1) # define vbncmp_f(cc,i0,r0,r1) _vbncmp_f(_jit,cc,i0,r0,r1)
static jit_word_t static jit_word_t
_vbncmp_f(jit_state_t*,int,jit_word_t,int32_t,jit_int32_t); _vbncmp_f(jit_state_t*,int,jit_word_t,int32_t,int32_t);
# define vbncmp_d(cc,i0,r0,r1) _vbncmp_d(_jit,cc,i0,r0,r1) # define vbncmp_d(cc,i0,r0,r1) _vbncmp_d(_jit,cc,i0,r0,r1)
static jit_word_t static jit_word_t
_vbncmp_d(jit_state_t*,int,jit_word_t,int32_t,jit_int32_t); _vbncmp_d(jit_state_t*,int,jit_word_t,int32_t,int32_t);
# define vfp_bunltr_f(i0,r0,r1) vbncmp_f(ARM_CC_GE,i0,r0,r1) # define vfp_bunltr_f(i0,r0,r1) vbncmp_f(ARM_CC_GE,i0,r0,r1)
# define vfp_bunlti_f(i0,r0,i1) _vfp_bunlti_f(_jit,i0,r0,i1) # define vfp_bunlti_f(i0,r0,i1) _vfp_bunlti_f(_jit,i0,r0,i1)
static jit_word_t static jit_word_t
@ -714,13 +714,13 @@ _vfp_bunlei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t);
static jit_word_t _vfp_buneqr_x(jit_state_t*,jit_word_t); static jit_word_t _vfp_buneqr_x(jit_state_t*,jit_word_t);
# define vfp_buneqr_f(i0,r0,r1) _vfp_buneqr_f(_jit,i0,r0,r1) # define vfp_buneqr_f(i0,r0,r1) _vfp_buneqr_f(_jit,i0,r0,r1)
static jit_word_t static jit_word_t
_vfp_buneqr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); _vfp_buneqr_f(jit_state_t*,jit_word_t,int32_t,int32_t);
# define vfp_buneqi_f(i0,r0,i1) _vfp_buneqi_f(_jit,i0,r0,i1) # define vfp_buneqi_f(i0,r0,i1) _vfp_buneqi_f(_jit,i0,r0,i1)
static jit_word_t static jit_word_t
_vfp_buneqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); _vfp_buneqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t);
# define vfp_buneqr_d(i0,r0,r1) _vfp_buneqr_d(_jit,i0,r0,r1) # define vfp_buneqr_d(i0,r0,r1) _vfp_buneqr_d(_jit,i0,r0,r1)
static jit_word_t static jit_word_t
_vfp_buneqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); _vfp_buneqr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define vfp_buneqi_d(i0,r0,i1) _vfp_buneqi_d(_jit,i0,r0,i1) # define vfp_buneqi_d(i0,r0,i1) _vfp_buneqi_d(_jit,i0,r0,i1)
static jit_word_t static jit_word_t
_vfp_buneqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); _vfp_buneqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t);
@ -728,13 +728,13 @@ _vfp_buneqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t);
static jit_word_t _vfp_bunger_x(jit_state_t*,jit_word_t); static jit_word_t _vfp_bunger_x(jit_state_t*,jit_word_t);
# define vfp_bunger_f(i0,r0,r1) _vfp_bunger_f(_jit,i0,r0,r1) # define vfp_bunger_f(i0,r0,r1) _vfp_bunger_f(_jit,i0,r0,r1)
static jit_word_t static jit_word_t
_vfp_bunger_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); _vfp_bunger_f(jit_state_t*,jit_word_t,int32_t,int32_t);
# define vfp_bungei_f(i0,r0,i1) _vfp_bungei_f(_jit,i0,r0,i1) # define vfp_bungei_f(i0,r0,i1) _vfp_bungei_f(_jit,i0,r0,i1)
static jit_word_t static jit_word_t
_vfp_bungei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); _vfp_bungei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t);
# define vfp_bunger_d(i0,r0,r1) _vfp_bunger_d(_jit,i0,r0,r1) # define vfp_bunger_d(i0,r0,r1) _vfp_bunger_d(_jit,i0,r0,r1)
static jit_word_t static jit_word_t
_vfp_bunger_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); _vfp_bunger_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define vfp_bungei_d(i0,r0,i1) _vfp_bungei_d(_jit,i0,r0,i1) # define vfp_bungei_d(i0,r0,i1) _vfp_bungei_d(_jit,i0,r0,i1)
static jit_word_t static jit_word_t
_vfp_bungei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); _vfp_bungei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t);
@ -750,13 +750,13 @@ _vfp_bungti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t);
static jit_word_t _vfp_bltgtr_x(jit_state_t*,jit_word_t); static jit_word_t _vfp_bltgtr_x(jit_state_t*,jit_word_t);
# define vfp_bltgtr_f(i0,r0,r1) _vfp_bltgtr_f(_jit,i0,r0,r1) # define vfp_bltgtr_f(i0,r0,r1) _vfp_bltgtr_f(_jit,i0,r0,r1)
static jit_word_t static jit_word_t
_vfp_bltgtr_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); _vfp_bltgtr_f(jit_state_t*,jit_word_t,int32_t,int32_t);
# define vfp_bltgti_f(i0,r0,i1) _vfp_bltgti_f(_jit,i0,r0,i1) # define vfp_bltgti_f(i0,r0,i1) _vfp_bltgti_f(_jit,i0,r0,i1)
static jit_word_t static jit_word_t
_vfp_bltgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t); _vfp_bltgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t);
# define vfp_bltgtr_d(i0,r0,r1) _vfp_bltgtr_d(_jit,i0,r0,r1) # define vfp_bltgtr_d(i0,r0,r1) _vfp_bltgtr_d(_jit,i0,r0,r1)
static jit_word_t static jit_word_t
_vfp_bltgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); _vfp_bltgtr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define vfp_bltgti_d(i0,r0,i1) _vfp_bltgti_d(_jit,i0,r0,i1) # define vfp_bltgti_d(i0,r0,i1) _vfp_bltgti_d(_jit,i0,r0,i1)
static jit_word_t static jit_word_t
_vfp_bltgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t); _vfp_bltgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t);
@ -783,13 +783,13 @@ static void _vfp_ldi_f(jit_state_t*,int32_t,jit_word_t);
# define vfp_ldi_d(r0,i0) _vfp_ldi_d(_jit,r0,i0) # define vfp_ldi_d(r0,i0) _vfp_ldi_d(_jit,r0,i0)
static void _vfp_ldi_d(jit_state_t*,int32_t,jit_word_t); static void _vfp_ldi_d(jit_state_t*,int32_t,jit_word_t);
# define vfp_ldxr_f(r0,r1,r2) _vfp_ldxr_f(_jit,r0,r1,r2) # define vfp_ldxr_f(r0,r1,r2) _vfp_ldxr_f(_jit,r0,r1,r2)
static void _vfp_ldxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _vfp_ldxr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define vfp_ldxr_d(r0,r1,r2) _vfp_ldxr_d(_jit,r0,r1,r2) # define vfp_ldxr_d(r0,r1,r2) _vfp_ldxr_d(_jit,r0,r1,r2)
static void _vfp_ldxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _vfp_ldxr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define vfp_ldxi_f(r0,r1,i0) _vfp_ldxi_f(_jit,r0,r1,i0) # define vfp_ldxi_f(r0,r1,i0) _vfp_ldxi_f(_jit,r0,r1,i0)
static void _vfp_ldxi_f(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _vfp_ldxi_f(jit_state_t*,int32_t,int32_t,jit_word_t);
# define vfp_ldxi_d(r0,r1,i0) _vfp_ldxi_d(_jit,r0,r1,i0) # define vfp_ldxi_d(r0,r1,i0) _vfp_ldxi_d(_jit,r0,r1,i0)
static void _vfp_ldxi_d(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _vfp_ldxi_d(jit_state_t*,int32_t,int32_t,jit_word_t);
# define vfp_str_f(r0,r1) VSTR_F32(r1,r0,0) # define vfp_str_f(r0,r1) VSTR_F32(r1,r0,0)
# define vfp_str_d(r0,r1) VSTR_F64(r1,r0,0) # define vfp_str_d(r0,r1) VSTR_F64(r1,r0,0)
# define vfp_sti_f(i0,r0) _vfp_sti_f(_jit,i0,r0) # define vfp_sti_f(i0,r0) _vfp_sti_f(_jit,i0,r0)
@ -797,15 +797,15 @@ static void _vfp_sti_f(jit_state_t*,jit_word_t,int32_t);
# define vfp_sti_d(i0,r0) _vfp_sti_d(_jit,i0,r0) # define vfp_sti_d(i0,r0) _vfp_sti_d(_jit,i0,r0)
static void _vfp_sti_d(jit_state_t*,jit_word_t,int32_t); static void _vfp_sti_d(jit_state_t*,jit_word_t,int32_t);
# define vfp_stxr_f(r0,r1,r2) _vfp_stxr_f(_jit,r0,r1,r2) # define vfp_stxr_f(r0,r1,r2) _vfp_stxr_f(_jit,r0,r1,r2)
static void _vfp_stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _vfp_stxr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define vfp_stxr_d(r0,r1,r2) _vfp_stxr_d(_jit,r0,r1,r2) # define vfp_stxr_d(r0,r1,r2) _vfp_stxr_d(_jit,r0,r1,r2)
static void _vfp_stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _vfp_stxr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define vfp_stxi_f(i0,r0,r1) _vfp_stxi_f(_jit,i0,r0,r1) # define vfp_stxi_f(i0,r0,r1) _vfp_stxi_f(_jit,i0,r0,r1)
static void _vfp_stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _vfp_stxi_f(jit_state_t*,jit_word_t,int32_t,int32_t);
# define vfp_stxi_d(i0,r0,r1) _vfp_stxi_d(_jit,i0,r0,r1) # define vfp_stxi_d(i0,r0,r1) _vfp_stxi_d(_jit,i0,r0,r1)
static void _vfp_stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _vfp_stxi_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define vfp_vaarg_d(r0, r1) _vfp_vaarg_d(_jit, r0, r1) # define vfp_vaarg_d(r0, r1) _vfp_vaarg_d(_jit, r0, r1)
static void _vfp_vaarg_d(jit_state_t*, int32_t, jit_int32_t); static void _vfp_vaarg_d(jit_state_t*, int32_t, int32_t);
#endif #endif
#if CODE #if CODE
@ -1205,7 +1205,7 @@ _cc_vorsl(jit_state_t *_jit, int cc, int o, int r0, int r1, int i0)
} }
static void static void
_vfp_movr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vfp_movr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (r0 != r1) { if (r0 != r1) {
if (jit_fpr_p(r1)) { if (jit_fpr_p(r1)) {
@ -1222,7 +1222,7 @@ _vfp_movr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_vfp_movr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vfp_movr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (r0 != r1) { if (r0 != r1) {
if (jit_fpr_p(r1)) { if (jit_fpr_p(r1)) {
@ -1301,7 +1301,7 @@ _vfp_movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t i0)
} }
static void static void
_vfp_extr_d_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vfp_extr_d_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r1)) { if (jit_fpr_p(r1)) {
@ -1327,7 +1327,7 @@ _vfp_extr_d_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_vfp_extr_f_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vfp_extr_f_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r1)) { if (jit_fpr_p(r1)) {
@ -1353,7 +1353,7 @@ _vfp_extr_f_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_vfp_extr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vfp_extr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r0)) { if (jit_fpr_p(r0)) {
@ -1370,7 +1370,7 @@ _vfp_extr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_vfp_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vfp_extr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r0)) { if (jit_fpr_p(r0)) {
@ -1387,7 +1387,7 @@ _vfp_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_vfp_truncr_f_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vfp_truncr_f_i(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_fpr); reg = jit_get_reg(jit_class_fpr);
@ -1402,7 +1402,7 @@ _vfp_truncr_f_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_vfp_truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vfp_truncr_d_i(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_fpr); reg = jit_get_reg(jit_class_fpr);
@ -1419,7 +1419,7 @@ _vfp_truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
# define fopi(name) \ # define fopi(name) \
static void \ static void \
_vfp_##name##i_f(jit_state_t *_jit, \ _vfp_##name##i_f(jit_state_t *_jit, \
int32_t r0, jit_int32_t r1, jit_float32_t i0) \ int32_t r0, int32_t r1, jit_float32_t i0) \
{ \ { \
int32_t reg = jit_get_reg(jit_class_fpr); \ int32_t reg = jit_get_reg(jit_class_fpr); \
vfp_movi_f(rn(reg), i0); \ vfp_movi_f(rn(reg), i0); \
@ -1429,7 +1429,7 @@ _vfp_##name##i_f(jit_state_t *_jit, \
# define dopi(name) \ # define dopi(name) \
static void \ static void \
_vfp_##name##i_d(jit_state_t *_jit, \ _vfp_##name##i_d(jit_state_t *_jit, \
int32_t r0, jit_int32_t r1, jit_float64_t i0) \ int32_t r0, int32_t r1, jit_float64_t i0) \
{ \ { \
int32_t reg = jit_get_reg(jit_class_fpr); \ int32_t reg = jit_get_reg(jit_class_fpr); \
vfp_movi_d(rn(reg), i0); \ vfp_movi_d(rn(reg), i0); \
@ -1439,7 +1439,7 @@ _vfp_##name##i_d(jit_state_t *_jit, \
# define fbopi(name) \ # define fbopi(name) \
static jit_word_t \ static jit_word_t \
_vfp_b##name##i_f(jit_state_t *_jit, \ _vfp_b##name##i_f(jit_state_t *_jit, \
int32_t r0, jit_int32_t r1, jit_float32_t i0) \ int32_t r0, int32_t r1, jit_float32_t i0) \
{ \ { \
jit_word_t word; \ jit_word_t word; \
int32_t reg = jit_get_reg(jit_class_fpr| \ int32_t reg = jit_get_reg(jit_class_fpr| \
@ -1452,7 +1452,7 @@ _vfp_b##name##i_f(jit_state_t *_jit, \
# define dbopi(name) \ # define dbopi(name) \
static jit_word_t \ static jit_word_t \
_vfp_b##name##i_d(jit_state_t *_jit, \ _vfp_b##name##i_d(jit_state_t *_jit, \
int32_t r0, jit_int32_t r1, jit_float64_t i0) \ int32_t r0, int32_t r1, jit_float64_t i0) \
{ \ { \
jit_word_t word; \ jit_word_t word; \
int32_t reg = jit_get_reg(jit_class_fpr| \ int32_t reg = jit_get_reg(jit_class_fpr| \
@ -1475,7 +1475,7 @@ fopi(div)
dopi(div) dopi(div)
static void static void
_vfp_cmp_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vfp_cmp_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t rg0, rg1; int32_t rg0, rg1;
if (jit_fpr_p(r0)) { if (jit_fpr_p(r0)) {
@ -1504,7 +1504,7 @@ _vfp_cmp_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_vfp_cmp_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vfp_cmp_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t rg0, rg1; int32_t rg0, rg1;
if (jit_fpr_p(r0)) { if (jit_fpr_p(r0)) {
@ -1571,7 +1571,7 @@ _vcmp01_x(jit_state_t *_jit, int c0, int c1, int32_t r0)
static void static void
_vcmp01_f(jit_state_t *_jit, int c0, int c1, _vcmp01_f(jit_state_t *_jit, int c0, int c1,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
vfp_cmp_f(r1, r2); vfp_cmp_f(r1, r2);
vcmp01_x(c0, c1, r0); vcmp01_x(c0, c1, r0);
@ -1579,7 +1579,7 @@ _vcmp01_f(jit_state_t *_jit, int c0, int c1,
static void static void
_vcmp01_d(jit_state_t *_jit, int c0, int c1, _vcmp01_d(jit_state_t *_jit, int c0, int c1,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
vfp_cmp_d(r1, r2); vfp_cmp_d(r1, r2);
vcmp01_x(c0, c1, r0); vcmp01_x(c0, c1, r0);
@ -1610,7 +1610,7 @@ _vcmp10_x(jit_state_t *_jit, int cc, int32_t r0)
} }
static void static void
_vcmp_10_f(jit_state_t *_jit, int cc, _vcmp_10_f(jit_state_t *_jit, int cc,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
vfp_cmp_f(r1, r2); vfp_cmp_f(r1, r2);
vcmp10_x(cc, r0); vcmp10_x(cc, r0);
@ -1618,7 +1618,7 @@ _vcmp_10_f(jit_state_t *_jit, int cc,
static void static void
_vcmp_10_d(jit_state_t *_jit, int cc, _vcmp_10_d(jit_state_t *_jit, int cc,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
vfp_cmp_d(r1, r2); vfp_cmp_d(r1, r2);
vcmp10_x(cc, r0); vcmp10_x(cc, r0);
@ -1668,7 +1668,7 @@ _vfp_uneqr_x(jit_state_t *_jit, int32_t r0)
} }
static void static void
_vfp_uneqr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _vfp_uneqr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
vfp_cmp_f(r1, r2); vfp_cmp_f(r1, r2);
vfp_uneqr_x(r0); vfp_uneqr_x(r0);
@ -1677,7 +1677,7 @@ _vfp_uneqr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
fopi(uneq) fopi(uneq)
static void static void
_vfp_uneqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _vfp_uneqr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
vfp_cmp_d(r1, r2); vfp_cmp_d(r1, r2);
vfp_uneqr_x(r0); vfp_uneqr_x(r0);
@ -1711,7 +1711,7 @@ _vcmp_01_x(jit_state_t *_jit, int cc, int32_t r0)
static void static void
_vcmp_01_f(jit_state_t *_jit, int cc, _vcmp_01_f(jit_state_t *_jit, int cc,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
vfp_cmp_f(r1, r2); vfp_cmp_f(r1, r2);
vcmp_01_x(cc, r0); vcmp_01_x(cc, r0);
@ -1719,7 +1719,7 @@ _vcmp_01_f(jit_state_t *_jit, int cc,
static void static void
_vcmp_01_d(jit_state_t *_jit, int cc, _vcmp_01_d(jit_state_t *_jit, int cc,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
vfp_cmp_d(r1, r2); vfp_cmp_d(r1, r2);
vcmp_01_x(cc, r0); vcmp_01_x(cc, r0);
@ -1757,7 +1757,7 @@ _vfp_ltgtr_x(jit_state_t *_jit, int32_t r0)
} }
static void static void
_vfp_ltgtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _vfp_ltgtr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
vfp_cmp_f(r1, r2); vfp_cmp_f(r1, r2);
vfp_ltgtr_x(r0); vfp_ltgtr_x(r0);
@ -1766,7 +1766,7 @@ _vfp_ltgtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
fopi(ltgt) fopi(ltgt)
static void static void
_vfp_ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _vfp_ltgtr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
vfp_cmp_d(r1, r2); vfp_cmp_d(r1, r2);
vfp_ltgtr_x(r0); vfp_ltgtr_x(r0);
@ -1775,7 +1775,7 @@ _vfp_ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
dopi(ltgt) dopi(ltgt)
static void static void
_vfp_ordr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _vfp_ordr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
vfp_cmp_f(r1, r2); vfp_cmp_f(r1, r2);
vcmp10_x(ARM_CC_VS, r0); vcmp10_x(ARM_CC_VS, r0);
@ -1784,7 +1784,7 @@ _vfp_ordr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
fopi(ord) fopi(ord)
static void static void
_vfp_ordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _vfp_ordr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
vfp_cmp_d(r1, r2); vfp_cmp_d(r1, r2);
vcmp10_x(ARM_CC_VS, r0); vcmp10_x(ARM_CC_VS, r0);
@ -1793,7 +1793,7 @@ _vfp_ordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
dopi(ord) dopi(ord)
static void static void
_vfp_unordr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _vfp_unordr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
vfp_cmp_f(r1, r2); vfp_cmp_f(r1, r2);
vcmp_01_x(ARM_CC_VS, r0); vcmp_01_x(ARM_CC_VS, r0);
@ -1802,7 +1802,7 @@ _vfp_unordr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
fopi(unord) fopi(unord)
static void static void
_vfp_unordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _vfp_unordr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
vfp_cmp_d(r1, r2); vfp_cmp_d(r1, r2);
vcmp_01_x(ARM_CC_VS, r0); vcmp_01_x(ARM_CC_VS, r0);
@ -1832,7 +1832,7 @@ _vbcmp_x(jit_state_t *_jit, int cc, jit_word_t i0)
static jit_word_t static jit_word_t
_vbcmp_f(jit_state_t *_jit, int cc, _vbcmp_f(jit_state_t *_jit, int cc,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
vfp_cmp_f(r0, r1); vfp_cmp_f(r0, r1);
return (vbcmp_x(cc, i0)); return (vbcmp_x(cc, i0));
@ -1840,7 +1840,7 @@ _vbcmp_f(jit_state_t *_jit, int cc,
static jit_word_t static jit_word_t
_vbcmp_d(jit_state_t *_jit, int cc, _vbcmp_d(jit_state_t *_jit, int cc,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
vfp_cmp_d(r0, r1); vfp_cmp_d(r0, r1);
return (vbcmp_x(cc, i0)); return (vbcmp_x(cc, i0));
@ -1872,7 +1872,7 @@ _vbncmp_x(jit_state_t *_jit, int cc, jit_word_t i0)
static jit_word_t static jit_word_t
_vbncmp_f(jit_state_t *_jit, int cc, _vbncmp_f(jit_state_t *_jit, int cc,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
vfp_cmp_f(r0, r1); vfp_cmp_f(r0, r1);
return (vbncmp_x(cc, i0)); return (vbncmp_x(cc, i0));
@ -1880,7 +1880,7 @@ _vbncmp_f(jit_state_t *_jit, int cc,
static jit_word_t static jit_word_t
_vbncmp_d(jit_state_t *_jit, int cc, _vbncmp_d(jit_state_t *_jit, int cc,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
vfp_cmp_d(r0, r1); vfp_cmp_d(r0, r1);
return (vbncmp_x(cc, i0)); return (vbncmp_x(cc, i0));
@ -1934,7 +1934,7 @@ _vfp_buneqr_x(jit_state_t *_jit, jit_word_t i0)
} }
static jit_word_t static jit_word_t
_vfp_buneqr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _vfp_buneqr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
vfp_cmp_f(r0, r1); vfp_cmp_f(r0, r1);
return (vfp_buneqr_x(i0)); return (vfp_buneqr_x(i0));
@ -1943,7 +1943,7 @@ _vfp_buneqr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
fbopi(uneq) fbopi(uneq)
static jit_word_t static jit_word_t
_vfp_buneqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _vfp_buneqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
vfp_cmp_d(r0, r1); vfp_cmp_d(r0, r1);
return (vfp_buneqr_x(i0)); return (vfp_buneqr_x(i0));
@ -1976,7 +1976,7 @@ _vfp_bunger_x(jit_state_t *_jit, jit_word_t i0)
} }
static jit_word_t static jit_word_t
_vfp_bunger_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _vfp_bunger_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
vfp_cmp_f(r0, r1); vfp_cmp_f(r0, r1);
return (vfp_bunger_x(i0)); return (vfp_bunger_x(i0));
@ -1985,7 +1985,7 @@ _vfp_bunger_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
fbopi(unge) fbopi(unge)
static jit_word_t static jit_word_t
_vfp_bunger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _vfp_bunger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
vfp_cmp_d(r0, r1); vfp_cmp_d(r0, r1);
return (vfp_bunger_x(i0)); return (vfp_bunger_x(i0));
@ -2023,7 +2023,7 @@ _vfp_bltgtr_x(jit_state_t *_jit, jit_word_t i0)
} }
static jit_word_t static jit_word_t
_vfp_bltgtr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _vfp_bltgtr_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
vfp_cmp_f(r0, r1); vfp_cmp_f(r0, r1);
return (vfp_bltgtr_x(i0)); return (vfp_bltgtr_x(i0));
@ -2034,7 +2034,7 @@ dbopi(ungt)
fbopi(ltgt) fbopi(ltgt)
static jit_word_t static jit_word_t
_vfp_bltgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _vfp_bltgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
vfp_cmp_d(r0, r1); vfp_cmp_d(r0, r1);
return (vfp_bltgtr_x(i0)); return (vfp_bltgtr_x(i0));
@ -2076,7 +2076,7 @@ _vfp_ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_vfp_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _vfp_ldxr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r0)) { if (jit_fpr_p(r0)) {
@ -2090,7 +2090,7 @@ _vfp_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_vfp_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _vfp_ldxr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -2105,7 +2105,7 @@ _vfp_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_vfp_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _vfp_ldxi_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r0)) { if (jit_fpr_p(r0)) {
@ -2138,7 +2138,7 @@ _vfp_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_vfp_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _vfp_ldxi_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r0)) { if (jit_fpr_p(r0)) {
@ -2205,7 +2205,7 @@ _vfp_sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0)
} }
static void static void
_vfp_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _vfp_stxr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r2)) { if (jit_fpr_p(r2)) {
@ -2219,7 +2219,7 @@ _vfp_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_vfp_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _vfp_stxr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -2234,7 +2234,7 @@ _vfp_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_vfp_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _vfp_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r1)) { if (jit_fpr_p(r1)) {
@ -2267,7 +2267,7 @@ _vfp_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_vfp_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _vfp_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (jit_fpr_p(r1)) { if (jit_fpr_p(r1)) {
@ -2305,7 +2305,7 @@ _vfp_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_vfp_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vfp_vaarg_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;

View file

@ -293,7 +293,7 @@ _jit_allocai(jit_state_t *_jit, int32_t length)
} }
void void
_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) _jit_allocar(jit_state_t *_jit, int32_t u, int32_t v)
{ {
int32_t reg; int32_t reg;
assert(_jitc->function); assert(_jitc->function);
@ -2016,19 +2016,19 @@ jit_flush(void *fptr, void *tptr)
} }
void void
_emit_ldxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _emit_ldxi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
ldxi_i(rn(r0), rn(r1), i0); ldxi_i(rn(r0), rn(r1), i0);
} }
void void
_emit_stxi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _emit_stxi(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
stxi_i(i0, rn(r0), rn(r1)); stxi_i(i0, rn(r0), rn(r1));
} }
void void
_emit_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _emit_ldxi_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
if (jit_swf_p()) if (jit_swf_p())
swf_ldxi_d(rn(r0), rn(r1), i0); swf_ldxi_d(rn(r0), rn(r1), i0);
@ -2037,7 +2037,7 @@ _emit_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
void void
_emit_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _emit_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
if (jit_swf_p()) if (jit_swf_p())
swf_stxi_d(i0, rn(r0), rn(r1)); swf_stxi_d(i0, rn(r0), rn(r1));

File diff suppressed because it is too large Load diff

View file

@ -28,44 +28,44 @@
#endif #endif
#define f39(o,b,x,t) _f39(_jit,o,b,x,t) #define f39(o,b,x,t) _f39(_jit,o,b,x,t)
static void _f39(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); static void _f39(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_int32_t);
#define f40(o,b,x,r) _f40(_jit,o,b,x,r) #define f40(o,b,x,r) _f40(_jit,o,b,x,r)
static void _f40(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t) static void _f40(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_int32_t)
maybe_unused; maybe_unused;
#define f41(o,b,x,t) _f41(_jit,o,b,x,t) #define f41(o,b,x,t) _f41(_jit,o,b,x,t)
static void _f41(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); static void _f41(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_int32_t);
#define f42(o,b,i,r) _f42(_jit,o,b,i,r) #define f42(o,b,i,r) _f42(_jit,o,b,i,r)
static void _f42(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); static void _f42(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_int32_t);
#define f43(o,b,t,i) f1(o,b,t,i) #define f43(o,b,t,i) f1(o,b,t,i)
#define f45(o,r,a,b,fmt,c,d,e,t) _f45(_jit,o,r,a,b,fmt,c,d,e,t) #define f45(o,r,a,b,fmt,c,d,e,t) _f45(_jit,o,r,a,b,fmt,c,d,e,t)
static void _f45(jit_state_t*,int32_t, static void _f45(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_int32_t,jit_int32_t, int32_t,int32_t,jit_int32_t,jit_int32_t,
int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; int32_t,int32_t,jit_int32_t,jit_int32_t) maybe_unused;
#define f46(o,r,a,s,df,sf,b,c,d,t) _f46(_jit,o,r,a,s,df,sf,b,c,d,t) #define f46(o,r,a,s,df,sf,b,c,d,t) _f46(_jit,o,r,a,s,df,sf,b,c,d,t)
static void _f46(jit_state_t*,int32_t,jit_int32_t, static void _f46(jit_state_t*,int32_t,int32_t,
int32_t,jit_int32_t,jit_int32_t,jit_int32_t, int32_t,int32_t,jit_int32_t,jit_int32_t,
int32_t,jit_int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t,jit_int32_t);
#define f47(o,r1,r2,a,fmt,b,c,d,t) f47_48(o,r1,r2,a,fmt,b,c,d,t) #define f47(o,r1,r2,a,fmt,b,c,d,t) f47_48(o,r1,r2,a,fmt,b,c,d,t)
#define f48(o,r1,r2,a,fmt,b,c,d,t) f47_48(o,r1,r2,a,fmt,b,c,d,t) #define f48(o,r1,r2,a,fmt,b,c,d,t) f47_48(o,r1,r2,a,fmt,b,c,d,t)
#define f47_48(o,r1,r2,y,fmt,b,c,d,t) _f47_48(_jit,o,r1,r2,y,fmt,b,c,d,t) #define f47_48(o,r1,r2,y,fmt,b,c,d,t) _f47_48(_jit,o,r1,r2,y,fmt,b,c,d,t)
static void _f47_48(jit_state_t*,int32_t, static void _f47_48(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_int32_t,jit_int32_t, int32_t,int32_t,jit_int32_t,jit_int32_t,
int32_t,jit_int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t,jit_int32_t);
#define f49(o,r,a,b,c,f,d,e,g,h,i,t) f49_52(o,r,a,b,c,f,d,e,g,h,i,t) #define f49(o,r,a,b,c,f,d,e,g,h,i,t) f49_52(o,r,a,b,c,f,d,e,g,h,i,t)
#define f51(o,r1,r2,y,a,f,b,d,e,g,h,c) f49_52(o,r1,r2,y,a,f,b,d,e,g,h,c) #define f51(o,r1,r2,y,a,f,b,d,e,g,h,c) f49_52(o,r1,r2,y,a,f,b,d,e,g,h,c)
#define f52(o,r1,r2,a,b,f,c,d,e,g,h,t) f49_52(o,r1,r2,a,b,f,c,d,e,g,h,t) #define f52(o,r1,r2,a,b,f,c,d,e,g,h,t) f49_52(o,r1,r2,a,b,f,c,d,e,g,h,t)
#define f49_52(o,r1,r2,y,v,f,a,b,u,c,d,t) _f49_52(_jit,o,r1,r2,y,v,f,a,b,u,c,d,t) #define f49_52(o,r1,r2,y,v,f,a,b,u,c,d,t) _f49_52(_jit,o,r1,r2,y,v,f,a,b,u,c,d,t)
static void _f49_52(jit_state_t*,int32_t, static void _f49_52(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_int32_t, int32_t,int32_t,jit_int32_t,
int32_t,jit_int32_t,jit_int32_t,jit_int32_t, int32_t,int32_t,jit_int32_t,jit_int32_t,
int32_t,jit_int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t,jit_int32_t);
#define f53(o,r1,r2,ta,ra,f,tm) _f53(_jit,o,r1,r2,ta,ra,f,tm) #define f53(o,r1,r2,ta,ra,f,tm) _f53(_jit,o,r1,r2,ta,ra,f,tm)
static void _f53(jit_state_t*,int32_t,jit_int32_t,jit_int32_t, static void _f53(jit_state_t*,int32_t,int32_t,jit_int32_t,
int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; int32_t,int32_t,jit_int32_t,jit_int32_t) maybe_unused;
#define f54(o,r1,r2,a,b,f,c,d,e,g,t) _f54(_jit,o,r1,r2,a,b,f,c,d,e,g,t) #define f54(o,r1,r2,a,b,f,c,d,e,g,t) _f54(_jit,o,r1,r2,a,b,f,c,d,e,g,t)
static void _f54(jit_state_t*,int32_t,jit_int32_t,jit_int32_t, static void _f54(jit_state_t*,int32_t,int32_t,jit_int32_t,
int32_t,jit_int32_t,jit_int32_t,jit_int32_t, int32_t,int32_t,jit_int32_t,jit_int32_t,
int32_t,jit_int32_t,jit_int32_t,jit_int32_t) maybe_unused; int32_t,int32_t,jit_int32_t,jit_int32_t) maybe_unused;
#define FABS_(f,r,t) f49(0xe,r,0,3,0,f,0,0,0,0,0,t) #define FABS_(f,r,t) f49(0xe,r,0,3,0,f,0,0,0,0,0,t)
#define FABS_S(r,t) FABS_(0,r,t) #define FABS_S(r,t) FABS_(0,r,t)
#define FABS_D(r,t) FABS_(1,r,t) #define FABS_D(r,t) FABS_(1,r,t)
@ -271,17 +271,17 @@ static void _f54(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,
#define sqrtr_f(r0,r1) FSQRT_S(r1,r0) #define sqrtr_f(r0,r1) FSQRT_S(r1,r0)
#define sqrtr_d(r0,r1) FSQRT_D(r1,r0) #define sqrtr_d(r0,r1) FSQRT_D(r1,r0)
#define extr_f(r0,r1) _extr_f(_jit,r0,r1) #define extr_f(r0,r1) _extr_f(_jit,r0,r1)
static void _extr_f(jit_state_t*,int32_t,jit_int32_t); static void _extr_f(jit_state_t*,int32_t,int32_t);
#define extr_d(r0,r1) _extr_d(_jit,r0,r1) #define extr_d(r0,r1) _extr_d(_jit,r0,r1)
static void _extr_d(jit_state_t*,int32_t,jit_int32_t); static void _extr_d(jit_state_t*,int32_t,int32_t);
#define extr_f_d(r0,r1) FCNVFF_S_D(r1,r0) #define extr_f_d(r0,r1) FCNVFF_S_D(r1,r0)
#define extr_d_f(r0,r1) FCNVFF_D_S(r1,r0) #define extr_d_f(r0,r1) FCNVFF_D_S(r1,r0)
#define truncr_f(r0,r1) truncr_f_i(r0,r1) #define truncr_f(r0,r1) truncr_f_i(r0,r1)
#define truncr_f_i(r0,r1) _truncr_f_i(_jit,r0,r1) #define truncr_f_i(r0,r1) _truncr_f_i(_jit,r0,r1)
static void _truncr_f_i(jit_state_t*,int32_t,jit_int32_t); static void _truncr_f_i(jit_state_t*,int32_t,int32_t);
#define truncr_d(r0,r1) truncr_d_i(r0,r1) #define truncr_d(r0,r1) truncr_d_i(r0,r1)
#define truncr_d_i(r0,r1) _truncr_d_i(_jit,r0,r1) #define truncr_d_i(r0,r1) _truncr_d_i(_jit,r0,r1)
static void _truncr_d_i(jit_state_t*,int32_t,jit_int32_t); static void _truncr_d_i(jit_state_t*,int32_t,int32_t);
#define movr_f(r0,r1) FCPY_S(r1,r0) #define movr_f(r0,r1) FCPY_S(r1,r0)
#define movi_f(r0,i0) _movi_f(_jit,r0,i0) #define movi_f(r0,i0) _movi_f(_jit,r0,i0)
static void _movi_f(jit_state_t*,int32_t,jit_float32_t*); static void _movi_f(jit_state_t*,int32_t,jit_float32_t*);
@ -292,46 +292,46 @@ static void _movi_d(jit_state_t*,int32_t,jit_float64_t*);
#define absr_d(r0,r1) FABS_D(r1,r0) #define absr_d(r0,r1) FABS_D(r1,r0)
#define addr_f(r0,r1,r2) FADD_S(r1,r2,r0) #define addr_f(r0,r1,r2) FADD_S(r1,r2,r0)
#define addi_f(r0,r1,i0) _addi_f(_jit,r0,r1,i0) #define addi_f(r0,r1,i0) _addi_f(_jit,r0,r1,i0)
static void _addi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _addi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define addr_d(r0,r1,r2) FADD_D(r1,r2,r0) #define addr_d(r0,r1,r2) FADD_D(r1,r2,r0)
#define addi_d(r0,r1,i0) _addi_d(_jit,r0,r1,i0) #define addi_d(r0,r1,i0) _addi_d(_jit,r0,r1,i0)
static void _addi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _addi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define subr_f(r0,r1,r2) FSUB_S(r1,r2,r0) #define subr_f(r0,r1,r2) FSUB_S(r1,r2,r0)
#define subi_f(r0,r1,i0) _subi_f(_jit,r0,r1,i0) #define subi_f(r0,r1,i0) _subi_f(_jit,r0,r1,i0)
static void _subi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _subi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define subr_d(r0,r1,r2) FSUB_D(r1,r2,r0) #define subr_d(r0,r1,r2) FSUB_D(r1,r2,r0)
#define subi_d(r0,r1,i0) _subi_d(_jit,r0,r1,i0) #define subi_d(r0,r1,i0) _subi_d(_jit,r0,r1,i0)
static void _subi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _subi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define rsbr_f(r0,r1,r2) subr_f(r0,r2,r1) #define rsbr_f(r0,r1,r2) subr_f(r0,r2,r1)
#define rsbi_f(r0,r1,i0) _rsbi_f(_jit,r0,r1,i0) #define rsbi_f(r0,r1,i0) _rsbi_f(_jit,r0,r1,i0)
static void _rsbi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _rsbi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define rsbr_d(r0,r1,r2) subr_d(r0,r2,r1) #define rsbr_d(r0,r1,r2) subr_d(r0,r2,r1)
#define rsbi_d(r0,r1,i0) _rsbi_d(_jit,r0,r1,i0) #define rsbi_d(r0,r1,i0) _rsbi_d(_jit,r0,r1,i0)
static void _rsbi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _rsbi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define mulr_f(r0,r1,r2) FMPY_S(r1,r2,r0) #define mulr_f(r0,r1,r2) FMPY_S(r1,r2,r0)
#define muli_f(r0,r1,i0) _muli_f(_jit,r0,r1,i0) #define muli_f(r0,r1,i0) _muli_f(_jit,r0,r1,i0)
static void _muli_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _muli_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define mulr_d(r0,r1,r2) FMPY_D(r1,r2,r0) #define mulr_d(r0,r1,r2) FMPY_D(r1,r2,r0)
#define muli_d(r0,r1,i0) _muli_d(_jit,r0,r1,i0) #define muli_d(r0,r1,i0) _muli_d(_jit,r0,r1,i0)
static void _muli_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _muli_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define divr_f(r0,r1,r2) FDIV_S(r1,r2,r0) #define divr_f(r0,r1,r2) FDIV_S(r1,r2,r0)
#define divi_f(r0,r1,i0) _divi_f(_jit,r0,r1,i0) #define divi_f(r0,r1,i0) _divi_f(_jit,r0,r1,i0)
static void _divi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _divi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define divr_d(r0,r1,r2) FDIV_D(r1,r2,r0) #define divr_d(r0,r1,r2) FDIV_D(r1,r2,r0)
#define divi_d(r0,r1,i0) _divi_d(_jit,r0,r1,i0) #define divi_d(r0,r1,i0) _divi_d(_jit,r0,r1,i0)
static void _divi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _divi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define cmpr_f(c,r0,r1,r2) _cmpr_f(_jit,c,r0,r1,r2) #define cmpr_f(c,r0,r1,r2) _cmpr_f(_jit,c,r0,r1,r2)
static void _cmpr_f(jit_state_t*,jit_word_t, static void _cmpr_f(jit_state_t*,jit_word_t,
int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t);
#define cmpi_f(c,r0,r1,i0) _cmpi_f(_jit,c,r0,r1,i0) #define cmpi_f(c,r0,r1,i0) _cmpi_f(_jit,c,r0,r1,i0)
static void _cmpi_f(jit_state_t*,jit_word_t, static void _cmpi_f(jit_state_t*,jit_word_t,
int32_t,jit_int32_t,jit_float32_t*); int32_t,int32_t,jit_float32_t*);
#define cmpr_d(c,r0,r1,r2) _cmpr_d(_jit,c,r0,r1,r2) #define cmpr_d(c,r0,r1,r2) _cmpr_d(_jit,c,r0,r1,r2)
static void _cmpr_d(jit_state_t*,jit_word_t, static void _cmpr_d(jit_state_t*,jit_word_t,
int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t);
#define cmpi_d(c,r0,r1,i0) _cmpi_d(_jit,c,r0,r1,i0) #define cmpi_d(c,r0,r1,i0) _cmpi_d(_jit,c,r0,r1,i0)
static void _cmpi_d(jit_state_t*,jit_word_t, static void _cmpi_d(jit_state_t*,jit_word_t,
int32_t,jit_int32_t,jit_float64_t*); int32_t,int32_t,jit_float64_t*);
#define ltr_f(r0,r1,r2) cmpr_f(FCMP_LT,r0,r1,r2) #define ltr_f(r0,r1,r2) cmpr_f(FCMP_LT,r0,r1,r2)
#define lti_f(r0,r1,i0) cmpi_f(FCMP_LT,r0,r1,i0) #define lti_f(r0,r1,i0) cmpi_f(FCMP_LT,r0,r1,i0)
#define ltr_d(r0,r1,r2) cmpr_d(FCMP_LT,r0,r1,r2) #define ltr_d(r0,r1,r2) cmpr_d(FCMP_LT,r0,r1,r2)
@ -393,13 +393,13 @@ static void _cmpi_d(jit_state_t*,jit_word_t,
static void _ldi_f(jit_state_t*,int32_t,jit_word_t); static void _ldi_f(jit_state_t*,int32_t,jit_word_t);
#define ldxr_f(r0,r1,r2) FLDW(r2,r1,r0) #define ldxr_f(r0,r1,r2) FLDW(r2,r1,r0)
#define ldxi_f(r0,r1,i0) _ldxi_f(_jit,r0,r1,i0) #define ldxi_f(r0,r1,i0) _ldxi_f(_jit,r0,r1,i0)
static void _ldxi_f(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_f(jit_state_t*,int32_t,int32_t,jit_word_t);
#define ldr_d(r0,r1) FLDDI(0,r1,r0) #define ldr_d(r0,r1) FLDDI(0,r1,r0)
#define ldi_d(r0,i0) _ldi_d(_jit,r0,i0) #define ldi_d(r0,i0) _ldi_d(_jit,r0,i0)
static void _ldi_d(jit_state_t*,int32_t,jit_word_t); static void _ldi_d(jit_state_t*,int32_t,jit_word_t);
#define ldxr_d(r0,r1,r2) FLDD(r2,r1,r0) #define ldxr_d(r0,r1,r2) FLDD(r2,r1,r0)
#define ldxi_d(r0,r1,i0) _ldxi_d(_jit,r0,r1,i0) #define ldxi_d(r0,r1,i0) _ldxi_d(_jit,r0,r1,i0)
static void _ldxi_d(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_d(jit_state_t*,int32_t,int32_t,jit_word_t);
#define str_f(r0,r1) FSTWI(r1,0,r0) #define str_f(r0,r1) FSTWI(r1,0,r0)
#define sti_f(i0,r0) _sti_f(_jit,i0,r0) #define sti_f(i0,r0) _sti_f(_jit,i0,r0)
static void _sti_f(jit_state_t*,jit_word_t,int32_t); static void _sti_f(jit_state_t*,jit_word_t,int32_t);
@ -408,26 +408,26 @@ static void _sti_f(jit_state_t*,jit_word_t,int32_t);
# define stxr_d(r0,r1,r2) FSTD(r2,r1,r0) # define stxr_d(r0,r1,r2) FSTD(r2,r1,r0)
#else #else
# define stxr_f(r0,r1,r2) _stxr_f(_jit,r0,r1,r2) # define stxr_f(r0,r1,r2) _stxr_f(_jit,r0,r1,r2)
static void _stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _stxr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define stxr_d(r0,r1,r2) _stxr_d(_jit,r0,r1,r2) # define stxr_d(r0,r1,r2) _stxr_d(_jit,r0,r1,r2)
static void _stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _stxr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
#endif #endif
#define stxi_f(i0,r0,r1) _stxi_f(_jit,i0,r0,r1) #define stxi_f(i0,r0,r1) _stxi_f(_jit,i0,r0,r1)
static void _stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_f(jit_state_t*,jit_word_t,int32_t,int32_t);
#define str_d(r0,r1) FSTDI(r1,0,r0) #define str_d(r0,r1) FSTDI(r1,0,r0)
#define sti_d(i0,r0) _sti_d(_jit,i0,r0) #define sti_d(i0,r0) _sti_d(_jit,i0,r0)
static void _sti_d(jit_state_t*,jit_word_t,int32_t); static void _sti_d(jit_state_t*,jit_word_t,int32_t);
#define stxi_d(i0,r0,r1) _stxi_d(_jit,i0,r0,r1) #define stxi_d(i0,r0,r1) _stxi_d(_jit,i0,r0,r1)
static void _stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_d(jit_state_t*,jit_word_t,int32_t,int32_t);
#define bcmpr_f(c,i0,r0,r1) _bcmpr_f(_jit,c,i0,r0,r1) #define bcmpr_f(c,i0,r0,r1) _bcmpr_f(_jit,c,i0,r0,r1)
static jit_word_t _bcmpr_f(jit_state_t*,jit_word_t, static jit_word_t _bcmpr_f(jit_state_t*,jit_word_t,
jit_word_t,int32_t,jit_int32_t); jit_word_t,int32_t,int32_t);
#define bcmpi_f(c,i0,r0,i1) _bcmpi_f(_jit,c,i0,r0,i1) #define bcmpi_f(c,i0,r0,i1) _bcmpi_f(_jit,c,i0,r0,i1)
static jit_word_t _bcmpi_f(jit_state_t*,jit_word_t, static jit_word_t _bcmpi_f(jit_state_t*,jit_word_t,
jit_word_t,int32_t,jit_float32_t*); jit_word_t,int32_t,jit_float32_t*);
#define bcmpr_d(c,i0,r0,r1) _bcmpr_d(_jit,c,i0,r0,r1) #define bcmpr_d(c,i0,r0,r1) _bcmpr_d(_jit,c,i0,r0,r1)
static jit_word_t _bcmpr_d(jit_state_t*,jit_word_t, static jit_word_t _bcmpr_d(jit_state_t*,jit_word_t,
jit_word_t,int32_t,jit_int32_t); jit_word_t,int32_t,int32_t);
#define bcmpi_d(c,i0,r0,i1) _bcmpi_d(_jit,c,i0,r0,i1) #define bcmpi_d(c,i0,r0,i1) _bcmpi_d(_jit,c,i0,r0,i1)
static jit_word_t _bcmpi_d(jit_state_t*,jit_word_t, static jit_word_t _bcmpi_d(jit_state_t*,jit_word_t,
jit_word_t,int32_t,jit_float64_t*); jit_word_t,int32_t,jit_float64_t*);
@ -488,13 +488,13 @@ static jit_word_t _bcmpi_d(jit_state_t*,jit_word_t,
#define bunordr_d(i0,r0,r1) bcmpr_d(FCMP_UNORD,i0,r0,r1) #define bunordr_d(i0,r0,r1) bcmpr_d(FCMP_UNORD,i0,r0,r1)
#define bunordi_d(i0,r0,i1) bcmpi_d(FCMP_UNORD,i0,r0,i1) #define bunordi_d(i0,r0,i1) bcmpi_d(FCMP_UNORD,i0,r0,i1)
#define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1) #define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1)
static void _vaarg_d(jit_state_t*, int32_t, jit_int32_t); static void _vaarg_d(jit_state_t*, int32_t, int32_t);
#endif #endif
#if CODE #if CODE
static void static void
_f39(jit_state_t *_jit, int32_t o, _f39(jit_state_t *_jit, int32_t o,
int32_t b, jit_int32_t x, jit_int32_t t) int32_t b, int32_t x, jit_int32_t t)
{ {
assert(!(o & ~0x3f)); assert(!(o & ~0x3f));
assert(!(b & ~0x1f)); assert(!(b & ~0x1f));
@ -505,7 +505,7 @@ _f39(jit_state_t *_jit, int32_t o,
static void static void
_f40(jit_state_t *_jit, int32_t o, _f40(jit_state_t *_jit, int32_t o,
int32_t b, jit_int32_t x, jit_int32_t r) int32_t b, int32_t x, jit_int32_t r)
{ {
assert(!(o & ~0x3f)); assert(!(o & ~0x3f));
assert(!(b & ~0x1f)); assert(!(b & ~0x1f));
@ -516,7 +516,7 @@ _f40(jit_state_t *_jit, int32_t o,
static void static void
_f41(jit_state_t *_jit, int32_t o, _f41(jit_state_t *_jit, int32_t o,
int32_t b, jit_int32_t x, jit_int32_t t) int32_t b, int32_t x, jit_int32_t t)
{ {
assert(!(o & ~0x3f)); assert(!(o & ~0x3f));
assert(!(b & ~0x1f)); assert(!(b & ~0x1f));
@ -527,7 +527,7 @@ _f41(jit_state_t *_jit, int32_t o,
static void static void
_f42(jit_state_t *_jit, int32_t o, _f42(jit_state_t *_jit, int32_t o,
int32_t b, jit_int32_t i, jit_int32_t r) int32_t b, int32_t i, jit_int32_t r)
{ {
assert(!(o & ~0x3f)); assert(!(o & ~0x3f));
assert(!(b & ~0x1f)); assert(!(b & ~0x1f));
@ -538,8 +538,8 @@ _f42(jit_state_t *_jit, int32_t o,
static void static void
_f45(jit_state_t *_jit, int32_t o, _f45(jit_state_t *_jit, int32_t o,
int32_t r, jit_int32_t a, jit_int32_t b, jit_int32_t fmt, int32_t r, int32_t a, jit_int32_t b, jit_int32_t fmt,
int32_t c, jit_int32_t d, jit_int32_t e, jit_int32_t t) int32_t c, int32_t d, jit_int32_t e, jit_int32_t t)
{ {
assert(!(o & ~0x3f)); assert(!(o & ~0x3f));
assert(!(r & ~0x1f)); assert(!(r & ~0x1f));
@ -554,9 +554,9 @@ _f45(jit_state_t *_jit, int32_t o,
} }
static void static void
_f46(jit_state_t *_jit, int32_t o, jit_int32_t r, _f46(jit_state_t *_jit, int32_t o, int32_t r,
int32_t a, jit_int32_t s, jit_int32_t df, jit_int32_t sf, int32_t a, int32_t s, jit_int32_t df, jit_int32_t sf,
int32_t b, jit_int32_t c, jit_int32_t d, jit_int32_t t) int32_t b, int32_t c, jit_int32_t d, jit_int32_t t)
{ {
assert(!(o & ~0x3f)); assert(!(o & ~0x3f));
assert(!(r & ~0x1f)); assert(!(r & ~0x1f));
@ -574,8 +574,8 @@ _f46(jit_state_t *_jit, int32_t o, jit_int32_t r,
static void static void
_f47_48(jit_state_t *_jit, int32_t o, _f47_48(jit_state_t *_jit, int32_t o,
int32_t r2, jit_int32_t r1, jit_int32_t y, jit_int32_t fmt, int32_t r2, int32_t r1, jit_int32_t y, jit_int32_t fmt,
int32_t a, jit_int32_t b, jit_int32_t c, jit_int32_t t) int32_t a, int32_t b, jit_int32_t c, jit_int32_t t)
{ {
assert(!(o & ~0x3f)); assert(!(o & ~0x3f));
assert(!(r2 & ~0x1f)); assert(!(r2 & ~0x1f));
@ -591,9 +591,9 @@ _f47_48(jit_state_t *_jit, int32_t o,
static void static void
_f49_52(jit_state_t *_jit, int32_t o, _f49_52(jit_state_t *_jit, int32_t o,
int32_t r1, jit_int32_t r2, jit_int32_t y, int32_t r1, int32_t r2, jit_int32_t y,
int32_t v, jit_int32_t f, jit_int32_t a, jit_int32_t b, int32_t v, int32_t f, jit_int32_t a, jit_int32_t b,
int32_t u, jit_int32_t c, jit_int32_t d, jit_int32_t t) int32_t u, int32_t c, jit_int32_t d, jit_int32_t t)
{ {
assert(!(o & ~0x3f)); assert(!(o & ~0x3f));
assert(!(r1 & ~0x1f)); assert(!(r1 & ~0x1f));
@ -612,8 +612,8 @@ _f49_52(jit_state_t *_jit, int32_t o,
} }
static void static void
_f53(jit_state_t *_jit, int32_t o, jit_int32_t r1, jit_int32_t r2, _f53(jit_state_t *_jit, int32_t o, int32_t r1, jit_int32_t r2,
int32_t ta, jit_int32_t ra, jit_int32_t f, jit_int32_t tm) int32_t ta, int32_t ra, jit_int32_t f, jit_int32_t tm)
{ {
assert(!(o & ~0x3f)); assert(!(o & ~0x3f));
assert(!(r1 & ~0x1f)); assert(!(r1 & ~0x1f));
@ -629,9 +629,9 @@ _f53(jit_state_t *_jit, int32_t o, jit_int32_t r1, jit_int32_t r2,
} }
static void static void
_f54(jit_state_t *_jit, int32_t o, jit_int32_t r1, jit_int32_t r2, _f54(jit_state_t *_jit, int32_t o, int32_t r1, jit_int32_t r2,
int32_t a, jit_int32_t b, jit_int32_t f, jit_int32_t c, int32_t a, int32_t b, jit_int32_t f, jit_int32_t c,
int32_t d, jit_int32_t e, jit_int32_t g, jit_int32_t t) int32_t d, int32_t e, jit_int32_t g, jit_int32_t t)
{ {
assert(!(o & ~0x3f)); assert(!(o & ~0x3f));
assert(!(r1 & ~0x1f)); assert(!(r1 & ~0x1f));
@ -649,7 +649,7 @@ _f54(jit_state_t *_jit, int32_t o, jit_int32_t r1, jit_int32_t r2,
} }
static void static void
_extr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
stxi(alloca_offset - 8, _FP_REGNO, r1); stxi(alloca_offset - 8, _FP_REGNO, r1);
ldxi_f(r0, _FP_REGNO, alloca_offset - 8); ldxi_f(r0, _FP_REGNO, alloca_offset - 8);
@ -657,7 +657,7 @@ _extr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
stxi(alloca_offset - 8, _FP_REGNO, r1); stxi(alloca_offset - 8, _FP_REGNO, r1);
ldxi_f(r0, _FP_REGNO, alloca_offset - 8); ldxi_f(r0, _FP_REGNO, alloca_offset - 8);
@ -665,7 +665,7 @@ _extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_truncr_f_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _truncr_f_i(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_fpr); reg = jit_get_reg(jit_class_fpr);
@ -676,7 +676,7 @@ _truncr_f_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _truncr_d_i(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_fpr); reg = jit_get_reg(jit_class_fpr);
@ -735,7 +735,7 @@ _movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t *i0)
#define fpr_opi(name, type, size) \ #define fpr_opi(name, type, size) \
static void \ static void \
_##name##i_##type(jit_state_t *_jit, \ _##name##i_##type(jit_state_t *_jit, \
int32_t r0, jit_int32_t r1, \ int32_t r0, int32_t r1, \
jit_float##size##_t *i0) \ jit_float##size##_t *i0) \
{ \ { \
int32_t reg = jit_get_reg(jit_class_fpr); \ int32_t reg = jit_get_reg(jit_class_fpr); \
@ -759,7 +759,7 @@ dopi(div)
static void static void
_cmpr_f(jit_state_t *_jit, jit_word_t c, _cmpr_f(jit_state_t *_jit, jit_word_t c,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
LDI(0, r0); LDI(0, r0);
FCMP_S_(r1, r2, c); FCMP_S_(r1, r2, c);
@ -769,7 +769,7 @@ _cmpr_f(jit_state_t *_jit, jit_word_t c,
static void static void
_cmpi_f(jit_state_t *_jit, jit_word_t c, _cmpi_f(jit_state_t *_jit, jit_word_t c,
int32_t r0, jit_int32_t r1, jit_float32_t *i0) int32_t r0, int32_t r1, jit_float32_t *i0)
{ {
int32_t reg = jit_get_reg(jit_class_fpr); int32_t reg = jit_get_reg(jit_class_fpr);
movi_f(rn(reg), i0); movi_f(rn(reg), i0);
@ -779,7 +779,7 @@ _cmpi_f(jit_state_t *_jit, jit_word_t c,
static void static void
_cmpr_d(jit_state_t *_jit, jit_word_t c, _cmpr_d(jit_state_t *_jit, jit_word_t c,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
LDI(0, r0); LDI(0, r0);
FCMP_D_(r1, r2, c); FCMP_D_(r1, r2, c);
@ -789,7 +789,7 @@ _cmpr_d(jit_state_t *_jit, jit_word_t c,
static void static void
_cmpi_d(jit_state_t *_jit, jit_word_t c, _cmpi_d(jit_state_t *_jit, jit_word_t c,
int32_t r0, jit_int32_t r1, jit_float64_t *i0) int32_t r0, int32_t r1, jit_float64_t *i0)
{ {
int32_t reg = jit_get_reg(jit_class_fpr); int32_t reg = jit_get_reg(jit_class_fpr);
movi_d(rn(reg), i0); movi_d(rn(reg), i0);
@ -813,7 +813,7 @@ _ldi_f(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (i0 >= -16 && i0 <= 15) if (i0 >= -16 && i0 <= 15)
@ -845,7 +845,7 @@ _ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (i0 >= -16 && i0 <= 15) if (i0 >= -16 && i0 <= 15)
@ -878,7 +878,7 @@ _sti_f(jit_state_t *_jit, jit_word_t i0, int32_t r0)
#if !FSTXR #if !FSTXR
static void static void
_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _stxr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -888,7 +888,7 @@ _stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _stxr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -899,7 +899,7 @@ _stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
#endif #endif
static void static void
_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (i0 >= -16 && i0 <= 15) if (i0 >= -16 && i0 <= 15)
@ -936,7 +936,7 @@ _sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0)
} }
static void static void
_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (i0 >= -16 && i0 <= 15) if (i0 >= -16 && i0 <= 15)
@ -959,7 +959,7 @@ _stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
static jit_word_t static jit_word_t
_bcmpr_f(jit_state_t *_jit, jit_word_t c, _bcmpr_f(jit_state_t *_jit, jit_word_t c,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
FCMP_S_(r0, r1, c); FCMP_S_(r0, r1, c);
@ -989,7 +989,7 @@ _bcmpi_f(jit_state_t *_jit, jit_word_t c,
static jit_word_t static jit_word_t
_bcmpr_d(jit_state_t *_jit, jit_word_t c, _bcmpr_d(jit_state_t *_jit, jit_word_t c,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
FCMP_D_(r0, r1, c); FCMP_D_(r0, r1, c);
@ -1018,7 +1018,7 @@ _bcmpi_d(jit_state_t *_jit, jit_word_t c,
} }
static void static void
_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vaarg_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;

View file

@ -17,9 +17,6 @@
* Paulo Cesar Pereira de Andrade * Paulo Cesar Pereira de Andrade
*/ */
#include "jit.h"
#include "jit/jit_private.h"
#define jit_arg_reg_p(i) (i >= 0 && i < 4) #define jit_arg_reg_p(i) (i >= 0 && i < 4)
#define PROTO 1 #define PROTO 1
@ -208,7 +205,7 @@ _jit_allocai(jit_state_t *_jit, int32_t length)
} }
void void
_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) _jit_allocar(jit_state_t *_jit, int32_t u, int32_t v)
{ {
int32_t reg; int32_t reg;
assert(_jitc->function); assert(_jitc->function);

File diff suppressed because it is too large Load diff

View file

@ -436,13 +436,13 @@ static void _movi_f(jit_state_t*,int32_t,jit_float32_t*);
#define movi_d(r0,i0) _movi_d(_jit,r0,i0) #define movi_d(r0,i0) _movi_d(_jit,r0,i0)
static void _movi_d(jit_state_t*,int32_t,jit_float64_t*); static void _movi_d(jit_state_t*,int32_t,jit_float64_t*);
#define movr_w_f(r0,r1) _movr_w_f(_jit,r0,r1) #define movr_w_f(r0,r1) _movr_w_f(_jit,r0,r1)
static void _movr_w_f(jit_state_t*,int32_t,jit_int32_t); static void _movr_w_f(jit_state_t*,int32_t,int32_t);
#define movr_f_w(r0,r1) _movr_f_w(_jit,r0,r1) #define movr_f_w(r0,r1) _movr_f_w(_jit,r0,r1)
static void _movr_f_w(jit_state_t*,int32_t,jit_int32_t); static void _movr_f_w(jit_state_t*,int32_t,int32_t);
#define movr_w_d(r0,r1) _movr_w_d(_jit,r0,r1) #define movr_w_d(r0,r1) _movr_w_d(_jit,r0,r1)
static void _movr_w_d(jit_state_t*,int32_t,jit_int32_t); static void _movr_w_d(jit_state_t*,int32_t,int32_t);
#define movr_d_w(r0,r1) _movr_d_w(_jit,r0,r1) #define movr_d_w(r0,r1) _movr_d_w(_jit,r0,r1)
static void _movr_d_w(jit_state_t*,int32_t,jit_int32_t); static void _movr_d_w(jit_state_t*,int32_t,int32_t);
#define movi_f_w(r0,i0) _movi_f_w(_jit,r0,i0) #define movi_f_w(r0,i0) _movi_f_w(_jit,r0,i0)
static void _movi_f_w(jit_state_t*,int32_t,jit_float32_t*); static void _movi_f_w(jit_state_t*,int32_t,jit_float32_t*);
#define movi_d_w(r0,i0) _movi_d_w(_jit,r0,i0) #define movi_d_w(r0,i0) _movi_d_w(_jit,r0,i0)
@ -452,278 +452,278 @@ static void _movi_d_w(jit_state_t*,int32_t,jit_float64_t*);
#define negr_f(r0,r1) negr_d(r0,r1) #define negr_f(r0,r1) negr_d(r0,r1)
#define negr_d(r0,r1) FNEG(r0,r1) #define negr_d(r0,r1) FNEG(r0,r1)
#define sqrtr_f(r0,r1) _sqrtr_f(_jit,r0,r1) #define sqrtr_f(r0,r1) _sqrtr_f(_jit,r0,r1)
static void _sqrtr_f(jit_state_t*,int32_t,jit_int32_t); static void _sqrtr_f(jit_state_t*,int32_t,int32_t);
#define sqrtr_d(r0,r1) _sqrtr_d(_jit,r0,r1) #define sqrtr_d(r0,r1) _sqrtr_d(_jit,r0,r1)
static void _sqrtr_d(jit_state_t*,int32_t,jit_int32_t); static void _sqrtr_d(jit_state_t*,int32_t,int32_t);
#define extr_f_d(r0,r1) FNORM_D(r0,r1) #define extr_f_d(r0,r1) FNORM_D(r0,r1)
#define extr_d_f(r0,r1) FNORM_S(r0,r1) #define extr_d_f(r0,r1) FNORM_S(r0,r1)
#define extr_f(r0,r1) _extr_f(_jit,r0,r1) #define extr_f(r0,r1) _extr_f(_jit,r0,r1)
static void _extr_f(jit_state_t*,int32_t,jit_int32_t); static void _extr_f(jit_state_t*,int32_t,int32_t);
#define extr_d(r0,r1) _extr_d(_jit,r0,r1) #define extr_d(r0,r1) _extr_d(_jit,r0,r1)
static void _extr_d(jit_state_t*,int32_t,jit_int32_t); static void _extr_d(jit_state_t*,int32_t,int32_t);
#define truncr_f_i(r0,r1) truncr_d_l(r0,r1) #define truncr_f_i(r0,r1) truncr_d_l(r0,r1)
#define truncr_d_i(r0,r1) truncr_d_l(r0,r1) #define truncr_d_i(r0,r1) truncr_d_l(r0,r1)
#define truncr_f_l(r0,r1) truncr_d_l(r0,r1) #define truncr_f_l(r0,r1) truncr_d_l(r0,r1)
#define truncr_d_l(r0,r1) _truncr_d_l(_jit,r0,r1) #define truncr_d_l(r0,r1) _truncr_d_l(_jit,r0,r1)
static void _truncr_d_l(jit_state_t*,int32_t,jit_int32_t); static void _truncr_d_l(jit_state_t*,int32_t,int32_t);
#define addr_f(r0,r1,r2) FADD_S(r0,r1,r2) #define addr_f(r0,r1,r2) FADD_S(r0,r1,r2)
#define addi_f(r0,r1,i0) _addi_f(_jit,r0,r1,i0) #define addi_f(r0,r1,i0) _addi_f(_jit,r0,r1,i0)
static void _addi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _addi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define addr_d(r0,r1,r2) FADD_D(r0,r1,r2) #define addr_d(r0,r1,r2) FADD_D(r0,r1,r2)
#define addi_d(r0,r1,i0) _addi_d(_jit,r0,r1,i0) #define addi_d(r0,r1,i0) _addi_d(_jit,r0,r1,i0)
static void _addi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _addi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define subr_f(r0,r1,r2) FSUB_S(r0,r1,r2) #define subr_f(r0,r1,r2) FSUB_S(r0,r1,r2)
#define subi_f(r0,r1,i0) _subi_f(_jit,r0,r1,i0) #define subi_f(r0,r1,i0) _subi_f(_jit,r0,r1,i0)
static void _subi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _subi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define subr_d(r0,r1,r2) FSUB_D(r0,r1,r2) #define subr_d(r0,r1,r2) FSUB_D(r0,r1,r2)
#define subi_d(r0,r1,i0) _subi_d(_jit,r0,r1,i0) #define subi_d(r0,r1,i0) _subi_d(_jit,r0,r1,i0)
static void _subi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _subi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define rsbr_f(r0,r1,r2) subr_f(r0,r2,r1) #define rsbr_f(r0,r1,r2) subr_f(r0,r2,r1)
#define rsbi_f(r0,r1,i0) _rsbi_f(_jit,r0,r1,i0) #define rsbi_f(r0,r1,i0) _rsbi_f(_jit,r0,r1,i0)
static void _rsbi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _rsbi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define rsbr_d(r0,r1,r2) subr_d(r0,r2,r1) #define rsbr_d(r0,r1,r2) subr_d(r0,r2,r1)
#define rsbi_d(r0,r1,i0) _rsbi_d(_jit,r0,r1,i0) #define rsbi_d(r0,r1,i0) _rsbi_d(_jit,r0,r1,i0)
static void _rsbi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _rsbi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define mulr_f(r0,r1,r2) FMPY_S(r0,r1,r2) #define mulr_f(r0,r1,r2) FMPY_S(r0,r1,r2)
#define muli_f(r0,r1,i0) _muli_f(_jit,r0,r1,i0) #define muli_f(r0,r1,i0) _muli_f(_jit,r0,r1,i0)
static void _muli_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _muli_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define mulr_d(r0,r1,r2) FMPY_D(r0,r1,r2) #define mulr_d(r0,r1,r2) FMPY_D(r0,r1,r2)
#define muli_d(r0,r1,i0) _muli_d(_jit,r0,r1,i0) #define muli_d(r0,r1,i0) _muli_d(_jit,r0,r1,i0)
static void _muli_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _muli_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define divr_f(r0,r1,r2) _divr_f(_jit,r0,r1,r2) #define divr_f(r0,r1,r2) _divr_f(_jit,r0,r1,r2)
static void _divr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _divr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define divi_f(r0,r1,i0) _divi_f(_jit,r0,r1,i0) #define divi_f(r0,r1,i0) _divi_f(_jit,r0,r1,i0)
static void _divi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _divi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define divr_d(r0,r1,r2) _divr_d(_jit,r0,r1,r2) #define divr_d(r0,r1,r2) _divr_d(_jit,r0,r1,r2)
static void _divr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _divr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define divi_d(r0,r1,i0) _divi_d(_jit,r0,r1,i0) #define divi_d(r0,r1,i0) _divi_d(_jit,r0,r1,i0)
static void _divi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _divi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define ltr_f(r0,r1,r2) ltr_d(r0,r1,r2) #define ltr_f(r0,r1,r2) ltr_d(r0,r1,r2)
#define ltr_d(r0,r1,r2) _ltr_d(_jit,r0,r1,r2) #define ltr_d(r0,r1,r2) _ltr_d(_jit,r0,r1,r2)
static void _ltr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ltr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define lti_f(r0,r1,i0) _lti_f(_jit,r0,r1,i0) #define lti_f(r0,r1,i0) _lti_f(_jit,r0,r1,i0)
static void _lti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _lti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define lti_d(r0,r1,i0) _lti_d(_jit,r0,r1,i0) #define lti_d(r0,r1,i0) _lti_d(_jit,r0,r1,i0)
static void _lti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _lti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define ler_f(r0,r1,r2) ler_d(r0,r1,r2) #define ler_f(r0,r1,r2) ler_d(r0,r1,r2)
#define ler_d(r0,r1,r2) _ler_d(_jit,r0,r1,r2) #define ler_d(r0,r1,r2) _ler_d(_jit,r0,r1,r2)
static void _ler_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ler_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define lei_f(r0,r1,i0) _lei_f(_jit,r0,r1,i0) #define lei_f(r0,r1,i0) _lei_f(_jit,r0,r1,i0)
static void _lei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _lei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define lei_d(r0,r1,i0) _lei_d(_jit,r0,r1,i0) #define lei_d(r0,r1,i0) _lei_d(_jit,r0,r1,i0)
static void _lei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _lei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define eqr_f(r0,r1,r2) eqr_d(r0,r1,r2) #define eqr_f(r0,r1,r2) eqr_d(r0,r1,r2)
#define eqr_d(r0,r1,r2) _eqr_d(_jit,r0,r1,r2) #define eqr_d(r0,r1,r2) _eqr_d(_jit,r0,r1,r2)
static void _eqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _eqr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define eqi_f(r0,r1,i0) _eqi_f(_jit,r0,r1,i0) #define eqi_f(r0,r1,i0) _eqi_f(_jit,r0,r1,i0)
static void _eqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _eqi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define eqi_d(r0,r1,i0) _eqi_d(_jit,r0,r1,i0) #define eqi_d(r0,r1,i0) _eqi_d(_jit,r0,r1,i0)
static void _eqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _eqi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define ger_f(r0,r1,r2) ger_d(r0,r1,r2) #define ger_f(r0,r1,r2) ger_d(r0,r1,r2)
#define ger_d(r0,r1,r2) _ger_d(_jit,r0,r1,r2) #define ger_d(r0,r1,r2) _ger_d(_jit,r0,r1,r2)
static void _ger_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ger_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define gei_f(r0,r1,i0) _gei_f(_jit,r0,r1,i0) #define gei_f(r0,r1,i0) _gei_f(_jit,r0,r1,i0)
static void _gei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _gei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define gei_d(r0,r1,i0) _gei_d(_jit,r0,r1,i0) #define gei_d(r0,r1,i0) _gei_d(_jit,r0,r1,i0)
static void _gei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _gei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define gtr_f(r0,r1,r2) gtr_d(r0,r1,r2) #define gtr_f(r0,r1,r2) gtr_d(r0,r1,r2)
#define gtr_d(r0,r1,r2) _gtr_d(_jit,r0,r1,r2) #define gtr_d(r0,r1,r2) _gtr_d(_jit,r0,r1,r2)
static void _gtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _gtr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define gti_f(r0,r1,i0) _gti_f(_jit,r0,r1,i0) #define gti_f(r0,r1,i0) _gti_f(_jit,r0,r1,i0)
static void _gti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _gti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define gti_d(r0,r1,i0) _gti_d(_jit,r0,r1,i0) #define gti_d(r0,r1,i0) _gti_d(_jit,r0,r1,i0)
static void _gti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _gti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define ner_f(r0,r1,r2) ner_d(r0,r1,r2) #define ner_f(r0,r1,r2) ner_d(r0,r1,r2)
#define ner_d(r0,r1,r2) _ner_d(_jit,r0,r1,r2) #define ner_d(r0,r1,r2) _ner_d(_jit,r0,r1,r2)
static void _ner_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ner_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define nei_f(r0,r1,i0) _nei_f(_jit,r0,r1,i0) #define nei_f(r0,r1,i0) _nei_f(_jit,r0,r1,i0)
static void _nei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _nei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define nei_d(r0,r1,i0) _nei_d(_jit,r0,r1,i0) #define nei_d(r0,r1,i0) _nei_d(_jit,r0,r1,i0)
static void _nei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _nei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define unltr_f(r0,r1,r2) unltr_d(r0,r1,r2) #define unltr_f(r0,r1,r2) unltr_d(r0,r1,r2)
#define unltr_d(r0,r1,r2) _unltr_d(_jit,r0,r1,r2) #define unltr_d(r0,r1,r2) _unltr_d(_jit,r0,r1,r2)
static void _unltr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _unltr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define unlti_f(r0,r1,i0) _unlti_f(_jit,r0,r1,i0) #define unlti_f(r0,r1,i0) _unlti_f(_jit,r0,r1,i0)
static void _unlti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _unlti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define unlti_d(r0,r1,i0) _unlti_d(_jit,r0,r1,i0) #define unlti_d(r0,r1,i0) _unlti_d(_jit,r0,r1,i0)
static void _unlti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _unlti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define unler_f(r0,r1,r2) unler_d(r0,r1,r2) #define unler_f(r0,r1,r2) unler_d(r0,r1,r2)
#define unler_d(r0,r1,r2) _unler_d(_jit,r0,r1,r2) #define unler_d(r0,r1,r2) _unler_d(_jit,r0,r1,r2)
static void _unler_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _unler_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define unlei_f(r0,r1,i0) _unlei_f(_jit,r0,r1,i0) #define unlei_f(r0,r1,i0) _unlei_f(_jit,r0,r1,i0)
static void _unlei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _unlei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define unlei_d(r0,r1,i0) _unlei_d(_jit,r0,r1,i0) #define unlei_d(r0,r1,i0) _unlei_d(_jit,r0,r1,i0)
static void _unlei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _unlei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define uneqr_f(r0,r1,r2) uneqr_d(r0,r1,r2) #define uneqr_f(r0,r1,r2) uneqr_d(r0,r1,r2)
#define uneqr_d(r0,r1,r2) _uneqr_d(_jit,r0,r1,r2) #define uneqr_d(r0,r1,r2) _uneqr_d(_jit,r0,r1,r2)
static void _uneqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _uneqr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define uneqi_f(r0,r1,i0) _uneqi_f(_jit,r0,r1,i0) #define uneqi_f(r0,r1,i0) _uneqi_f(_jit,r0,r1,i0)
static void _uneqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _uneqi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define uneqi_d(r0,r1,i0) _uneqi_d(_jit,r0,r1,i0) #define uneqi_d(r0,r1,i0) _uneqi_d(_jit,r0,r1,i0)
static void _uneqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _uneqi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define unger_f(r0,r1,r2) unger_d(r0,r1,r2) #define unger_f(r0,r1,r2) unger_d(r0,r1,r2)
#define unger_d(r0,r1,r2) _unger_d(_jit,r0,r1,r2) #define unger_d(r0,r1,r2) _unger_d(_jit,r0,r1,r2)
static void _unger_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _unger_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define ungei_f(r0,r1,i0) _ungei_f(_jit,r0,r1,i0) #define ungei_f(r0,r1,i0) _ungei_f(_jit,r0,r1,i0)
static void _ungei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _ungei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define ungei_d(r0,r1,i0) _ungei_d(_jit,r0,r1,i0) #define ungei_d(r0,r1,i0) _ungei_d(_jit,r0,r1,i0)
static void _ungei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _ungei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define ungtr_f(r0,r1,r2) ungtr_d(r0,r1,r2) #define ungtr_f(r0,r1,r2) ungtr_d(r0,r1,r2)
#define ungtr_d(r0,r1,r2) _ungtr_d(_jit,r0,r1,r2) #define ungtr_d(r0,r1,r2) _ungtr_d(_jit,r0,r1,r2)
static void _ungtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ungtr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define ungti_f(r0,r1,i0) _ungti_f(_jit,r0,r1,i0) #define ungti_f(r0,r1,i0) _ungti_f(_jit,r0,r1,i0)
static void _ungti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _ungti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define ungti_d(r0,r1,i0) _ungti_d(_jit,r0,r1,i0) #define ungti_d(r0,r1,i0) _ungti_d(_jit,r0,r1,i0)
static void _ungti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _ungti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define ltgtr_f(r0,r1,r2) ltgtr_d(r0,r1,r2) #define ltgtr_f(r0,r1,r2) ltgtr_d(r0,r1,r2)
#define ltgtr_d(r0,r1,r2) _ltgtr_d(_jit,r0,r1,r2) #define ltgtr_d(r0,r1,r2) _ltgtr_d(_jit,r0,r1,r2)
static void _ltgtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ltgtr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define ltgti_f(r0,r1,i0) _ltgti_f(_jit,r0,r1,i0) #define ltgti_f(r0,r1,i0) _ltgti_f(_jit,r0,r1,i0)
static void _ltgti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _ltgti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define ltgti_d(r0,r1,i0) _ltgti_d(_jit,r0,r1,i0) #define ltgti_d(r0,r1,i0) _ltgti_d(_jit,r0,r1,i0)
static void _ltgti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _ltgti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define ordr_f(r0,r1,r2) ordr_d(r0,r1,r2) #define ordr_f(r0,r1,r2) ordr_d(r0,r1,r2)
#define ordr_d(r0,r1,r2) _ordr_d(_jit,r0,r1,r2) #define ordr_d(r0,r1,r2) _ordr_d(_jit,r0,r1,r2)
static void _ordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ordr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define ordi_f(r0,r1,i0) _ordi_f(_jit,r0,r1,i0) #define ordi_f(r0,r1,i0) _ordi_f(_jit,r0,r1,i0)
static void _ordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _ordi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define ordi_d(r0,r1,i0) _ordi_d(_jit,r0,r1,i0) #define ordi_d(r0,r1,i0) _ordi_d(_jit,r0,r1,i0)
static void _ordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _ordi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define unordr_f(r0,r1,r2) unordr_d(r0,r1,r2) #define unordr_f(r0,r1,r2) unordr_d(r0,r1,r2)
#define unordr_d(r0,r1,r2) _unordr_d(_jit,r0,r1,r2) #define unordr_d(r0,r1,r2) _unordr_d(_jit,r0,r1,r2)
static void _unordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _unordr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define unordi_f(r0,r1,i0) _unordi_f(_jit,r0,r1,i0) #define unordi_f(r0,r1,i0) _unordi_f(_jit,r0,r1,i0)
static void _unordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _unordi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
#define unordi_d(r0,r1,i0) _unordi_d(_jit,r0,r1,i0) #define unordi_d(r0,r1,i0) _unordi_d(_jit,r0,r1,i0)
static void _unordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _unordi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define ldr_f(r0,r1) LDFS(r0,r1) #define ldr_f(r0,r1) LDFS(r0,r1)
#define ldi_f(r0,i0) _ldi_f(_jit,r0,i0) #define ldi_f(r0,i0) _ldi_f(_jit,r0,i0)
static void _ldi_f(jit_state_t*,int32_t,jit_word_t); static void _ldi_f(jit_state_t*,int32_t,jit_word_t);
#define ldxr_f(r0,r1,r2) _ldxr_f(_jit,r0,r1,r2) #define ldxr_f(r0,r1,r2) _ldxr_f(_jit,r0,r1,r2)
static void _ldxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define ldxi_f(r0,r1,i0) _ldxi_f(_jit,r0,r1,i0) #define ldxi_f(r0,r1,i0) _ldxi_f(_jit,r0,r1,i0)
static void _ldxi_f(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_f(jit_state_t*,int32_t,int32_t,jit_word_t);
#define ldr_d(r0,r1) LDFD(r0,r1) #define ldr_d(r0,r1) LDFD(r0,r1)
#define ldi_d(r0,i0) _ldi_d(_jit,r0,i0) #define ldi_d(r0,i0) _ldi_d(_jit,r0,i0)
static void _ldi_d(jit_state_t*,int32_t,jit_word_t); static void _ldi_d(jit_state_t*,int32_t,jit_word_t);
#define ldxr_d(r0,r1,r2) _ldxr_d(_jit,r0,r1,r2) #define ldxr_d(r0,r1,r2) _ldxr_d(_jit,r0,r1,r2)
static void _ldxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define ldxi_d(r0,r1,i0) _ldxi_d(_jit,r0,r1,i0) #define ldxi_d(r0,r1,i0) _ldxi_d(_jit,r0,r1,i0)
static void _ldxi_d(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_d(jit_state_t*,int32_t,int32_t,jit_word_t);
#define str_f(r0,r1) STFS(r0,r1) #define str_f(r0,r1) STFS(r0,r1)
#define sti_f(i0,r0) _sti_f(_jit,i0,r0) #define sti_f(i0,r0) _sti_f(_jit,i0,r0)
static void _sti_f(jit_state_t*,jit_word_t,int32_t); static void _sti_f(jit_state_t*,jit_word_t,int32_t);
#define stxr_f(r0,r1,r2) _stxr_f(_jit,r0,r1,r2) #define stxr_f(r0,r1,r2) _stxr_f(_jit,r0,r1,r2)
static void _stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _stxr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define stxi_f(i0,r0,r1) _stxi_f(_jit,i0,r0,r1) #define stxi_f(i0,r0,r1) _stxi_f(_jit,i0,r0,r1)
static void _stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_f(jit_state_t*,jit_word_t,int32_t,int32_t);
#define str_d(r0,r1) STFD(r0,r1) #define str_d(r0,r1) STFD(r0,r1)
#define sti_d(i0,r0) _sti_d(_jit,i0,r0) #define sti_d(i0,r0) _sti_d(_jit,i0,r0)
static void _sti_d(jit_state_t*,jit_word_t,int32_t); static void _sti_d(jit_state_t*,jit_word_t,int32_t);
#define stxr_d(r0,r1,r2) _stxr_d(_jit,r0,r1,r2) #define stxr_d(r0,r1,r2) _stxr_d(_jit,r0,r1,r2)
static void _stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _stxr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
#define stxi_d(i0,r0,r1) _stxi_d(_jit,i0,r0,r1) #define stxi_d(i0,r0,r1) _stxi_d(_jit,i0,r0,r1)
static void _stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_d(jit_state_t*,jit_word_t,int32_t,int32_t);
#define bltr_f(i0,r0,r1) bltr_d(i0,r0,r1) #define bltr_f(i0,r0,r1) bltr_d(i0,r0,r1)
#define bltr_d(i0,r0,r1) _bltr_d(_jit,i0,r0,r1) #define bltr_d(i0,r0,r1) _bltr_d(_jit,i0,r0,r1)
static jit_word_t _bltr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bltr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
#define blti_f(i0,r0,i1) _blti_f(_jit,i0,r0,i1) #define blti_f(i0,r0,i1) _blti_f(_jit,i0,r0,i1)
static jit_word_t _blti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _blti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
#define blti_d(i0,r0,i1) _blti_d(_jit,i0,r0,i1) #define blti_d(i0,r0,i1) _blti_d(_jit,i0,r0,i1)
static jit_word_t _blti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _blti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
#define bler_f(i0,r0,r1) bler_d(i0,r0,r1) #define bler_f(i0,r0,r1) bler_d(i0,r0,r1)
#define bler_d(i0,r0,r1) _bler_d(_jit,i0,r0,r1) #define bler_d(i0,r0,r1) _bler_d(_jit,i0,r0,r1)
static jit_word_t _bler_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bler_d(jit_state_t*,jit_word_t,int32_t,int32_t);
#define blei_f(i0,r0,i1) _blei_f(_jit,i0,r0,i1) #define blei_f(i0,r0,i1) _blei_f(_jit,i0,r0,i1)
static jit_word_t _blei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _blei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
#define blei_d(i0,r0,i1) _blei_d(_jit,i0,r0,i1) #define blei_d(i0,r0,i1) _blei_d(_jit,i0,r0,i1)
static jit_word_t _blei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _blei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
#define beqr_f(i0,r0,r1) beqr_d(i0,r0,r1) #define beqr_f(i0,r0,r1) beqr_d(i0,r0,r1)
#define beqr_d(i0,r0,r1) _beqr_d(_jit,i0,r0,r1) #define beqr_d(i0,r0,r1) _beqr_d(_jit,i0,r0,r1)
static jit_word_t _beqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _beqr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
#define beqi_f(i0,r0,i1) _beqi_f(_jit,i0,r0,i1) #define beqi_f(i0,r0,i1) _beqi_f(_jit,i0,r0,i1)
static jit_word_t _beqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _beqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
#define beqi_d(i0,r0,i1) _beqi_d(_jit,i0,r0,i1) #define beqi_d(i0,r0,i1) _beqi_d(_jit,i0,r0,i1)
static jit_word_t _beqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _beqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
#define bger_f(i0,r0,r1) bger_d(i0,r0,r1) #define bger_f(i0,r0,r1) bger_d(i0,r0,r1)
#define bger_d(i0,r0,r1) _bger_d(_jit,i0,r0,r1) #define bger_d(i0,r0,r1) _bger_d(_jit,i0,r0,r1)
static jit_word_t _bger_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bger_d(jit_state_t*,jit_word_t,int32_t,int32_t);
#define bgei_f(i0,r0,i1) _bgei_f(_jit,i0,r0,i1) #define bgei_f(i0,r0,i1) _bgei_f(_jit,i0,r0,i1)
static jit_word_t _bgei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bgei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
#define bgei_d(i0,r0,i1) _bgei_d(_jit,i0,r0,i1) #define bgei_d(i0,r0,i1) _bgei_d(_jit,i0,r0,i1)
static jit_word_t _bgei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bgei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
#define bgtr_f(i0,r0,r1) bgtr_d(i0,r0,r1) #define bgtr_f(i0,r0,r1) bgtr_d(i0,r0,r1)
#define bgtr_d(i0,r0,r1) _bgtr_d(_jit,i0,r0,r1) #define bgtr_d(i0,r0,r1) _bgtr_d(_jit,i0,r0,r1)
static jit_word_t _bgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bgtr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
#define bgti_f(i0,r0,i1) _bgti_f(_jit,i0,r0,i1) #define bgti_f(i0,r0,i1) _bgti_f(_jit,i0,r0,i1)
static jit_word_t _bgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
#define bgti_d(i0,r0,i1) _bgti_d(_jit,i0,r0,i1) #define bgti_d(i0,r0,i1) _bgti_d(_jit,i0,r0,i1)
static jit_word_t _bgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
#define bner_f(i0,r0,r1) bner_d(i0,r0,r1) #define bner_f(i0,r0,r1) bner_d(i0,r0,r1)
#define bner_d(i0,r0,r1) _bner_d(_jit,i0,r0,r1) #define bner_d(i0,r0,r1) _bner_d(_jit,i0,r0,r1)
static jit_word_t _bner_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bner_d(jit_state_t*,jit_word_t,int32_t,int32_t);
#define bnei_f(i0,r0,i1) _bnei_f(_jit,i0,r0,i1) #define bnei_f(i0,r0,i1) _bnei_f(_jit,i0,r0,i1)
static jit_word_t _bnei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bnei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
#define bnei_d(i0,r0,i1) _bnei_d(_jit,i0,r0,i1) #define bnei_d(i0,r0,i1) _bnei_d(_jit,i0,r0,i1)
static jit_word_t _bnei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bnei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
#define bunltr_f(i0,r0,r1) bunltr_d(i0,r0,r1) #define bunltr_f(i0,r0,r1) bunltr_d(i0,r0,r1)
#define bunltr_d(i0,r0,r1) _bunltr_d(_jit,i0,r0,r1) #define bunltr_d(i0,r0,r1) _bunltr_d(_jit,i0,r0,r1)
static jit_word_t _bunltr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bunltr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
#define bunlti_f(i0,r0,i1) _bunlti_f(_jit,i0,r0,i1) #define bunlti_f(i0,r0,i1) _bunlti_f(_jit,i0,r0,i1)
static jit_word_t _bunlti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bunlti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
#define bunlti_d(i0,r0,i1) _bunlti_d(_jit,i0,r0,i1) #define bunlti_d(i0,r0,i1) _bunlti_d(_jit,i0,r0,i1)
static jit_word_t _bunlti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bunlti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
#define bunler_f(i0,r0,r1) bunler_d(i0,r0,r1) #define bunler_f(i0,r0,r1) bunler_d(i0,r0,r1)
#define bunler_d(i0,r0,r1) _bunler_d(_jit,i0,r0,r1) #define bunler_d(i0,r0,r1) _bunler_d(_jit,i0,r0,r1)
static jit_word_t _bunler_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bunler_d(jit_state_t*,jit_word_t,int32_t,int32_t);
#define bunlei_f(i0,r0,i1) _bunlei_f(_jit,i0,r0,i1) #define bunlei_f(i0,r0,i1) _bunlei_f(_jit,i0,r0,i1)
static jit_word_t _bunlei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bunlei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
#define bunlei_d(i0,r0,i1) _bunlei_d(_jit,i0,r0,i1) #define bunlei_d(i0,r0,i1) _bunlei_d(_jit,i0,r0,i1)
static jit_word_t _bunlei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bunlei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
#define buneqr_f(i0,r0,r1) buneqr_d(i0,r0,r1) #define buneqr_f(i0,r0,r1) buneqr_d(i0,r0,r1)
#define buneqr_d(i0,r0,r1) _buneqr_d(_jit,i0,r0,r1) #define buneqr_d(i0,r0,r1) _buneqr_d(_jit,i0,r0,r1)
static jit_word_t _buneqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _buneqr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
#define buneqi_f(i0,r0,i1) _buneqi_f(_jit,i0,r0,i1) #define buneqi_f(i0,r0,i1) _buneqi_f(_jit,i0,r0,i1)
static jit_word_t _buneqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _buneqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
#define buneqi_d(i0,r0,i1) _buneqi_d(_jit,i0,r0,i1) #define buneqi_d(i0,r0,i1) _buneqi_d(_jit,i0,r0,i1)
static jit_word_t _buneqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _buneqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
#define bunger_f(i0,r0,r1) bunger_d(i0,r0,r1) #define bunger_f(i0,r0,r1) bunger_d(i0,r0,r1)
#define bunger_d(i0,r0,r1) _bunger_d(_jit,i0,r0,r1) #define bunger_d(i0,r0,r1) _bunger_d(_jit,i0,r0,r1)
static jit_word_t _bunger_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bunger_d(jit_state_t*,jit_word_t,int32_t,int32_t);
#define bungei_f(i0,r0,i1) _bungei_f(_jit,i0,r0,i1) #define bungei_f(i0,r0,i1) _bungei_f(_jit,i0,r0,i1)
static jit_word_t _bungei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bungei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
#define bungei_d(i0,r0,i1) _bungei_d(_jit,i0,r0,i1) #define bungei_d(i0,r0,i1) _bungei_d(_jit,i0,r0,i1)
static jit_word_t _bungei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bungei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
#define bungtr_f(i0,r0,r1) bungtr_d(i0,r0,r1) #define bungtr_f(i0,r0,r1) bungtr_d(i0,r0,r1)
#define bungtr_d(i0,r0,r1) _bungtr_d(_jit,i0,r0,r1) #define bungtr_d(i0,r0,r1) _bungtr_d(_jit,i0,r0,r1)
static jit_word_t _bungtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bungtr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
#define bungti_f(i0,r0,i1) _bungti_f(_jit,i0,r0,i1) #define bungti_f(i0,r0,i1) _bungti_f(_jit,i0,r0,i1)
static jit_word_t _bungti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bungti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
#define bungti_d(i0,r0,i1) _bungti_d(_jit,i0,r0,i1) #define bungti_d(i0,r0,i1) _bungti_d(_jit,i0,r0,i1)
static jit_word_t _bungti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bungti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
#define bltgtr_f(i0,r0,r1) bltgtr_d(i0,r0,r1) #define bltgtr_f(i0,r0,r1) bltgtr_d(i0,r0,r1)
#define bltgtr_d(i0,r0,r1) _bltgtr_d(_jit,i0,r0,r1) #define bltgtr_d(i0,r0,r1) _bltgtr_d(_jit,i0,r0,r1)
static jit_word_t _bltgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bltgtr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
#define bltgti_f(i0,r0,i1) _bltgti_f(_jit,i0,r0,i1) #define bltgti_f(i0,r0,i1) _bltgti_f(_jit,i0,r0,i1)
static jit_word_t _bltgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bltgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
#define bltgti_d(i0,r0,i1) _bltgti_d(_jit,i0,r0,i1) #define bltgti_d(i0,r0,i1) _bltgti_d(_jit,i0,r0,i1)
static jit_word_t _bltgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bltgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
#define bordr_f(i0,r0,r1) bordr_d(i0,r0,r1) #define bordr_f(i0,r0,r1) bordr_d(i0,r0,r1)
#define bordr_d(i0,r0,r1) _bordr_d(_jit,i0,r0,r1) #define bordr_d(i0,r0,r1) _bordr_d(_jit,i0,r0,r1)
static jit_word_t _bordr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bordr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
#define bordi_f(i0,r0,i1) _bordi_f(_jit,i0,r0,i1) #define bordi_f(i0,r0,i1) _bordi_f(_jit,i0,r0,i1)
static jit_word_t _bordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
#define bordi_d(i0,r0,i1) _bordi_d(_jit,i0,r0,i1) #define bordi_d(i0,r0,i1) _bordi_d(_jit,i0,r0,i1)
static jit_word_t _bordi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bordi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
#define bunordr_f(i0,r0,r1) bunordr_d(i0,r0,r1) #define bunordr_f(i0,r0,r1) bunordr_d(i0,r0,r1)
#define bunordr_d(i0,r0,r1) _bunordr_d(_jit,i0,r0,r1) #define bunordr_d(i0,r0,r1) _bunordr_d(_jit,i0,r0,r1)
static jit_word_t _bunordr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bunordr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
#define bunordi_f(i0,r0,i1) _bunordi_f(_jit,i0,r0,i1) #define bunordi_f(i0,r0,i1) _bunordi_f(_jit,i0,r0,i1)
static jit_word_t _bunordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bunordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
#define bunordi_d(i0,r0,i1) _bunordi_d(_jit,i0,r0,i1) #define bunordi_d(i0,r0,i1) _bunordi_d(_jit,i0,r0,i1)
static jit_word_t _bunordi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bunordi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1) # define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1)
static void _vaarg_d(jit_state_t*, int32_t, jit_int32_t); static void _vaarg_d(jit_state_t*, int32_t, int32_t);
#endif #endif
#if CODE #if CODE
@ -1054,7 +1054,7 @@ _movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t *i0)
} }
static void static void
_movr_w_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _movr_w_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
/* Should be used only in this case (with out0 == 120) */ /* Should be used only in this case (with out0 == 120) */
if (r1 >= 120) if (r1 >= 120)
@ -1063,7 +1063,7 @@ _movr_w_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_movr_f_w(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _movr_f_w(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
/* Should actually be used only in this case (with out0 == 120) */ /* Should actually be used only in this case (with out0 == 120) */
if (r0 >= 120) if (r0 >= 120)
@ -1088,7 +1088,7 @@ _movi_f_w(jit_state_t *_jit, int32_t r0, jit_float32_t *i0)
} }
static void static void
_movr_w_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _movr_w_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
/* Should be used only in this case (with out0 == 120) */ /* Should be used only in this case (with out0 == 120) */
if (r1 >= 120) if (r1 >= 120)
@ -1097,7 +1097,7 @@ _movr_w_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_movr_d_w(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _movr_d_w(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
/* Should be used only in this case (with out0 == 120) */ /* Should be used only in this case (with out0 == 120) */
if (r0 >= 120) if (r0 >= 120)
@ -1127,7 +1127,7 @@ _movi_d_w(jit_state_t *_jit, int32_t r0, jit_float64_t *i0)
#define fpr_opi(name, type, size) \ #define fpr_opi(name, type, size) \
static void \ static void \
_##name##i_##type(jit_state_t *_jit, \ _##name##i_##type(jit_state_t *_jit, \
int32_t r0, jit_int32_t r1, \ int32_t r0, int32_t r1, \
jit_float##size##_t *i0) \ jit_float##size##_t *i0) \
{ \ { \
int32_t reg = jit_get_reg(jit_class_fpr); \ int32_t reg = jit_get_reg(jit_class_fpr); \
@ -1167,7 +1167,7 @@ dopi(div)
/* translation from gcc -O0 */ /* translation from gcc -O0 */
static void static void
_divr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _divr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t t0, t1, t2; int32_t t0, t1, t2;
t0 = jit_get_reg(jit_class_fpr); t0 = jit_get_reg(jit_class_fpr);
@ -1189,7 +1189,7 @@ _divr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_divr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _divr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t t0, t1, t2; int32_t t0, t1, t2;
t0 = jit_get_reg(jit_class_fpr); t0 = jit_get_reg(jit_class_fpr);
@ -1211,7 +1211,7 @@ _divr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_extr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_fpr); reg = jit_get_reg(jit_class_fpr);
@ -1222,7 +1222,7 @@ _extr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_fpr); reg = jit_get_reg(jit_class_fpr);
@ -1233,7 +1233,7 @@ _extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_truncr_d_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _truncr_d_l(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_fpr); reg = jit_get_reg(jit_class_fpr);
@ -1244,7 +1244,7 @@ _truncr_d_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_ltr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ltr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMP_LT(PR_6, PR_7, r1, r2); FCMP_LT(PR_6, PR_7, r1, r2);
MOVI_p(r0, 1, PR_6); MOVI_p(r0, 1, PR_6);
@ -1254,7 +1254,7 @@ fopi(lt)
dopi(lt) dopi(lt)
static void static void
_ler_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ler_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMP_LE(PR_6, PR_7, r1, r2); FCMP_LE(PR_6, PR_7, r1, r2);
MOVI_p(r0, 1, PR_6); MOVI_p(r0, 1, PR_6);
@ -1264,7 +1264,7 @@ fopi(le)
dopi(le) dopi(le)
static void static void
_eqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _eqr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMP_EQ(PR_6, PR_7, r1, r2); FCMP_EQ(PR_6, PR_7, r1, r2);
MOVI_p(r0, 1, PR_6); MOVI_p(r0, 1, PR_6);
@ -1274,7 +1274,7 @@ fopi(eq)
dopi(eq) dopi(eq)
static void static void
_ger_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ger_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMP_LE(PR_6, PR_7, r2, r1); FCMP_LE(PR_6, PR_7, r2, r1);
MOVI_p(r0, 1, PR_6); MOVI_p(r0, 1, PR_6);
@ -1284,7 +1284,7 @@ fopi(ge)
dopi(ge) dopi(ge)
static void static void
_gtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _gtr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMP_LT(PR_6, PR_7, r2, r1); FCMP_LT(PR_6, PR_7, r2, r1);
MOVI_p(r0, 1, PR_6); MOVI_p(r0, 1, PR_6);
@ -1294,7 +1294,7 @@ fopi(gt)
dopi(gt) dopi(gt)
static void static void
_ner_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ner_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMP_EQ(PR_6, PR_7, r1, r2); FCMP_EQ(PR_6, PR_7, r1, r2);
MOV_p(r0, GR_0, PR_6); MOV_p(r0, GR_0, PR_6);
@ -1304,7 +1304,7 @@ fopi(ne)
dopi(ne) dopi(ne)
static void static void
_unltr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _unltr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMP_LE(PR_6, PR_7, r2, r1); FCMP_LE(PR_6, PR_7, r2, r1);
MOV_p(r0, GR_0, PR_6); MOV_p(r0, GR_0, PR_6);
@ -1314,7 +1314,7 @@ fopi(unlt)
dopi(unlt) dopi(unlt)
static void static void
_unler_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _unler_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMP_LT(PR_6, PR_7, r2, r1); FCMP_LT(PR_6, PR_7, r2, r1);
MOV_p(r0, GR_0, PR_6); MOV_p(r0, GR_0, PR_6);
@ -1324,7 +1324,7 @@ fopi(unle)
dopi(unle) dopi(unle)
static void static void
_uneqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _uneqr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
MOVI(r0, 1); MOVI(r0, 1);
FCMP_LT(PR_8, PR_9, r1, r2); FCMP_LT(PR_8, PR_9, r1, r2);
@ -1336,7 +1336,7 @@ fopi(uneq)
dopi(uneq) dopi(uneq)
static void static void
_unger_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _unger_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMP_LT(PR_6, PR_7, r1, r2); FCMP_LT(PR_6, PR_7, r1, r2);
MOV_p(r0, GR_0, PR_6); MOV_p(r0, GR_0, PR_6);
@ -1346,7 +1346,7 @@ fopi(unge)
dopi(unge) dopi(unge)
static void static void
_ungtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ungtr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMP_LE(PR_6, PR_7, r1, r2); FCMP_LE(PR_6, PR_7, r1, r2);
MOV_p(r0, GR_0, PR_6); MOV_p(r0, GR_0, PR_6);
@ -1356,7 +1356,7 @@ fopi(ungt)
dopi(ungt) dopi(ungt)
static void static void
_ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ltgtr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
MOVI(r0, 1); MOVI(r0, 1);
FCMP_EQ(PR_8, PR_9, r1, r2); FCMP_EQ(PR_8, PR_9, r1, r2);
@ -1368,7 +1368,7 @@ fopi(ltgt)
dopi(ltgt) dopi(ltgt)
static void static void
_ordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ordr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMP_UNORD(PR_6, PR_7, r1, r2); FCMP_UNORD(PR_6, PR_7, r1, r2);
MOV_p(r0, GR_0, PR_6); MOV_p(r0, GR_0, PR_6);
@ -1378,7 +1378,7 @@ fopi(ord)
dopi(ord) dopi(ord)
static void static void
_unordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _unordr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMP_UNORD(PR_6, PR_7, r1, r2); FCMP_UNORD(PR_6, PR_7, r1, r2);
MOVI_p(r0, 1, PR_6); MOVI_p(r0, 1, PR_6);
@ -1398,7 +1398,7 @@ _ldi_f(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1408,7 +1408,7 @@ _ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (r0) { if (r0) {
@ -1432,7 +1432,7 @@ _ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1442,7 +1442,7 @@ _ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (r0) { if (r0) {
@ -1466,7 +1466,7 @@ _sti_f(jit_state_t *_jit, jit_word_t i0, int32_t r0)
} }
static void static void
_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _stxr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1476,7 +1476,7 @@ _stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (i0) { if (i0) {
@ -1500,7 +1500,7 @@ _sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0)
} }
static void static void
_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _stxr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1510,7 +1510,7 @@ _stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (i0) { if (i0) {
@ -1524,7 +1524,7 @@ _stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_sqrtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _sqrtr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
movr_f(GR_8, r1); movr_f(GR_8, r1);
calli((jit_word_t)sqrtf); calli((jit_word_t)sqrtf);
@ -1532,7 +1532,7 @@ _sqrtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_sqrtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _sqrtr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
movr_d(GR_8, r1); movr_d(GR_8, r1);
calli((jit_word_t)sqrt); calli((jit_word_t)sqrt);
@ -1540,7 +1540,7 @@ _sqrtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static jit_word_t static jit_word_t
_bltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
FCMP_LT(PR_6, PR_7, r0, r1); FCMP_LT(PR_6, PR_7, r0, r1);
@ -1553,7 +1553,7 @@ fbopi(lt)
dbopi(lt) dbopi(lt)
static jit_word_t static jit_word_t
_bler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
FCMP_LE(PR_6, PR_7, r0, r1); FCMP_LE(PR_6, PR_7, r0, r1);
@ -1566,7 +1566,7 @@ fbopi(le)
dbopi(le) dbopi(le)
static jit_word_t static jit_word_t
_beqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _beqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
FCMP_EQ(PR_6, PR_7, r0, r1); FCMP_EQ(PR_6, PR_7, r0, r1);
@ -1579,7 +1579,7 @@ fbopi(eq)
dbopi(eq) dbopi(eq)
static jit_word_t static jit_word_t
_bger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
FCMP_LE(PR_6, PR_7, r1, r0); FCMP_LE(PR_6, PR_7, r1, r0);
@ -1592,7 +1592,7 @@ fbopi(ge)
dbopi(ge) dbopi(ge)
static jit_word_t static jit_word_t
_bgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
FCMP_LT(PR_6, PR_7, r1, r0); FCMP_LT(PR_6, PR_7, r1, r0);
@ -1605,7 +1605,7 @@ fbopi(gt)
dbopi(gt) dbopi(gt)
static jit_word_t static jit_word_t
_bner_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bner_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
FCMP_EQ(PR_6, PR_7, r0, r1); FCMP_EQ(PR_6, PR_7, r0, r1);
@ -1618,7 +1618,7 @@ fbopi(ne)
dbopi(ne) dbopi(ne)
static jit_word_t static jit_word_t
_bunltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bunltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
FCMP_LE(PR_6, PR_7, r1, r0); FCMP_LE(PR_6, PR_7, r1, r0);
@ -1631,7 +1631,7 @@ fbopi(unlt)
dbopi(unlt) dbopi(unlt)
static jit_word_t static jit_word_t
_bunler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bunler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
FCMP_LT(PR_6, PR_7, r1, r0); FCMP_LT(PR_6, PR_7, r1, r0);
@ -1644,7 +1644,7 @@ fbopi(unle)
dbopi(unle) dbopi(unle)
static jit_word_t static jit_word_t
_buneqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _buneqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
jit_word_t junord, jne; jit_word_t junord, jne;
@ -1672,7 +1672,7 @@ fbopi(uneq)
dbopi(uneq) dbopi(uneq)
static jit_word_t static jit_word_t
_bunger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bunger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
FCMP_LT(PR_6, PR_7, r0, r1); FCMP_LT(PR_6, PR_7, r0, r1);
@ -1685,7 +1685,7 @@ fbopi(unge)
dbopi(unge) dbopi(unge)
static jit_word_t static jit_word_t
_bungtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bungtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
FCMP_LE(PR_6, PR_7, r0, r1); FCMP_LE(PR_6, PR_7, r0, r1);
@ -1698,7 +1698,7 @@ fbopi(ungt)
dbopi(ungt) dbopi(ungt)
static jit_word_t static jit_word_t
_bltgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bltgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
jit_word_t jeq, junord; jit_word_t jeq, junord;
@ -1725,7 +1725,7 @@ fbopi(ltgt)
dbopi(ltgt) dbopi(ltgt)
static jit_word_t static jit_word_t
_bordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
FCMP_UNORD(PR_6, PR_7, r0, r1); FCMP_UNORD(PR_6, PR_7, r0, r1);
@ -1738,7 +1738,7 @@ fbopi(ord)
dbopi(ord) dbopi(ord)
static jit_word_t static jit_word_t
_bunordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bunordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
FCMP_UNORD(PR_6, PR_7, r0, r1); FCMP_UNORD(PR_6, PR_7, r0, r1);
@ -1751,7 +1751,7 @@ fbopi(unord)
dbopi(unord) dbopi(unord)
static void static void
_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vaarg_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
assert(_jitc->function->self.call & jit_call_varargs); assert(_jitc->function->self.call & jit_call_varargs);
/* Load argument. */ /* Load argument. */

View file

@ -17,9 +17,6 @@
* Paulo Cesar Pereira de Andrade * Paulo Cesar Pereira de Andrade
*/ */
#include "jit.h"
#include "jit/jit_private.h"
#define jit_arg_reg_p(i) ((i) >= 0 && (i) < 8) #define jit_arg_reg_p(i) ((i) >= 0 && (i) < 8)
#if __BYTE_ORDER == __LITTLE_ENDIAN #if __BYTE_ORDER == __LITTLE_ENDIAN
# define C_DISP 0 # define C_DISP 0
@ -311,7 +308,7 @@ _jit_allocai(jit_state_t *_jit, int32_t length)
} }
void void
_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) _jit_allocar(jit_state_t *_jit, int32_t u, int32_t v)
{ {
int32_t reg; int32_t reg;
assert(_jitc->function); assert(_jitc->function);

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -226,7 +226,7 @@ _jit_allocai(jit_state_t *_jit, int32_t length)
} }
void void
_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) _jit_allocar(jit_state_t *_jit, int32_t u, int32_t v)
{ {
int32_t reg; int32_t reg;
assert(_jitc->function); assert(_jitc->function);
@ -1883,25 +1883,25 @@ jit_flush(void *fptr, void *tptr)
} }
void void
_emit_ldxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _emit_ldxi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
ldxi(rn(r0), rn(r1), i0); ldxi(rn(r0), rn(r1), i0);
} }
void void
_emit_stxi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _emit_stxi(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
stxi(i0, rn(r0), rn(r1)); stxi(i0, rn(r0), rn(r1));
} }
void void
_emit_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _emit_ldxi_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
ldxi_d(rn(r0), rn(r1), i0); ldxi_d(rn(r0), rn(r1), i0);
} }
void void
_emit_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _emit_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
stxi_d(i0, rn(r0), rn(r1)); stxi_d(i0, rn(r0), rn(r1));
} }

File diff suppressed because it is too large Load diff

View file

@ -117,25 +117,25 @@ static void _FXFL(jit_state_t*,int,int,int,int,int) maybe_unused;
# define STFSX(s,a,b) FX(31,s,a,b,663) # define STFSX(s,a,b) FX(31,s,a,b,663)
# define movr_f(r0,r1) movr_d(r0,r1) # define movr_f(r0,r1) movr_d(r0,r1)
# define movr_d(r0,r1) _movr_d(_jit,r0,r1) # define movr_d(r0,r1) _movr_d(_jit,r0,r1)
static void _movr_d(jit_state_t*,int32_t,jit_int32_t); static void _movr_d(jit_state_t*,int32_t,int32_t);
# define movi_f(r0,i0) _movi_f(_jit,r0,i0) # define movi_f(r0,i0) _movi_f(_jit,r0,i0)
static void _movi_f(jit_state_t*,int32_t,jit_float32_t*); static void _movi_f(jit_state_t*,int32_t,jit_float32_t*);
# define movi_d(r0,i0) _movi_d(_jit,r0,i0) # define movi_d(r0,i0) _movi_d(_jit,r0,i0)
static void _movi_d(jit_state_t*,int32_t,jit_float64_t*); static void _movi_d(jit_state_t*,int32_t,jit_float64_t*);
# define extr_f(r0,r1) extr_d(r0,r1) # define extr_f(r0,r1) extr_d(r0,r1)
# define extr_d(r0,r1) _extr_d(_jit,r0,r1) # define extr_d(r0,r1) _extr_d(_jit,r0,r1)
static void _extr_d(jit_state_t*,int32_t,jit_int32_t); static void _extr_d(jit_state_t*,int32_t,int32_t);
# define truncr_f(r0,r1) truncr_d(r0,r1) # define truncr_f(r0,r1) truncr_d(r0,r1)
# define truncr_f_i(r0,r1) truncr_d_i(r0,r1) # define truncr_f_i(r0,r1) truncr_d_i(r0,r1)
# define truncr_d_i(r0,r1) _truncr_d_i(_jit,r0,r1) # define truncr_d_i(r0,r1) _truncr_d_i(_jit,r0,r1)
static void _truncr_d_i(jit_state_t*,int32_t,jit_int32_t); static void _truncr_d_i(jit_state_t*,int32_t,int32_t);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define truncr_d(r0,r1) truncr_d_i(r0,r1) # define truncr_d(r0,r1) truncr_d_i(r0,r1)
# else # else
# define truncr_d(r0,r1) truncr_d_l(r0,r1) # define truncr_d(r0,r1) truncr_d_l(r0,r1)
# define truncr_f_l(r0,r1) truncr_d_l(r0,r1) # define truncr_f_l(r0,r1) truncr_d_l(r0,r1)
# define truncr_d_l(r0,r1) _truncr_d_l(_jit,r0,r1) # define truncr_d_l(r0,r1) _truncr_d_l(_jit,r0,r1)
static void _truncr_d_l(jit_state_t*,int32_t,jit_int32_t); static void _truncr_d_l(jit_state_t*,int32_t,int32_t);
# endif # endif
# define extr_d_f(r0,r1) FRSP(r0,r1) # define extr_d_f(r0,r1) FRSP(r0,r1)
# define extr_f_d(r0,r1) movr_d(r0,r1) # define extr_f_d(r0,r1) movr_d(r0,r1)
@ -148,225 +148,225 @@ static void _truncr_d_l(jit_state_t*,int32_t,jit_int32_t);
# define addr_f(r0,r1,r2) FADDS(r0,r1,r2) # define addr_f(r0,r1,r2) FADDS(r0,r1,r2)
# define addr_d(r0,r1,r2) FADD(r0,r1,r2) # define addr_d(r0,r1,r2) FADD(r0,r1,r2)
# define addi_f(r0,r1,i0) _addi_f(_jit,r0,r1,i0) # define addi_f(r0,r1,i0) _addi_f(_jit,r0,r1,i0)
static void _addi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _addi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define addi_d(r0,r1,i0) _addi_d(_jit,r0,r1,i0) # define addi_d(r0,r1,i0) _addi_d(_jit,r0,r1,i0)
static void _addi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _addi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define subr_f(r0,r1,r2) FSUBS(r0,r1,r2) # define subr_f(r0,r1,r2) FSUBS(r0,r1,r2)
# define subi_f(r0,r1,i0) _subi_f(_jit,r0,r1,i0) # define subi_f(r0,r1,i0) _subi_f(_jit,r0,r1,i0)
static void _subi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _subi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define subr_d(r0,r1,r2) FSUB(r0,r1,r2) # define subr_d(r0,r1,r2) FSUB(r0,r1,r2)
# define subi_d(r0,r1,i0) _subi_d(_jit,r0,r1,i0) # define subi_d(r0,r1,i0) _subi_d(_jit,r0,r1,i0)
static void _subi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _subi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define rsbr_f(r0,r1,r2) subr_f(r0,r2,r1) # define rsbr_f(r0,r1,r2) subr_f(r0,r2,r1)
# define rsbi_f(r0,r1,i0) _rsbi_f(_jit,r0,r1,i0) # define rsbi_f(r0,r1,i0) _rsbi_f(_jit,r0,r1,i0)
static void _rsbi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _rsbi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define rsbr_d(r0,r1,r2) subr_d(r0,r2,r1) # define rsbr_d(r0,r1,r2) subr_d(r0,r2,r1)
# define rsbi_d(r0,r1,i0) _rsbi_d(_jit,r0,r1,i0) # define rsbi_d(r0,r1,i0) _rsbi_d(_jit,r0,r1,i0)
static void _rsbi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _rsbi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define mulr_f(r0,r1,r2) FMULS(r0,r1,r2) # define mulr_f(r0,r1,r2) FMULS(r0,r1,r2)
# define muli_f(r0,r1,i0) _muli_f(_jit,r0,r1,i0) # define muli_f(r0,r1,i0) _muli_f(_jit,r0,r1,i0)
static void _muli_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _muli_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define mulr_d(r0,r1,r2) FMUL(r0,r1,r2) # define mulr_d(r0,r1,r2) FMUL(r0,r1,r2)
# define muli_d(r0,r1,i0) _muli_d(_jit,r0,r1,i0) # define muli_d(r0,r1,i0) _muli_d(_jit,r0,r1,i0)
static void _muli_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _muli_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define divr_f(r0,r1,r2) FDIVS(r0,r1,r2) # define divr_f(r0,r1,r2) FDIVS(r0,r1,r2)
# define divi_f(r0,r1,i0) _divi_f(_jit,r0,r1,i0) # define divi_f(r0,r1,i0) _divi_f(_jit,r0,r1,i0)
static void _divi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _divi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define divr_d(r0,r1,r2) FDIV(r0,r1,r2) # define divr_d(r0,r1,r2) FDIV(r0,r1,r2)
# define divi_d(r0,r1,i0) _divi_d(_jit,r0,r1,i0) # define divi_d(r0,r1,i0) _divi_d(_jit,r0,r1,i0)
static void _divi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _divi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define ltr_f(r0,r1,r2) ltr_d(r0,r1,r2) # define ltr_f(r0,r1,r2) ltr_d(r0,r1,r2)
# define ltr_d(r0,r1,r2) _ltr_d(_jit,r0,r1,r2) # define ltr_d(r0,r1,r2) _ltr_d(_jit,r0,r1,r2)
static void _ltr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ltr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define lti_f(r0,r1,i0) _lti_f(_jit,r0,r1,i0) # define lti_f(r0,r1,i0) _lti_f(_jit,r0,r1,i0)
static void _lti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _lti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define lti_d(r0,r1,i0) _lti_d(_jit,r0,r1,i0) # define lti_d(r0,r1,i0) _lti_d(_jit,r0,r1,i0)
static void _lti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _lti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define ler_f(r0,r1,r2) ler_d(r0,r1,r2) # define ler_f(r0,r1,r2) ler_d(r0,r1,r2)
# define ler_d(r0,r1,r2) _ler_d(_jit,r0,r1,r2) # define ler_d(r0,r1,r2) _ler_d(_jit,r0,r1,r2)
static void _ler_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ler_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define lei_f(r0,r1,i0) _lei_f(_jit,r0,r1,i0) # define lei_f(r0,r1,i0) _lei_f(_jit,r0,r1,i0)
static void _lei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _lei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define lei_d(r0,r1,i0) _lei_d(_jit,r0,r1,i0) # define lei_d(r0,r1,i0) _lei_d(_jit,r0,r1,i0)
static void _lei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _lei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define eqr_f(r0,r1,r2) eqr_d(r0,r1,r2) # define eqr_f(r0,r1,r2) eqr_d(r0,r1,r2)
# define eqr_d(r0,r1,r2) _eqr_d(_jit,r0,r1,r2) # define eqr_d(r0,r1,r2) _eqr_d(_jit,r0,r1,r2)
static void _eqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _eqr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define eqi_f(r0,r1,i0) _eqi_f(_jit,r0,r1,i0) # define eqi_f(r0,r1,i0) _eqi_f(_jit,r0,r1,i0)
static void _eqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _eqi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define eqi_d(r0,r1,i0) _eqi_d(_jit,r0,r1,i0) # define eqi_d(r0,r1,i0) _eqi_d(_jit,r0,r1,i0)
static void _eqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _eqi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define ger_f(r0,r1,r2) ger_d(r0,r1,r2) # define ger_f(r0,r1,r2) ger_d(r0,r1,r2)
# define ger_d(r0,r1,r2) _ger_d(_jit,r0,r1,r2) # define ger_d(r0,r1,r2) _ger_d(_jit,r0,r1,r2)
static void _ger_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ger_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define gei_f(r0,r1,i0) _gei_f(_jit,r0,r1,i0) # define gei_f(r0,r1,i0) _gei_f(_jit,r0,r1,i0)
static void _gei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _gei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define gei_d(r0,r1,i0) _gei_d(_jit,r0,r1,i0) # define gei_d(r0,r1,i0) _gei_d(_jit,r0,r1,i0)
static void _gei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _gei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define gtr_f(r0,r1,r2) gtr_d(r0,r1,r2) # define gtr_f(r0,r1,r2) gtr_d(r0,r1,r2)
# define gtr_d(r0,r1,r2) _gtr_d(_jit,r0,r1,r2) # define gtr_d(r0,r1,r2) _gtr_d(_jit,r0,r1,r2)
static void _gtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _gtr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define gti_f(r0,r1,i0) _gti_f(_jit,r0,r1,i0) # define gti_f(r0,r1,i0) _gti_f(_jit,r0,r1,i0)
static void _gti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _gti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define gti_d(r0,r1,i0) _gti_d(_jit,r0,r1,i0) # define gti_d(r0,r1,i0) _gti_d(_jit,r0,r1,i0)
static void _gti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _gti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define ner_f(r0,r1,r2) ner_d(r0,r1,r2) # define ner_f(r0,r1,r2) ner_d(r0,r1,r2)
# define ner_d(r0,r1,r2) _ner_d(_jit,r0,r1,r2) # define ner_d(r0,r1,r2) _ner_d(_jit,r0,r1,r2)
static void _ner_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ner_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define nei_f(r0,r1,i0) _nei_f(_jit,r0,r1,i0) # define nei_f(r0,r1,i0) _nei_f(_jit,r0,r1,i0)
static void _nei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _nei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define nei_d(r0,r1,i0) _nei_d(_jit,r0,r1,i0) # define nei_d(r0,r1,i0) _nei_d(_jit,r0,r1,i0)
static void _nei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _nei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define unltr_f(r0,r1,r2) unltr_d(r0,r1,r2) # define unltr_f(r0,r1,r2) unltr_d(r0,r1,r2)
# define unltr_d(r0,r1,r2) _unltr_d(_jit,r0,r1,r2) # define unltr_d(r0,r1,r2) _unltr_d(_jit,r0,r1,r2)
static void _unltr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _unltr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define unlti_f(r0,r1,i0) _unlti_f(_jit,r0,r1,i0) # define unlti_f(r0,r1,i0) _unlti_f(_jit,r0,r1,i0)
static void _unlti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _unlti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define unlti_d(r0,r1,i0) _unlti_d(_jit,r0,r1,i0) # define unlti_d(r0,r1,i0) _unlti_d(_jit,r0,r1,i0)
static void _unlti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _unlti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define unler_f(r0,r1,r2) unler_d(r0,r1,r2) # define unler_f(r0,r1,r2) unler_d(r0,r1,r2)
# define unler_d(r0,r1,r2) _unler_d(_jit,r0,r1,r2) # define unler_d(r0,r1,r2) _unler_d(_jit,r0,r1,r2)
static void _unler_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _unler_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define unlei_f(r0,r1,i0) _unlei_f(_jit,r0,r1,i0) # define unlei_f(r0,r1,i0) _unlei_f(_jit,r0,r1,i0)
static void _unlei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _unlei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define unlei_d(r0,r1,i0) _unlei_d(_jit,r0,r1,i0) # define unlei_d(r0,r1,i0) _unlei_d(_jit,r0,r1,i0)
static void _unlei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _unlei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define uneqr_f(r0,r1,r2) uneqr_d(r0,r1,r2) # define uneqr_f(r0,r1,r2) uneqr_d(r0,r1,r2)
# define uneqr_d(r0,r1,r2) _uneqr_d(_jit,r0,r1,r2) # define uneqr_d(r0,r1,r2) _uneqr_d(_jit,r0,r1,r2)
static void _uneqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _uneqr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define uneqi_f(r0,r1,i0) _uneqi_f(_jit,r0,r1,i0) # define uneqi_f(r0,r1,i0) _uneqi_f(_jit,r0,r1,i0)
static void _uneqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _uneqi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define uneqi_d(r0,r1,i0) _uneqi_d(_jit,r0,r1,i0) # define uneqi_d(r0,r1,i0) _uneqi_d(_jit,r0,r1,i0)
static void _uneqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _uneqi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define unger_f(r0,r1,r2) unger_d(r0,r1,r2) # define unger_f(r0,r1,r2) unger_d(r0,r1,r2)
# define unger_d(r0,r1,r2) _unger_d(_jit,r0,r1,r2) # define unger_d(r0,r1,r2) _unger_d(_jit,r0,r1,r2)
static void _unger_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _unger_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ungei_f(r0,r1,i0) _ungei_f(_jit,r0,r1,i0) # define ungei_f(r0,r1,i0) _ungei_f(_jit,r0,r1,i0)
static void _ungei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _ungei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define ungei_d(r0,r1,i0) _ungei_d(_jit,r0,r1,i0) # define ungei_d(r0,r1,i0) _ungei_d(_jit,r0,r1,i0)
static void _ungei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _ungei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define ungtr_f(r0,r1,r2) ungtr_d(r0,r1,r2) # define ungtr_f(r0,r1,r2) ungtr_d(r0,r1,r2)
# define ungtr_d(r0,r1,r2) _ungtr_d(_jit,r0,r1,r2) # define ungtr_d(r0,r1,r2) _ungtr_d(_jit,r0,r1,r2)
static void _ungtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ungtr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ungti_f(r0,r1,i0) _ungti_f(_jit,r0,r1,i0) # define ungti_f(r0,r1,i0) _ungti_f(_jit,r0,r1,i0)
static void _ungti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _ungti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define ungti_d(r0,r1,i0) _ungti_d(_jit,r0,r1,i0) # define ungti_d(r0,r1,i0) _ungti_d(_jit,r0,r1,i0)
static void _ungti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _ungti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define ltgtr_f(r0,r1,r2) ltgtr_d(r0,r1,r2) # define ltgtr_f(r0,r1,r2) ltgtr_d(r0,r1,r2)
# define ltgtr_d(r0,r1,r2) _ltgtr_d(_jit,r0,r1,r2) # define ltgtr_d(r0,r1,r2) _ltgtr_d(_jit,r0,r1,r2)
static void _ltgtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ltgtr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ltgti_f(r0,r1,i0) _ltgti_f(_jit,r0,r1,i0) # define ltgti_f(r0,r1,i0) _ltgti_f(_jit,r0,r1,i0)
static void _ltgti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _ltgti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define ltgti_d(r0,r1,i0) _ltgti_d(_jit,r0,r1,i0) # define ltgti_d(r0,r1,i0) _ltgti_d(_jit,r0,r1,i0)
static void _ltgti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _ltgti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define ordr_f(r0,r1,r2) ordr_d(r0,r1,r2) # define ordr_f(r0,r1,r2) ordr_d(r0,r1,r2)
# define ordr_d(r0,r1,r2) _ordr_d(_jit,r0,r1,r2) # define ordr_d(r0,r1,r2) _ordr_d(_jit,r0,r1,r2)
static void _ordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ordr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ordi_f(r0,r1,i0) _ordi_f(_jit,r0,r1,i0) # define ordi_f(r0,r1,i0) _ordi_f(_jit,r0,r1,i0)
static void _ordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _ordi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define ordi_d(r0,r1,i0) _ordi_d(_jit,r0,r1,i0) # define ordi_d(r0,r1,i0) _ordi_d(_jit,r0,r1,i0)
static void _ordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _ordi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define unordr_f(r0,r1,r2) unordr_d(r0,r1,r2) # define unordr_f(r0,r1,r2) unordr_d(r0,r1,r2)
# define unordr_d(r0,r1,r2) _unordr_d(_jit,r0,r1,r2) # define unordr_d(r0,r1,r2) _unordr_d(_jit,r0,r1,r2)
static void _unordr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _unordr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define unordi_f(r0,r1,i0) _unordi_f(_jit,r0,r1,i0) # define unordi_f(r0,r1,i0) _unordi_f(_jit,r0,r1,i0)
static void _unordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _unordi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define unordi_d(r0,r1,i0) _unordi_d(_jit,r0,r1,i0) # define unordi_d(r0,r1,i0) _unordi_d(_jit,r0,r1,i0)
static void _unordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _unordi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define bltr_f(i0,r0,r1) bltr_d(i0,r0,r1) # define bltr_f(i0,r0,r1) bltr_d(i0,r0,r1)
# define bltr_d(i0,r0,r1) _bltr_d(_jit,i0,r0,r1) # define bltr_d(i0,r0,r1) _bltr_d(_jit,i0,r0,r1)
static jit_word_t _bltr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bltr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define blti_f(i0,r0,i1) _blti_f(_jit,i0,r0,i1) # define blti_f(i0,r0,i1) _blti_f(_jit,i0,r0,i1)
static jit_word_t _blti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _blti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define blti_d(i0,r0,i1) _blti_d(_jit,i0,r0,i1) # define blti_d(i0,r0,i1) _blti_d(_jit,i0,r0,i1)
static jit_word_t _blti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _blti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bler_f(i0,r0,r1) bler_d(i0,r0,r1) # define bler_f(i0,r0,r1) bler_d(i0,r0,r1)
# define bler_d(i0,r0,r1) _bler_d(_jit,i0,r0,r1) # define bler_d(i0,r0,r1) _bler_d(_jit,i0,r0,r1)
static jit_word_t _bler_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bler_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define blei_f(i0,r0,i1) _blei_f(_jit,i0,r0,i1) # define blei_f(i0,r0,i1) _blei_f(_jit,i0,r0,i1)
static jit_word_t _blei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _blei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define blei_d(i0,r0,i1) _blei_d(_jit,i0,r0,i1) # define blei_d(i0,r0,i1) _blei_d(_jit,i0,r0,i1)
static jit_word_t _blei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _blei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define beqr_f(i0,r0,r1) beqr_d(i0,r0,r1) # define beqr_f(i0,r0,r1) beqr_d(i0,r0,r1)
# define beqr_d(i0,r0,r1) _beqr_d(_jit,i0,r0,r1) # define beqr_d(i0,r0,r1) _beqr_d(_jit,i0,r0,r1)
static jit_word_t _beqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _beqr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define beqi_f(i0,r0,i1) _beqi_f(_jit,i0,r0,i1) # define beqi_f(i0,r0,i1) _beqi_f(_jit,i0,r0,i1)
static jit_word_t _beqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _beqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define beqi_d(i0,r0,i1) _beqi_d(_jit,i0,r0,i1) # define beqi_d(i0,r0,i1) _beqi_d(_jit,i0,r0,i1)
static jit_word_t _beqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _beqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bger_f(i0,r0,r1) bger_d(i0,r0,r1) # define bger_f(i0,r0,r1) bger_d(i0,r0,r1)
# define bger_d(i0,r0,r1) _bger_d(_jit,i0,r0,r1) # define bger_d(i0,r0,r1) _bger_d(_jit,i0,r0,r1)
static jit_word_t _bger_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bger_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bgei_f(i0,r0,i1) _bgei_f(_jit,i0,r0,i1) # define bgei_f(i0,r0,i1) _bgei_f(_jit,i0,r0,i1)
static jit_word_t _bgei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bgei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bgei_d(i0,r0,i1) _bgei_d(_jit,i0,r0,i1) # define bgei_d(i0,r0,i1) _bgei_d(_jit,i0,r0,i1)
static jit_word_t _bgei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bgei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bgtr_f(i0,r0,r1) bgtr_d(i0,r0,r1) # define bgtr_f(i0,r0,r1) bgtr_d(i0,r0,r1)
# define bgtr_d(i0,r0,r1) _bgtr_d(_jit,i0,r0,r1) # define bgtr_d(i0,r0,r1) _bgtr_d(_jit,i0,r0,r1)
static jit_word_t _bgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bgtr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bgti_f(i0,r0,i1) _bgti_f(_jit,i0,r0,i1) # define bgti_f(i0,r0,i1) _bgti_f(_jit,i0,r0,i1)
static jit_word_t _bgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bgti_d(i0,r0,i1) _bgti_d(_jit,i0,r0,i1) # define bgti_d(i0,r0,i1) _bgti_d(_jit,i0,r0,i1)
static jit_word_t _bgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bner_f(i0,r0,r1) bner_d(i0,r0,r1) # define bner_f(i0,r0,r1) bner_d(i0,r0,r1)
# define bner_d(i0,r0,r1) _bner_d(_jit,i0,r0,r1) # define bner_d(i0,r0,r1) _bner_d(_jit,i0,r0,r1)
static jit_word_t _bner_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bner_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bnei_f(i0,r0,i1) _bnei_f(_jit,i0,r0,i1) # define bnei_f(i0,r0,i1) _bnei_f(_jit,i0,r0,i1)
static jit_word_t _bnei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bnei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bnei_d(i0,r0,i1) _bnei_d(_jit,i0,r0,i1) # define bnei_d(i0,r0,i1) _bnei_d(_jit,i0,r0,i1)
static jit_word_t _bnei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bnei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bunltr_f(i0,r0,r1) bunltr_d(i0,r0,r1) # define bunltr_f(i0,r0,r1) bunltr_d(i0,r0,r1)
# define bunltr_d(i0,r0,r1) _bunltr_d(_jit,i0,r0,r1) # define bunltr_d(i0,r0,r1) _bunltr_d(_jit,i0,r0,r1)
static jit_word_t _bunltr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bunltr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bunlti_f(i0,r0,i1) _bunlti_f(_jit,i0,r0,i1) # define bunlti_f(i0,r0,i1) _bunlti_f(_jit,i0,r0,i1)
static jit_word_t _bunlti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bunlti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bunlti_d(i0,r0,i1) _bunlti_d(_jit,i0,r0,i1) # define bunlti_d(i0,r0,i1) _bunlti_d(_jit,i0,r0,i1)
static jit_word_t _bunlti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bunlti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bunler_f(i0,r0,r1) bunler_d(i0,r0,r1) # define bunler_f(i0,r0,r1) bunler_d(i0,r0,r1)
# define bunler_d(i0,r0,r1) _bunler_d(_jit,i0,r0,r1) # define bunler_d(i0,r0,r1) _bunler_d(_jit,i0,r0,r1)
static jit_word_t _bunler_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bunler_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bunlei_f(i0,r0,i1) _bunlei_f(_jit,i0,r0,i1) # define bunlei_f(i0,r0,i1) _bunlei_f(_jit,i0,r0,i1)
static jit_word_t _bunlei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bunlei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bunlei_d(i0,r0,i1) _bunlei_d(_jit,i0,r0,i1) # define bunlei_d(i0,r0,i1) _bunlei_d(_jit,i0,r0,i1)
static jit_word_t _bunlei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bunlei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define buneqr_f(i0,r0,r1) buneqr_d(i0,r0,r1) # define buneqr_f(i0,r0,r1) buneqr_d(i0,r0,r1)
# define buneqr_d(i0,r0,r1) _buneqr_d(_jit,i0,r0,r1) # define buneqr_d(i0,r0,r1) _buneqr_d(_jit,i0,r0,r1)
static jit_word_t _buneqr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _buneqr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define buneqi_f(i0,r0,i1) _buneqi_f(_jit,i0,r0,i1) # define buneqi_f(i0,r0,i1) _buneqi_f(_jit,i0,r0,i1)
static jit_word_t _buneqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _buneqi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define buneqi_d(i0,r0,i1) _buneqi_d(_jit,i0,r0,i1) # define buneqi_d(i0,r0,i1) _buneqi_d(_jit,i0,r0,i1)
static jit_word_t _buneqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _buneqi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bunger_f(i0,r0,r1) bunger_d(i0,r0,r1) # define bunger_f(i0,r0,r1) bunger_d(i0,r0,r1)
# define bunger_d(i0,r0,r1) _bunger_d(_jit,i0,r0,r1) # define bunger_d(i0,r0,r1) _bunger_d(_jit,i0,r0,r1)
static jit_word_t _bunger_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bunger_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bungei_f(i0,r0,i1) _bungei_f(_jit,i0,r0,i1) # define bungei_f(i0,r0,i1) _bungei_f(_jit,i0,r0,i1)
static jit_word_t _bungei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bungei_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bungei_d(i0,r0,i1) _bungei_d(_jit,i0,r0,i1) # define bungei_d(i0,r0,i1) _bungei_d(_jit,i0,r0,i1)
static jit_word_t _bungei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bungei_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bungtr_f(i0,r0,r1) bungtr_d(i0,r0,r1) # define bungtr_f(i0,r0,r1) bungtr_d(i0,r0,r1)
# define bungtr_d(i0,r0,r1) _bungtr_d(_jit,i0,r0,r1) # define bungtr_d(i0,r0,r1) _bungtr_d(_jit,i0,r0,r1)
static jit_word_t _bungtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bungtr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bungti_f(i0,r0,i1) _bungti_f(_jit,i0,r0,i1) # define bungti_f(i0,r0,i1) _bungti_f(_jit,i0,r0,i1)
static jit_word_t _bungti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bungti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bungti_d(i0,r0,i1) _bungti_d(_jit,i0,r0,i1) # define bungti_d(i0,r0,i1) _bungti_d(_jit,i0,r0,i1)
static jit_word_t _bungti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bungti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bltgtr_f(i0,r0,r1) bltgtr_d(i0,r0,r1) # define bltgtr_f(i0,r0,r1) bltgtr_d(i0,r0,r1)
# define bltgtr_d(i0,r0,r1) _bltgtr_d(_jit,i0,r0,r1) # define bltgtr_d(i0,r0,r1) _bltgtr_d(_jit,i0,r0,r1)
static jit_word_t _bltgtr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bltgtr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bltgti_f(i0,r0,i1) _bltgti_f(_jit,i0,r0,i1) # define bltgti_f(i0,r0,i1) _bltgti_f(_jit,i0,r0,i1)
static jit_word_t _bltgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bltgti_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bltgti_d(i0,r0,i1) _bltgti_d(_jit,i0,r0,i1) # define bltgti_d(i0,r0,i1) _bltgti_d(_jit,i0,r0,i1)
static jit_word_t _bltgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bltgti_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bordr_f(i0,r0,r1) bordr_d(i0,r0,r1) # define bordr_f(i0,r0,r1) bordr_d(i0,r0,r1)
# define bordr_d(i0,r0,r1) _bordr_d(_jit,i0,r0,r1) # define bordr_d(i0,r0,r1) _bordr_d(_jit,i0,r0,r1)
static jit_word_t _bordr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bordr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bordi_f(i0,r0,i1) _bordi_f(_jit,i0,r0,i1) # define bordi_f(i0,r0,i1) _bordi_f(_jit,i0,r0,i1)
static jit_word_t _bordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bordi_d(i0,r0,i1) _bordi_d(_jit,i0,r0,i1) # define bordi_d(i0,r0,i1) _bordi_d(_jit,i0,r0,i1)
static jit_word_t _bordi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*); static jit_word_t _bordi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define bunordr_f(i0,r0,r1) bunordr_d(i0,r0,r1) # define bunordr_f(i0,r0,r1) bunordr_d(i0,r0,r1)
# define bunordr_d(i0,r0,r1) _bunordr_d(_jit,i0,r0,r1) # define bunordr_d(i0,r0,r1) _bunordr_d(_jit,i0,r0,r1)
static jit_word_t _bunordr_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static jit_word_t _bunordr_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define bunordi_f(i0,r0,i1) _bunordi_f(_jit,i0,r0,i1) # define bunordi_f(i0,r0,i1) _bunordi_f(_jit,i0,r0,i1)
static jit_word_t _bunordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*); static jit_word_t _bunordi_f(jit_state_t*,jit_word_t,int32_t,jit_float32_t*);
# define bunordi_d(i0,r0,i1) _bunordi_d(_jit,i0,r0,i1) # define bunordi_d(i0,r0,i1) _bunordi_d(_jit,i0,r0,i1)
@ -375,32 +375,32 @@ static jit_word_t _bunordi_d(jit_state_t*,jit_word_t,int32_t,jit_float64_t*);
# define ldi_f(r0,i0) _ldi_f(_jit,r0,i0) # define ldi_f(r0,i0) _ldi_f(_jit,r0,i0)
static void _ldi_f(jit_state_t*,int32_t,jit_word_t); static void _ldi_f(jit_state_t*,int32_t,jit_word_t);
# define ldxr_f(r0,r1,r2) _ldxr_f(_jit,r0,r1,r2) # define ldxr_f(r0,r1,r2) _ldxr_f(_jit,r0,r1,r2)
static void _ldxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ldxi_f(r0,r1,i0) _ldxi_f(_jit,r0,r1,i0) # define ldxi_f(r0,r1,i0) _ldxi_f(_jit,r0,r1,i0)
static void _ldxi_f(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_f(jit_state_t*,int32_t,int32_t,jit_word_t);
# define str_f(r0,r1) STFSX(r1, _R0_REGNO, r0) # define str_f(r0,r1) STFSX(r1, _R0_REGNO, r0)
# define sti_f(i0,r0) _sti_f(_jit,i0,r0) # define sti_f(i0,r0) _sti_f(_jit,i0,r0)
static void _sti_f(jit_state_t*,jit_word_t,int32_t); static void _sti_f(jit_state_t*,jit_word_t,int32_t);
# define stxr_f(r0,r1,r2) _stxr_f(_jit,r0,r1,r2) # define stxr_f(r0,r1,r2) _stxr_f(_jit,r0,r1,r2)
static void _stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _stxr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define stxi_f(i0,r0,r1) _stxi_f(_jit,i0,r0,r1) # define stxi_f(i0,r0,r1) _stxi_f(_jit,i0,r0,r1)
static void _stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_f(jit_state_t*,jit_word_t,int32_t,int32_t);
# define ldr_d(r0,r1) LFDX(r0, _R0_REGNO, r1) # define ldr_d(r0,r1) LFDX(r0, _R0_REGNO, r1)
# define ldi_d(r0,i0) _ldi_d(_jit,r0,i0) # define ldi_d(r0,i0) _ldi_d(_jit,r0,i0)
static void _ldi_d(jit_state_t*,int32_t,jit_word_t); static void _ldi_d(jit_state_t*,int32_t,jit_word_t);
# define ldxr_d(r0,r1,r2) _ldxr_d(_jit,r0,r1,r2) # define ldxr_d(r0,r1,r2) _ldxr_d(_jit,r0,r1,r2)
static void _ldxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ldxi_d(r0,r1,i0) _ldxi_d(_jit,r0,r1,i0) # define ldxi_d(r0,r1,i0) _ldxi_d(_jit,r0,r1,i0)
static void _ldxi_d(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_d(jit_state_t*,int32_t,int32_t,jit_word_t);
# define str_d(r0,r1) STFDX(r1, _R0_REGNO, r0) # define str_d(r0,r1) STFDX(r1, _R0_REGNO, r0)
# define sti_d(i0,r0) _sti_d(_jit,i0,r0) # define sti_d(i0,r0) _sti_d(_jit,i0,r0)
static void _sti_d(jit_state_t*,jit_word_t,int32_t); static void _sti_d(jit_state_t*,jit_word_t,int32_t);
# define stxr_d(r0,r1,r2) _stxr_d(_jit,r0,r1,r2) # define stxr_d(r0,r1,r2) _stxr_d(_jit,r0,r1,r2)
static void _stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _stxr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define stxi_d(i0,r0,r1) _stxi_d(_jit,i0,r0,r1) # define stxi_d(i0,r0,r1) _stxi_d(_jit,i0,r0,r1)
static void _stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1) # define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1)
static void _vaarg_d(jit_state_t*, int32_t, jit_int32_t); static void _vaarg_d(jit_state_t*, int32_t, int32_t);
#endif #endif
#if CODE #if CODE
@ -430,7 +430,7 @@ _FXFL(jit_state_t *_jit, int o, int m, int b, int x, int r)
} }
static void static void
_movr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _movr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (r0 != r1) if (r0 != r1)
FMR(r0,r1); FMR(r0,r1);
@ -488,7 +488,7 @@ _movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t *i0)
/* should only work on newer ppc (fcfid is a ppc64 instruction) */ /* should only work on newer ppc (fcfid is a ppc64 instruction) */
static void static void
_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
# if __WORDSIZE == 32 # if __WORDSIZE == 32
int32_t reg; int32_t reg;
@ -506,7 +506,7 @@ _extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _truncr_d_i(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_fpr); reg = jit_get_reg(jit_class_fpr);
@ -519,7 +519,7 @@ _truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
# if __WORDSIZE == 64 # if __WORDSIZE == 64
static void static void
_truncr_d_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _truncr_d_l(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_fpr); reg = jit_get_reg(jit_class_fpr);
@ -534,7 +534,7 @@ _truncr_d_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
# define fpr_opi(name, type, size) \ # define fpr_opi(name, type, size) \
static void \ static void \
_##name##i_##type(jit_state_t *_jit, \ _##name##i_##type(jit_state_t *_jit, \
int32_t r0, jit_int32_t r1, \ int32_t r0, int32_t r1, \
jit_float##size##_t *i0) \ jit_float##size##_t *i0) \
{ \ { \
int32_t reg = jit_get_reg(jit_class_fpr); \ int32_t reg = jit_get_reg(jit_class_fpr); \
@ -573,7 +573,7 @@ fopi(div)
dopi(div) dopi(div)
static void static void
_ltr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ltr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMPO(CR_0, r1, r2); FCMPO(CR_0, r1, r2);
MFCR(r0); MFCR(r0);
@ -583,7 +583,7 @@ fopi(lt)
dopi(lt) dopi(lt)
static void static void
_ler_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ler_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMPO(CR_0, r1, r2); FCMPO(CR_0, r1, r2);
CREQV(CR_GT, CR_GT, CR_UN); CREQV(CR_GT, CR_GT, CR_UN);
@ -594,7 +594,7 @@ fopi(le)
dopi(le) dopi(le)
static void static void
_eqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _eqr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMPO(CR_0, r1, r2); FCMPO(CR_0, r1, r2);
MFCR(r0); MFCR(r0);
@ -604,7 +604,7 @@ fopi(eq)
dopi(eq) dopi(eq)
static void static void
_ger_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ger_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMPO(CR_0, r1, r2); FCMPO(CR_0, r1, r2);
CREQV(CR_LT, CR_LT, CR_UN); CREQV(CR_LT, CR_LT, CR_UN);
@ -615,7 +615,7 @@ fopi(ge)
dopi(ge) dopi(ge)
static void static void
_gtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _gtr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMPO(CR_0, r1, r2); FCMPO(CR_0, r1, r2);
MFCR(r0); MFCR(r0);
@ -625,7 +625,7 @@ fopi(gt)
dopi(gt) dopi(gt)
static void static void
_ner_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ner_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMPO(CR_0, r1, r2); FCMPO(CR_0, r1, r2);
CRNOT(CR_EQ, CR_EQ); CRNOT(CR_EQ, CR_EQ);
@ -636,7 +636,7 @@ fopi(ne)
dopi(ne) dopi(ne)
static void static void
_unltr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _unltr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMPU(CR_0, r1, r2); FCMPU(CR_0, r1, r2);
CROR(CR_LT, CR_LT, CR_UN); CROR(CR_LT, CR_LT, CR_UN);
@ -647,7 +647,7 @@ fopi(unlt)
dopi(unlt) dopi(unlt)
static void static void
_unler_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _unler_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMPU(CR_0, r1, r2); FCMPU(CR_0, r1, r2);
CRNOT(CR_GT, CR_GT); CRNOT(CR_GT, CR_GT);
@ -658,7 +658,7 @@ fopi(unle)
dopi(unle) dopi(unle)
static void static void
_uneqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _uneqr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMPU(CR_0, r1, r2); FCMPU(CR_0, r1, r2);
CROR(CR_EQ, CR_EQ, CR_UN); CROR(CR_EQ, CR_EQ, CR_UN);
@ -669,7 +669,7 @@ fopi(uneq)
dopi(uneq) dopi(uneq)
static void static void
_unger_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _unger_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMPU(CR_0, r1, r2); FCMPU(CR_0, r1, r2);
CRNOT(CR_LT, CR_LT); CRNOT(CR_LT, CR_LT);
@ -680,7 +680,7 @@ fopi(unge)
dopi(unge) dopi(unge)
static void static void
_ungtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ungtr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMPU(CR_0, r1, r2); FCMPU(CR_0, r1, r2);
CROR(CR_GT, CR_GT, CR_UN); CROR(CR_GT, CR_GT, CR_UN);
@ -691,7 +691,7 @@ fopi(ungt)
dopi(ungt) dopi(ungt)
static void static void
_ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ltgtr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMPU(CR_0, r1, r2); FCMPU(CR_0, r1, r2);
CROR(CR_GT, CR_GT, CR_LT); CROR(CR_GT, CR_GT, CR_LT);
@ -702,7 +702,7 @@ fopi(ltgt)
dopi(ltgt) dopi(ltgt)
static void static void
_ordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ordr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMPU(CR_0, r1, r2); FCMPU(CR_0, r1, r2);
CRNOT(CR_UN, CR_UN); CRNOT(CR_UN, CR_UN);
@ -713,7 +713,7 @@ fopi(ord)
dopi(ord) dopi(ord)
static void static void
_unordr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _unordr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMPU(CR_0, r1, r2); FCMPU(CR_0, r1, r2);
MFCR(r0); MFCR(r0);
@ -723,7 +723,7 @@ fopi(unord)
dopi(unord) dopi(unord)
static jit_word_t static jit_word_t
_bltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t d, w; jit_word_t d, w;
FCMPO(CR_0, r0, r1); FCMPO(CR_0, r0, r1);
@ -736,7 +736,7 @@ fbopi(lt)
dbopi(lt) dbopi(lt)
static jit_word_t static jit_word_t
_bler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t d, w; jit_word_t d, w;
FCMPO(CR_0, r0, r1); FCMPO(CR_0, r0, r1);
@ -750,7 +750,7 @@ fbopi(le)
dbopi(le) dbopi(le)
static jit_word_t static jit_word_t
_beqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _beqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t d, w; jit_word_t d, w;
FCMPO(CR_0, r0, r1); FCMPO(CR_0, r0, r1);
@ -763,7 +763,7 @@ fbopi(eq)
dbopi(eq) dbopi(eq)
static jit_word_t static jit_word_t
_bger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t d, w; jit_word_t d, w;
FCMPO(CR_0, r0, r1); FCMPO(CR_0, r0, r1);
@ -777,7 +777,7 @@ fbopi(ge)
dbopi(ge) dbopi(ge)
static jit_word_t static jit_word_t
_bgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t d, w; jit_word_t d, w;
FCMPO(CR_0, r0, r1); FCMPO(CR_0, r0, r1);
@ -790,7 +790,7 @@ fbopi(gt)
dbopi(gt) dbopi(gt)
static jit_word_t static jit_word_t
_bner_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bner_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t d, w; jit_word_t d, w;
FCMPO(CR_0, r0, r1); FCMPO(CR_0, r0, r1);
@ -803,7 +803,7 @@ fbopi(ne)
dbopi(ne) dbopi(ne)
static jit_word_t static jit_word_t
_bunltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bunltr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t d, w; jit_word_t d, w;
FCMPU(CR_0, r0, r1); FCMPU(CR_0, r0, r1);
@ -817,7 +817,7 @@ fbopi(unlt)
dbopi(unlt) dbopi(unlt)
static jit_word_t static jit_word_t
_bunler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bunler_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t d, w; jit_word_t d, w;
FCMPU(CR_0, r0, r1); FCMPU(CR_0, r0, r1);
@ -830,7 +830,7 @@ fbopi(unle)
dbopi(unle) dbopi(unle)
static jit_word_t static jit_word_t
_buneqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _buneqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t d, w; jit_word_t d, w;
FCMPU(CR_0, r0, r1); FCMPU(CR_0, r0, r1);
@ -844,7 +844,7 @@ fbopi(uneq)
dbopi(uneq) dbopi(uneq)
static jit_word_t static jit_word_t
_bunger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bunger_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t d, w; jit_word_t d, w;
FCMPU(CR_0, r0, r1); FCMPU(CR_0, r0, r1);
@ -857,7 +857,7 @@ fbopi(unge)
dbopi(unge) dbopi(unge)
static jit_word_t static jit_word_t
_bungtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bungtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t d, w; jit_word_t d, w;
FCMPU(CR_0, r0, r1); FCMPU(CR_0, r0, r1);
@ -871,7 +871,7 @@ fbopi(ungt)
dbopi(ungt) dbopi(ungt)
static jit_word_t static jit_word_t
_bltgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bltgtr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t d, w; jit_word_t d, w;
FCMPU(CR_0, r0, r1); FCMPU(CR_0, r0, r1);
@ -885,7 +885,7 @@ fbopi(ltgt)
dbopi(ltgt) dbopi(ltgt)
static jit_word_t static jit_word_t
_bordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t d, w; jit_word_t d, w;
FCMPU(CR_0, r0, r1); FCMPU(CR_0, r0, r1);
@ -898,7 +898,7 @@ fbopi(ord)
dbopi(ord) dbopi(ord)
static jit_word_t static jit_word_t
_bunordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _bunordr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t d, w; jit_word_t d, w;
FCMPU(CR_0, r0, r1); FCMPU(CR_0, r0, r1);
@ -963,7 +963,7 @@ _ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (r1 == _R0_REGNO) { if (r1 == _R0_REGNO) {
@ -981,7 +981,7 @@ _ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (r1 == _R0_REGNO) { if (r1 == _R0_REGNO) {
@ -999,7 +999,7 @@ _ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (i0 == 0) if (i0 == 0)
@ -1023,7 +1023,7 @@ _ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (i0 == 0) if (i0 == 0)
@ -1099,7 +1099,7 @@ _sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0)
} }
static void static void
_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _stxr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (r0 == _R0_REGNO) { if (r0 == _R0_REGNO) {
@ -1117,7 +1117,7 @@ _stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _stxr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (r0 == _R0_REGNO) { if (r0 == _R0_REGNO) {
@ -1135,7 +1135,7 @@ _stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (i0 == 0) if (i0 == 0)
@ -1159,7 +1159,7 @@ _stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (i0 == 0) if (i0 == 0)
@ -1183,7 +1183,7 @@ _stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vaarg_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
/* Load argument. */ /* Load argument. */
ldr_d(r0, r1); ldr_d(r0, r1);

View file

@ -204,7 +204,7 @@ _jit_allocai(jit_state_t *_jit, int32_t length)
} }
void void
_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) _jit_allocar(jit_state_t *_jit, int32_t u, int32_t v)
{ {
int32_t r0, r1; int32_t r0, r1;
assert(_jitc->function); assert(_jitc->function);
@ -1691,7 +1691,7 @@ jit_flush(void *fptr, void *tptr)
} }
void void
_emit_ldxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _emit_ldxi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
#if __WORDSIZE == 32 #if __WORDSIZE == 32
ldxi_i(rn(r0), rn(r1), i0); ldxi_i(rn(r0), rn(r1), i0);
@ -1701,7 +1701,7 @@ _emit_ldxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
void void
_emit_stxi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _emit_stxi(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
#if __WORDSIZE == 32 #if __WORDSIZE == 32
stxi_i(i0, rn(r0), rn(r1)); stxi_i(i0, rn(r0), rn(r1));
@ -1711,13 +1711,13 @@ _emit_stxi(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
void void
_emit_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _emit_ldxi_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
ldxi_d(rn(r0), rn(r1), i0); ldxi_d(rn(r0), rn(r1), i0);
} }
void void
_emit_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _emit_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
stxi_d(i0, rn(r0), rn(r1)); stxi_d(i0, rn(r0), rn(r1));
} }

File diff suppressed because it is too large Load diff

View file

@ -286,34 +286,34 @@
# define TCXB(R1,D2,X2,B2) RXE_(0xED,R1,X2,B2,D2,0x12) # define TCXB(R1,D2,X2,B2) RXE_(0xED,R1,X2,B2,D2,0x12)
# define fp(code,r0,r1,i0) _fp(_jit,jit_code_##code##i_f,r0,r1,i0) # define fp(code,r0,r1,i0) _fp(_jit,jit_code_##code##i_f,r0,r1,i0)
static void _fp(jit_state_t*,jit_code_t, static void _fp(jit_state_t*,jit_code_t,
int32_t,jit_int32_t,jit_float32_t*); int32_t,int32_t,jit_float32_t*);
# define dp(code,r0,r1,i0) _dp(_jit,jit_code_##code##i_d,r0,r1,i0) # define dp(code,r0,r1,i0) _dp(_jit,jit_code_##code##i_d,r0,r1,i0)
static void _dp(jit_state_t*,jit_code_t, static void _dp(jit_state_t*,jit_code_t,
int32_t,jit_int32_t,jit_float64_t*); int32_t,int32_t,jit_float64_t*);
# define fr(cc,r0,r1,r2) _fr(_jit,cc,r0,r1,r2) # define fr(cc,r0,r1,r2) _fr(_jit,cc,r0,r1,r2)
static void _fr(jit_state_t*,int32_t, static void _fr(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t);
# define dr(cc,r0,r1,r2) _dr(_jit,cc,r0,r1,r2) # define dr(cc,r0,r1,r2) _dr(_jit,cc,r0,r1,r2)
static void _dr(jit_state_t*,int32_t, static void _dr(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t);
# define fi(cc,r0,r1,i0) _fi(_jit,cc,r0,r1,i0) # define fi(cc,r0,r1,i0) _fi(_jit,cc,r0,r1,i0)
static void _fi(jit_state_t*,int32_t, static void _fi(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_float32_t*); int32_t,int32_t,jit_float32_t*);
# define di(cc,r0,r1,i0) _di(_jit,cc,r0,r1,i0) # define di(cc,r0,r1,i0) _di(_jit,cc,r0,r1,i0)
static void _di(jit_state_t*,int32_t, static void _di(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_float64_t*); int32_t,int32_t,jit_float64_t*);
# define bfr(cc,i0,r0,r1) _bfr(_jit,cc,i0,r0,r1) # define bfr(cc,i0,r0,r1) _bfr(_jit,cc,i0,r0,r1)
static void _bfr(jit_state_t*,int32_t, static void _bfr(jit_state_t*,int32_t,
jit_word_t,int32_t,jit_int32_t); jit_word_t,int32_t,int32_t);
# define bdr(cc,i0,r0,r1) _bdr(_jit,cc,i0,r0,r1) # define bdr(cc,i0,r0,r1) _bdr(_jit,cc,i0,r0,r1)
static void _bdr(jit_state_t*,int32_t, static void _bdr(jit_state_t*,int32_t,
jit_word_t,int32_t,jit_int32_t); jit_word_t,int32_t,int32_t);
# define bfr_p(cc,i0,r0,r1) _bfr_p(_jit,cc,i0,r0,r1) # define bfr_p(cc,i0,r0,r1) _bfr_p(_jit,cc,i0,r0,r1)
static jit_word_t _bfr_p(jit_state_t*,int32_t, static jit_word_t _bfr_p(jit_state_t*,int32_t,
jit_word_t,int32_t,jit_int32_t); jit_word_t,int32_t,int32_t);
# define bdr_p(cc,i0,r0,r1) _bdr_p(_jit,cc,i0,r0,r1) # define bdr_p(cc,i0,r0,r1) _bdr_p(_jit,cc,i0,r0,r1)
static jit_word_t _bdr_p(jit_state_t*,int32_t, static jit_word_t _bdr_p(jit_state_t*,int32_t,
jit_word_t,int32_t,jit_int32_t); jit_word_t,int32_t,int32_t);
# define bfi(cc,i0,r0,i1) _bfi(_jit,cc,i0,r0,i1) # define bfi(cc,i0,r0,i1) _bfi(_jit,cc,i0,r0,i1)
static void _bfi(jit_state_t*,int32_t, static void _bfi(jit_state_t*,int32_t,
jit_word_t,int32_t,jit_float32_t*); jit_word_t,int32_t,jit_float32_t*);
@ -328,22 +328,22 @@ static jit_word_t _bdi_p(jit_state_t*,int32_t,
jit_word_t,int32_t,jit_float64_t*); jit_word_t,int32_t,jit_float64_t*);
# define buneqr(db,i0,r0,r1) _buneqr(_jit,db,i0,r0,r1) # define buneqr(db,i0,r0,r1) _buneqr(_jit,db,i0,r0,r1)
static jit_word_t _buneqr(jit_state_t*,int32_t, static jit_word_t _buneqr(jit_state_t*,int32_t,
jit_word_t,int32_t,jit_int32_t); jit_word_t,int32_t,int32_t);
# define buneqi(db,i0,r0,i1) _buneqi(_jit,db,i0,r0,(jit_word_t)i1) # define buneqi(db,i0,r0,i1) _buneqi(_jit,db,i0,r0,(jit_word_t)i1)
static jit_word_t _buneqi(jit_state_t*,int32_t, static jit_word_t _buneqi(jit_state_t*,int32_t,
jit_word_t,int32_t,jit_word_t); jit_word_t,int32_t,jit_word_t);
# define bltgtr(db,i0,r0,r1) _bltgtr(_jit,db,i0,r0,r1) # define bltgtr(db,i0,r0,r1) _bltgtr(_jit,db,i0,r0,r1)
static jit_word_t _bltgtr(jit_state_t*,int32_t, static jit_word_t _bltgtr(jit_state_t*,int32_t,
jit_word_t,int32_t,jit_int32_t); jit_word_t,int32_t,int32_t);
# define bltgti(db,i0,r0,i1) _bltgti(_jit,db,i0,r0,(jit_word_t)i1) # define bltgti(db,i0,r0,i1) _bltgti(_jit,db,i0,r0,(jit_word_t)i1)
static jit_word_t _bltgti(jit_state_t*,int32_t, static jit_word_t _bltgti(jit_state_t*,int32_t,
jit_word_t,int32_t,jit_word_t); jit_word_t,int32_t,jit_word_t);
# define movr_f(r0,r1) _movr_f(_jit,r0,r1) # define movr_f(r0,r1) _movr_f(_jit,r0,r1)
static void _movr_f(jit_state_t*,int32_t,jit_int32_t); static void _movr_f(jit_state_t*,int32_t,int32_t);
# define movi_f(r0,i0) _movi_f(_jit,r0,i0) # define movi_f(r0,i0) _movi_f(_jit,r0,i0)
static void _movi_f(jit_state_t*,int32_t,jit_float32_t*); static void _movi_f(jit_state_t*,int32_t,jit_float32_t*);
# define movr_d(r0,r1) _movr_d(_jit,r0,r1) # define movr_d(r0,r1) _movr_d(_jit,r0,r1)
static void _movr_d(jit_state_t*,int32_t,jit_int32_t); static void _movr_d(jit_state_t*,int32_t,int32_t);
# define movi_d(r0,i0) _movi_d(_jit,r0,i0) # define movi_d(r0,i0) _movi_d(_jit,r0,i0)
static void _movi_d(jit_state_t*,int32_t,jit_float64_t*); static void _movi_d(jit_state_t*,int32_t,jit_float64_t*);
# define absr_f(r0,r1) LPEBR(r0,r1) # define absr_f(r0,r1) LPEBR(r0,r1)
@ -368,32 +368,32 @@ static void _movi_d(jit_state_t*,int32_t,jit_float64_t*);
# define extr_d_f(r0,r1) LEDBR(r0,r1) # define extr_d_f(r0,r1) LEDBR(r0,r1)
# define extr_f_d(r0,r1) LDEBR(r0,r1) # define extr_f_d(r0,r1) LDEBR(r0,r1)
# define addr_f(r0,r1,r2) _addr_f(_jit,r0,r1,r2) # define addr_f(r0,r1,r2) _addr_f(_jit,r0,r1,r2)
static void _addr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _addr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define addi_f(r0,r1,i0) fp(add,r0,r1,i0) # define addi_f(r0,r1,i0) fp(add,r0,r1,i0)
# define addr_d(r0,r1,r2) _addr_d(_jit,r0,r1,r2) # define addr_d(r0,r1,r2) _addr_d(_jit,r0,r1,r2)
static void _addr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _addr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define addi_d(r0,r1,i0) dp(add,r0,r1,i0) # define addi_d(r0,r1,i0) dp(add,r0,r1,i0)
# define subr_f(r0,r1,r2) _subr_f(_jit,r0,r1,r2) # define subr_f(r0,r1,r2) _subr_f(_jit,r0,r1,r2)
static void _subr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _subr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define subi_f(r0,r1,i0) fp(sub,r0,r1,i0) # define subi_f(r0,r1,i0) fp(sub,r0,r1,i0)
# define subr_d(r0,r1,r2) _subr_d(_jit,r0,r1,r2) # define subr_d(r0,r1,r2) _subr_d(_jit,r0,r1,r2)
static void _subr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _subr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define subi_d(r0,r1,i0) dp(sub,r0,r1,i0) # define subi_d(r0,r1,i0) dp(sub,r0,r1,i0)
# define rsbr_f(r0,r1,r2) subr_f(r0,r2,r1) # define rsbr_f(r0,r1,r2) subr_f(r0,r2,r1)
# define rsbi_f(r0,r1,i0) fp(rsb,r0,r1,i0) # define rsbi_f(r0,r1,i0) fp(rsb,r0,r1,i0)
# define rsbr_d(r0,r1,r2) subr_d(r0,r2,r1) # define rsbr_d(r0,r1,r2) subr_d(r0,r2,r1)
# define rsbi_d(r0,r1,i0) dp(rsb,r0,r1,i0) # define rsbi_d(r0,r1,i0) dp(rsb,r0,r1,i0)
# define mulr_f(r0,r1,r2) _mulr_f(_jit,r0,r1,r2) # define mulr_f(r0,r1,r2) _mulr_f(_jit,r0,r1,r2)
static void _mulr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _mulr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define muli_f(r0,r1,i0) fp(mul,r0,r1,i0) # define muli_f(r0,r1,i0) fp(mul,r0,r1,i0)
# define mulr_d(r0,r1,r2) _mulr_d(_jit,r0,r1,r2) # define mulr_d(r0,r1,r2) _mulr_d(_jit,r0,r1,r2)
static void _mulr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _mulr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define muli_d(r0,r1,i0) dp(mul,r0,r1,i0) # define muli_d(r0,r1,i0) dp(mul,r0,r1,i0)
# define divr_f(r0,r1,r2) _divr_f(_jit,r0,r1,r2) # define divr_f(r0,r1,r2) _divr_f(_jit,r0,r1,r2)
static void _divr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _divr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define divi_f(r0,r1,i0) fp(div,r0,r1,i0) # define divi_f(r0,r1,i0) fp(div,r0,r1,i0)
# define divr_d(r0,r1,r2) _divr_d(_jit,r0,r1,r2) # define divr_d(r0,r1,r2) _divr_d(_jit,r0,r1,r2)
static void _divr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _divr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define divi_d(r0,r1,i0) dp(div,r0,r1,i0) # define divi_d(r0,r1,i0) dp(div,r0,r1,i0)
# define ldr_f(r0,r1) LE(r0,0,0,r1) # define ldr_f(r0,r1) LE(r0,0,0,r1)
# define ldr_d(r0,r1) LD(r0,0,0,r1) # define ldr_d(r0,r1) LD(r0,0,0,r1)
@ -402,13 +402,13 @@ static void _ldi_f(jit_state_t*,int32_t,jit_word_t);
# define ldi_d(r0,i0) _ldi_d(_jit,r0,i0) # define ldi_d(r0,i0) _ldi_d(_jit,r0,i0)
static void _ldi_d(jit_state_t*,int32_t,jit_word_t); static void _ldi_d(jit_state_t*,int32_t,jit_word_t);
# define ldxr_f(r0,r1,r2) _ldxr_f(_jit,r0,r1,r2) # define ldxr_f(r0,r1,r2) _ldxr_f(_jit,r0,r1,r2)
static void _ldxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ldxr_d(r0,r1,r2) _ldxr_d(_jit,r0,r1,r2) # define ldxr_d(r0,r1,r2) _ldxr_d(_jit,r0,r1,r2)
static void _ldxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ldxi_f(r0,r1,i0) _ldxi_f(_jit,r0,r1,i0) # define ldxi_f(r0,r1,i0) _ldxi_f(_jit,r0,r1,i0)
static void _ldxi_f(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_f(jit_state_t*,int32_t,int32_t,jit_word_t);
# define ldxi_d(r0,r1,i0) _ldxi_d(_jit,r0,r1,i0) # define ldxi_d(r0,r1,i0) _ldxi_d(_jit,r0,r1,i0)
static void _ldxi_d(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_d(jit_state_t*,int32_t,int32_t,jit_word_t);
# define str_f(r0,r1) STE(r1,0,0,r0) # define str_f(r0,r1) STE(r1,0,0,r0)
# define str_d(r0,r1) STD(r1,0,0,r0) # define str_d(r0,r1) STD(r1,0,0,r0)
# define sti_f(i0,r0) _sti_f(_jit,i0,r0) # define sti_f(i0,r0) _sti_f(_jit,i0,r0)
@ -416,13 +416,13 @@ static void _sti_f(jit_state_t*,jit_word_t,int32_t);
# define sti_d(i0,r0) _sti_d(_jit,i0,r0) # define sti_d(i0,r0) _sti_d(_jit,i0,r0)
static void _sti_d(jit_state_t*,jit_word_t,int32_t); static void _sti_d(jit_state_t*,jit_word_t,int32_t);
# define stxr_f(r0,r1,r2) _stxr_f(_jit,r0,r1,r2) # define stxr_f(r0,r1,r2) _stxr_f(_jit,r0,r1,r2)
static void _stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _stxr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define stxr_d(r0,r1,r2) _stxr_d(_jit,r0,r1,r2) # define stxr_d(r0,r1,r2) _stxr_d(_jit,r0,r1,r2)
static void _stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _stxr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define stxi_f(i0,r0,r1) _stxi_f(_jit,i0,r0,r1) # define stxi_f(i0,r0,r1) _stxi_f(_jit,i0,r0,r1)
static void _stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_f(jit_state_t*,jit_word_t,int32_t,int32_t);
# define stxi_d(i0,r0,r1) _stxi_d(_jit,i0,r0,r1) # define stxi_d(i0,r0,r1) _stxi_d(_jit,i0,r0,r1)
static void _stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define ltr_f(r0,r1,r2) fr(CC_L,r0,r1,r2) # define ltr_f(r0,r1,r2) fr(CC_L,r0,r1,r2)
# define ltr_d(r0,r1,r2) dr(CC_L,r0,r1,r2) # define ltr_d(r0,r1,r2) dr(CC_L,r0,r1,r2)
# define lti_f(r0,r1,i0) fi(CC_L,r0,r1,i0) # define lti_f(r0,r1,i0) fi(CC_L,r0,r1,i0)
@ -456,9 +456,9 @@ static void _stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t);
# define unlei_f(r0,r1,i0) fi(CC_NH,r0,r1,i0) # define unlei_f(r0,r1,i0) fi(CC_NH,r0,r1,i0)
# define unlei_d(r0,r1,i0) di(CC_NH,r0,r1,i0) # define unlei_d(r0,r1,i0) di(CC_NH,r0,r1,i0)
# define uneqr_f(r0,r1,r2) _uneqr_f(_jit,r0,r1,r2) # define uneqr_f(r0,r1,r2) _uneqr_f(_jit,r0,r1,r2)
static void _uneqr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _uneqr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define uneqr_d(r0,r1,r2) _uneqr_d(_jit,r0,r1,r2) # define uneqr_d(r0,r1,r2) _uneqr_d(_jit,r0,r1,r2)
static void _uneqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _uneqr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define uneqi_f(r0,r1,i0) fp(uneq,r0,r1,i0) # define uneqi_f(r0,r1,i0) fp(uneq,r0,r1,i0)
# define uneqi_d(r0,r1,i0) dp(uneq,r0,r1,i0) # define uneqi_d(r0,r1,i0) dp(uneq,r0,r1,i0)
# define unger_f(r0,r1,r2) fr(CC_NL,r0,r1,r2) # define unger_f(r0,r1,r2) fr(CC_NL,r0,r1,r2)
@ -470,9 +470,9 @@ static void _uneqr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t);
# define ungti_f(r0,r1,i0) fi(CC_NLE,r0,r1,i0) # define ungti_f(r0,r1,i0) fi(CC_NLE,r0,r1,i0)
# define ungti_d(r0,r1,i0) di(CC_NLE,r0,r1,i0) # define ungti_d(r0,r1,i0) di(CC_NLE,r0,r1,i0)
# define ltgtr_f(r0,r1,r2) _ltgtr_f(_jit,r0,r1,r2) # define ltgtr_f(r0,r1,r2) _ltgtr_f(_jit,r0,r1,r2)
static void _ltgtr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ltgtr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ltgtr_d(r0,r1,r2) _ltgtr_d(_jit,r0,r1,r2) # define ltgtr_d(r0,r1,r2) _ltgtr_d(_jit,r0,r1,r2)
static void _ltgtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ltgtr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define ltgti_f(r0,r1,i0) fp(ltgt,r0,r1,i0) # define ltgti_f(r0,r1,i0) fp(ltgt,r0,r1,i0)
# define ltgti_d(r0,r1,i0) dp(ltgt,r0,r1,i0) # define ltgti_d(r0,r1,i0) dp(ltgt,r0,r1,i0)
# define ordr_f(r0,r1,r2) fr(CC_NO,r0,r1,r2) # define ordr_f(r0,r1,r2) fr(CC_NO,r0,r1,r2)
@ -596,13 +596,13 @@ static void _ltgtr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t);
# define bunordi_f_p(i0,r0,i1) bfi_p(CC_O,i0,r0,i1) # define bunordi_f_p(i0,r0,i1) bfi_p(CC_O,i0,r0,i1)
# define bunordi_d_p(i0,r0,i1) bdi_p(CC_O,i0,r0,i1) # define bunordi_d_p(i0,r0,i1) bdi_p(CC_O,i0,r0,i1)
# define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1) # define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1)
static void _vaarg_d(jit_state_t*, int32_t, jit_int32_t); static void _vaarg_d(jit_state_t*, int32_t, int32_t);
#endif #endif
#if CODE #if CODE
static void static void
_fp(jit_state_t *_jit, jit_code_t code, _fp(jit_state_t *_jit, jit_code_t code,
int32_t r0, jit_int32_t r1, jit_float32_t *i0) int32_t r0, int32_t r1, jit_float32_t *i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_fpr); reg = jit_get_reg(jit_class_fpr);
@ -622,7 +622,7 @@ _fp(jit_state_t *_jit, jit_code_t code,
static void static void
_dp(jit_state_t *_jit, jit_code_t code, _dp(jit_state_t *_jit, jit_code_t code,
int32_t r0, jit_int32_t r1, jit_float64_t *i0) int32_t r0, int32_t r1, jit_float64_t *i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_fpr); reg = jit_get_reg(jit_class_fpr);
@ -642,7 +642,7 @@ _dp(jit_state_t *_jit, jit_code_t code,
static void static void
_fr(jit_state_t *_jit, int32_t cc, _fr(jit_state_t *_jit, int32_t cc,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_word_t w; jit_word_t w;
LGHI(r0, 1); LGHI(r0, 1);
@ -655,7 +655,7 @@ _fr(jit_state_t *_jit, int32_t cc,
static void static void
_dr(jit_state_t *_jit, int32_t cc, _dr(jit_state_t *_jit, int32_t cc,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_word_t w; jit_word_t w;
LGHI(r0, 1); LGHI(r0, 1);
@ -668,7 +668,7 @@ _dr(jit_state_t *_jit, int32_t cc,
static void static void
_fi(jit_state_t *_jit, int32_t cc, _fi(jit_state_t *_jit, int32_t cc,
int32_t r0, jit_int32_t r1, jit_float32_t *i0) int32_t r0, int32_t r1, jit_float32_t *i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_fpr|jit_class_nospill); reg = jit_get_reg(jit_class_fpr|jit_class_nospill);
@ -679,7 +679,7 @@ _fi(jit_state_t *_jit, int32_t cc,
static void static void
_di(jit_state_t *_jit, int32_t cc, _di(jit_state_t *_jit, int32_t cc,
int32_t r0, jit_int32_t r1, jit_float64_t *i0) int32_t r0, int32_t r1, jit_float64_t *i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_fpr|jit_class_nospill); reg = jit_get_reg(jit_class_fpr|jit_class_nospill);
@ -691,7 +691,7 @@ _di(jit_state_t *_jit, int32_t cc,
static void static void
_bfr(jit_state_t *_jit, int32_t cc, _bfr(jit_state_t *_jit, int32_t cc,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t d; jit_word_t d;
CEBR(r0, r1); CEBR(r0, r1);
@ -706,7 +706,7 @@ _bfr(jit_state_t *_jit, int32_t cc,
static void static void
_bdr(jit_state_t *_jit, int32_t cc, _bdr(jit_state_t *_jit, int32_t cc,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t d; jit_word_t d;
CDBR(r0, r1); CDBR(r0, r1);
@ -721,7 +721,7 @@ _bdr(jit_state_t *_jit, int32_t cc,
static jit_word_t static jit_word_t
_bfr_p(jit_state_t *_jit, int32_t cc, _bfr_p(jit_state_t *_jit, int32_t cc,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
CEBR(r0, r1); CEBR(r0, r1);
@ -732,7 +732,7 @@ _bfr_p(jit_state_t *_jit, int32_t cc,
static jit_word_t static jit_word_t
_bdr_p(jit_state_t *_jit, int32_t cc, _bdr_p(jit_state_t *_jit, int32_t cc,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
CDBR(r0, r1); CDBR(r0, r1);
@ -791,7 +791,7 @@ _bdi_p(jit_state_t *_jit, int32_t cc,
static jit_word_t static jit_word_t
_buneqr(jit_state_t *_jit, int32_t db, _buneqr(jit_state_t *_jit, int32_t db,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t unord, ne, w; jit_word_t unord, ne, w;
if (db) CDBR(r0, r1); if (db) CDBR(r0, r1);
@ -825,7 +825,7 @@ _buneqi(jit_state_t *_jit, int32_t db,
static jit_word_t static jit_word_t
_bltgtr(jit_state_t *_jit, int32_t db, _bltgtr(jit_state_t *_jit, int32_t db,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t unord, eq, w; jit_word_t unord, eq, w;
if (db) CDBR(r0, r1); if (db) CDBR(r0, r1);
@ -858,7 +858,7 @@ _bltgti(jit_state_t *_jit, int32_t db,
} }
static void static void
_movr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _movr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (r0 != r1) if (r0 != r1)
LER(r0, r1); LER(r0, r1);
@ -888,7 +888,7 @@ _movi_f(jit_state_t *_jit, int32_t r0, jit_float32_t *i0)
} }
static void static void
_movr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _movr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (r0 != r1) if (r0 != r1)
LDR(r0, r1); LDR(r0, r1);
@ -929,7 +929,7 @@ _movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t *i0)
} }
static void static void
_addr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _addr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (r0 == r2) if (r0 == r2)
AEBR(r0, r1); AEBR(r0, r1);
@ -940,7 +940,7 @@ _addr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_addr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _addr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (r0 == r2) if (r0 == r2)
ADBR(r0, r1); ADBR(r0, r1);
@ -951,7 +951,7 @@ _addr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_subr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _subr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (r0 == r2) { if (r0 == r2) {
@ -968,7 +968,7 @@ _subr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_subr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _subr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (r0 == r2) { if (r0 == r2) {
@ -985,7 +985,7 @@ _subr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_mulr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _mulr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (r0 == r2) if (r0 == r2)
MEEBR(r0, r1); MEEBR(r0, r1);
@ -996,7 +996,7 @@ _mulr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_mulr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _mulr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (r0 == r2) if (r0 == r2)
MDBR(r0, r1); MDBR(r0, r1);
@ -1007,7 +1007,7 @@ _mulr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_divr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _divr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (r0 == r2) { if (r0 == r2) {
@ -1024,7 +1024,7 @@ _divr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_divr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _divr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (r0 == r2) { if (r0 == r2) {
@ -1061,7 +1061,7 @@ _ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg_but_zero(0); reg = jit_get_reg_but_zero(0);
@ -1072,7 +1072,7 @@ _ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg_but_zero(0); reg = jit_get_reg_but_zero(0);
@ -1083,7 +1083,7 @@ _ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (u12_p(i0)) if (u12_p(i0))
@ -1100,7 +1100,7 @@ _ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (u12_p(i0)) if (u12_p(i0))
@ -1137,7 +1137,7 @@ _sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0)
} }
static void static void
_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _stxr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg_but_zero(0); reg = jit_get_reg_but_zero(0);
@ -1148,7 +1148,7 @@ _stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _stxr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg_but_zero(0); reg = jit_get_reg_but_zero(0);
@ -1159,7 +1159,7 @@ _stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (u12_p(i0)) if (u12_p(i0))
@ -1176,7 +1176,7 @@ _stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (u12_p(i0)) if (u12_p(i0))
@ -1193,7 +1193,7 @@ _stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_uneqr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _uneqr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_word_t unord, eq; jit_word_t unord, eq;
movi(r0, 1); /* set to one */ movi(r0, 1); /* set to one */
@ -1208,7 +1208,7 @@ _uneqr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_uneqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _uneqr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_word_t unord, eq; jit_word_t unord, eq;
movi(r0, 1); /* set to one */ movi(r0, 1); /* set to one */
@ -1223,7 +1223,7 @@ _uneqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ltgtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ltgtr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_word_t unord, eq; jit_word_t unord, eq;
movi(r0, 0); /* set to zero */ movi(r0, 0); /* set to zero */
@ -1238,7 +1238,7 @@ _ltgtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ltgtr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_word_t unord, eq; jit_word_t unord, eq;
movi(r0, 0); /* set to zero */ movi(r0, 0); /* set to zero */
@ -1253,7 +1253,7 @@ _ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vaarg_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t rg0; int32_t rg0;
int32_t rg1; int32_t rg1;

View file

@ -17,9 +17,6 @@
* Paulo Cesar Pereira de Andrade * Paulo Cesar Pereira de Andrade
*/ */
#include "jit.h"
#include "jit/jit_private.h"
#if __WORDSIZE == 32 #if __WORDSIZE == 32
# define NUM_FLOAT_REG_ARGS 2 # define NUM_FLOAT_REG_ARGS 2
#else #else
@ -77,7 +74,7 @@ static int32_t _jit_get_reg_pair(jit_state_t*);
#define jit_unget_reg_pair(regno) _jit_unget_reg_pair(_jit,regno) #define jit_unget_reg_pair(regno) _jit_unget_reg_pair(_jit,regno)
static void _jit_unget_reg_pair(jit_state_t*,int32_t); static void _jit_unget_reg_pair(jit_state_t*,int32_t);
#define jit_get_reg_but_zero(flags) _jit_get_reg_but_zero(_jit,flags) #define jit_get_reg_but_zero(flags) _jit_get_reg_but_zero(_jit,flags)
static int32_t _jit_get_reg_but_zero(jit_state_t*,jit_int32_t); static int32_t _jit_get_reg_but_zero(jit_state_t*,int32_t);
#define jit_unget_reg_but_zero(reg) jit_unget_reg(reg) #define jit_unget_reg_but_zero(reg) jit_unget_reg(reg)
#define patch(instr, node) _patch(_jit, instr, node) #define patch(instr, node) _patch(_jit, instr, node)
static void _patch(jit_state_t*,jit_word_t,jit_node_t*); static void _patch(jit_state_t*,jit_word_t,jit_node_t*);
@ -207,7 +204,7 @@ _jit_allocai(jit_state_t *_jit, int32_t length)
} }
void void
_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) _jit_allocar(jit_state_t *_jit, int32_t u, int32_t v)
{ {
int32_t reg; int32_t reg;
assert(_jitc->function); assert(_jitc->function);

View file

@ -50,30 +50,30 @@
# define stack_framesize ((16 + (__WORDSIZE == 32) + 6) * sizeof(jit_word_t)) # define stack_framesize ((16 + (__WORDSIZE == 32) + 6) * sizeof(jit_word_t))
typedef union { typedef union {
struct { uint32_t b: 2; } op; struct { uint32_t b: 2; } op;
struct { uint32_t _: 2; jit_uint32_t b: 1; } a; struct { uint32_t _: 2; uint32_t b: 1; } a;
struct { uint32_t _: 2; jit_uint32_t b: 5; } rd; struct { uint32_t _: 2; uint32_t b: 5; } rd;
struct { uint32_t _: 2; jit_uint32_t b: 30; } disp30; struct { uint32_t _: 2; uint32_t b: 30; } disp30;
struct { uint32_t _: 3; jit_uint32_t b: 4; } cond; struct { uint32_t _: 3; uint32_t b: 4; } cond;
struct { uint32_t _: 7; jit_uint32_t b: 3; } op2; struct { uint32_t _: 7; uint32_t b: 3; } op2;
struct { uint32_t _: 7; jit_uint32_t b: 6; } op3; struct { uint32_t _: 7; uint32_t b: 6; } op3;
struct { uint32_t _: 10; jit_uint32_t b: 1; } cc1; struct { uint32_t _: 10; uint32_t b: 1; } cc1;
struct { uint32_t _: 10; jit_uint32_t b: 22; } imm22; struct { uint32_t _: 10; uint32_t b: 22; } imm22;
struct { uint32_t _: 10; jit_uint32_t b: 22; } disp22; struct { uint32_t _: 10; uint32_t b: 22; } disp22;
struct { uint32_t _: 11; jit_uint32_t b: 1; } cc0; struct { uint32_t _: 11; uint32_t b: 1; } cc0;
struct { uint32_t _: 12; jit_uint32_t b: 1; } p; struct { uint32_t _: 12; uint32_t b: 1; } p;
struct { uint32_t _: 13; jit_uint32_t b: 19; } disp19; struct { uint32_t _: 13; uint32_t b: 19; } disp19;
struct { uint32_t _: 13; jit_uint32_t b: 5; } rs1; struct { uint32_t _: 13; uint32_t b: 5; } rs1;
struct { uint32_t _: 18; jit_uint32_t b: 1; } i; struct { uint32_t _: 18; uint32_t b: 1; } i;
struct { uint32_t _: 18; jit_uint32_t b: 9; } opf; struct { uint32_t _: 18; uint32_t b: 9; } opf;
struct { uint32_t _: 19; jit_uint32_t b: 1; } x; struct { uint32_t _: 19; uint32_t b: 1; } x;
struct { uint32_t _: 19; jit_uint32_t b: 8; } asi; struct { uint32_t _: 19; uint32_t b: 8; } asi;
struct { uint32_t _: 19; jit_uint32_t b: 6; } res; struct { uint32_t _: 19; uint32_t b: 6; } res;
struct { uint32_t _: 19; jit_uint32_t b: 13; } simm13; struct { uint32_t _: 19; uint32_t b: 13; } simm13;
struct { uint32_t _: 20; jit_uint32_t b: 7; } asix; struct { uint32_t _: 20; uint32_t b: 7; } asix;
struct { uint32_t _: 20; jit_uint32_t b: 6; } asis; struct { uint32_t _: 20; uint32_t b: 6; } asis;
struct { uint32_t _: 26; jit_uint32_t b: 6; } shim; struct { uint32_t _: 26; uint32_t b: 6; } shim;
struct { uint32_t _: 25; jit_uint32_t b: 7; } imm7; struct { uint32_t _: 25; uint32_t b: 7; } imm7;
struct { uint32_t _: 27; jit_uint32_t b: 5; } rs2; struct { uint32_t _: 27; uint32_t b: 5; } rs2;
int32_t v; int32_t v;
} jit_instr_t; } jit_instr_t;
# define ii(i) *_jit->pc.ui++ = i # define ii(i) *_jit->pc.ui++ = i
@ -83,39 +83,39 @@ typedef union {
# define s22_p(imm) ((imm) <= 2097151 && (imm) >= -20971512) # define s22_p(imm) ((imm) <= 2097151 && (imm) >= -20971512)
# define s30_p(imm) ((imm) <= 536870911 && (imm) >= -536870912) # define s30_p(imm) ((imm) <= 536870911 && (imm) >= -536870912)
# define f1(op, disp30) _f1(_jit, op, disp30) # define f1(op, disp30) _f1(_jit, op, disp30)
static void _f1(jit_state_t*,int32_t,jit_int32_t); static void _f1(jit_state_t*,int32_t,int32_t);
# define f2r(op, rd, op2, imm22) _f2r(_jit, op, rd, op2, imm22) # define f2r(op, rd, op2, imm22) _f2r(_jit, op, rd, op2, imm22)
static void _f2r(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); static void _f2r(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_int32_t);
# define f2b(op, a, cond, op2, disp22) _f2b(_jit, op, a, cond, op2, disp22) # define f2b(op, a, cond, op2, disp22) _f2b(_jit, op, a, cond, op2, disp22)
static void static void
_f2b(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); _f2b(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_int32_t,jit_int32_t);
# if __WORDSIZE == 64 # if __WORDSIZE == 64
# define f2bp(op,a,cond,op2,cc1,cc0,p,disp19) \ # define f2bp(op,a,cond,op2,cc1,cc0,p,disp19) \
_f2bp(_jit,op,a,cond,op2,cc1,cc0,p,disp19) _f2bp(_jit,op,a,cond,op2,cc1,cc0,p,disp19)
static void static void
_f2bp(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t, _f2bp(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_int32_t,jit_int32_t,
int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t);
# endif # endif
# define f3r(op, rd, op3, rs1, rs2) _f3r(_jit, op, rd, op3, rs1, rs2) # define f3r(op, rd, op3, rs1, rs2) _f3r(_jit, op, rd, op3, rs1, rs2)
static void _f3r(jit_state_t*, static void _f3r(jit_state_t*,
int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t,jit_int32_t,jit_int32_t);
# if __WORDSIZE == 64 # if __WORDSIZE == 64
# define f3rx(op, rd, op3, rs1, rs2) _f3rx(_jit, op, rd, op3, rs1, rs2) # define f3rx(op, rd, op3, rs1, rs2) _f3rx(_jit, op, rd, op3, rs1, rs2)
static void _f3rx(jit_state_t*, static void _f3rx(jit_state_t*,
int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t,jit_int32_t,jit_int32_t);
# endif # endif
# define f3i(op, rd, op3, rs1, simm13) _f3i(_jit, op, rd, op3, rs1, simm13) # define f3i(op, rd, op3, rs1, simm13) _f3i(_jit, op, rd, op3, rs1, simm13)
static void _f3i(jit_state_t*, static void _f3i(jit_state_t*,
int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t,jit_int32_t,jit_int32_t);
# define f3s(op, rd, op3, rs1, simm13) _f3s(_jit, op, rd, op3, rs1, simm13) # define f3s(op, rd, op3, rs1, simm13) _f3s(_jit, op, rd, op3, rs1, simm13)
static void _f3s(jit_state_t*, static void _f3s(jit_state_t*,
int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t); int32_t,int32_t,jit_int32_t,jit_int32_t,jit_int32_t);
# define f3t(cond, rs1, i, ri) _f3t(_jit, cond, rs1, i, ri) # define f3t(cond, rs1, i, ri) _f3t(_jit, cond, rs1, i, ri)
static void _f3t(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t) static void _f3t(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_int32_t)
maybe_unused; maybe_unused;
# define f3a(op, rd, op3, rs1, rs2) _f3a(_jit, op, rd, op3, rs1, asi, rs2) # define f3a(op, rd, op3, rs1, rs2) _f3a(_jit, op, rd, op3, rs1, asi, rs2)
static void _f3a(jit_state_t*,int32_t, static void _f3a(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_int32_t,jit_int32_t,jit_int32_t) int32_t,int32_t,jit_int32_t,jit_int32_t,jit_int32_t)
maybe_unused; maybe_unused;
# define LDSB(rs1, rs2, rd) f3r(3, rd, 9, rs1, rs2) # define LDSB(rs1, rs2, rd) f3r(3, rd, 9, rs1, rs2)
# define LDSBI(rs1, imm, rd) f3i(3, rd, 9, rs1, imm) # define LDSBI(rs1, imm, rd) f3i(3, rd, 9, rs1, imm)
@ -540,7 +540,7 @@ static void _f3a(jit_state_t*,int32_t,
# define nop(i0) _nop(_jit, i0) # define nop(i0) _nop(_jit, i0)
static void _nop(jit_state_t*, int32_t); static void _nop(jit_state_t*, int32_t);
# define movr(r0, r1) _movr(_jit, r0, r1) # define movr(r0, r1) _movr(_jit, r0, r1)
static void _movr(jit_state_t*, int32_t, jit_int32_t); static void _movr(jit_state_t*, int32_t, int32_t);
# define movi(r0, i0) _movi(_jit, r0, i0) # define movi(r0, i0) _movi(_jit, r0, i0)
static void _movi(jit_state_t*, int32_t, jit_word_t); static void _movi(jit_state_t*, int32_t, jit_word_t);
# define movi_p(r0, i0) _movi_p(_jit, r0, i0) # define movi_p(r0, i0) _movi_p(_jit, r0, i0)
@ -549,111 +549,111 @@ static jit_word_t _movi_p(jit_state_t*, int32_t, jit_word_t);
# define negr(r0, r1) NEG(r1, r0) # define negr(r0, r1) NEG(r1, r0)
# define addr(r0, r1, r2) ADD(r1, r2, r0) # define addr(r0, r1, r2) ADD(r1, r2, r0)
# define addi(r0, r1, i0) _addi(_jit, r0, r1, i0) # define addi(r0, r1, i0) _addi(_jit, r0, r1, i0)
static void _addi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); static void _addi(jit_state_t*, int32_t, int32_t, jit_word_t);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define addcr(r0, r1, r2) ADDcc(r1, r2, r0) # define addcr(r0, r1, r2) ADDcc(r1, r2, r0)
# else # else
# define addcr(r0, r1, r2) _addcr(_jit, r0, r1, r2) # define addcr(r0, r1, r2) _addcr(_jit, r0, r1, r2)
static void _addcr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); static void _addcr(jit_state_t*, int32_t, int32_t, jit_int32_t);
# endif # endif
# define addci(r0, r1, i0) _addci(_jit, r0, r1, i0) # define addci(r0, r1, i0) _addci(_jit, r0, r1, i0)
static void _addci(jit_state_t*, int32_t, jit_int32_t, jit_word_t); static void _addci(jit_state_t*, int32_t, int32_t, jit_word_t);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define addxr(r0, r1, r2) ADDXcc(r1, r2, r0) # define addxr(r0, r1, r2) ADDXcc(r1, r2, r0)
# else # else
# define addxr(r0, r1, r2) _addxr(_jit, r0, r1, r2) # define addxr(r0, r1, r2) _addxr(_jit, r0, r1, r2)
static void _addxr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); static void _addxr(jit_state_t*, int32_t, int32_t, jit_int32_t);
# endif # endif
# define addxi(r0, r1, i0) _addxi(_jit, r0, r1, i0) # define addxi(r0, r1, i0) _addxi(_jit, r0, r1, i0)
static void _addxi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); static void _addxi(jit_state_t*, int32_t, int32_t, jit_word_t);
# define subr(r0, r1, r2) SUB(r1, r2, r0) # define subr(r0, r1, r2) SUB(r1, r2, r0)
# define subi(r0, r1, i0) _subi(_jit, r0, r1, i0) # define subi(r0, r1, i0) _subi(_jit, r0, r1, i0)
static void _subi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); static void _subi(jit_state_t*, int32_t, int32_t, jit_word_t);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define subcr(r0, r1, r2) SUBcc(r1, r2, r0) # define subcr(r0, r1, r2) SUBcc(r1, r2, r0)
# else # else
# define subcr(r0, r1, r2) _subcr(_jit, r0, r1, r2) # define subcr(r0, r1, r2) _subcr(_jit, r0, r1, r2)
static void _subcr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); static void _subcr(jit_state_t*, int32_t, int32_t, jit_int32_t);
# endif # endif
# define subci(r0, r1, i0) _subci(_jit, r0, r1, i0) # define subci(r0, r1, i0) _subci(_jit, r0, r1, i0)
static void _subci(jit_state_t*, int32_t, jit_int32_t, jit_word_t); static void _subci(jit_state_t*, int32_t, int32_t, jit_word_t);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define subxr(r0, r1, r2) SUBXcc(r1, r2, r0) # define subxr(r0, r1, r2) SUBXcc(r1, r2, r0)
# else # else
# define subxr(r0, r1, r2) _subxr(_jit, r0, r1, r2) # define subxr(r0, r1, r2) _subxr(_jit, r0, r1, r2)
static void _subxr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); static void _subxr(jit_state_t*, int32_t, int32_t, jit_int32_t);
# endif # endif
# define subxi(r0, r1, i0) _subxi(_jit, r0, r1, i0) # define subxi(r0, r1, i0) _subxi(_jit, r0, r1, i0)
static void _subxi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); static void _subxi(jit_state_t*, int32_t, int32_t, jit_word_t);
# define rsbi(r0, r1, i0) _rsbi(_jit, r0, r1, i0) # define rsbi(r0, r1, i0) _rsbi(_jit, r0, r1, i0)
static void _rsbi(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _rsbi(jit_state_t*,int32_t,int32_t,jit_word_t);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define mulr(r0, r1, r2) UMUL(r1, r2, r0) # define mulr(r0, r1, r2) UMUL(r1, r2, r0)
# else # else
# define mulr(r0, r1, r2) MULX(r1, r2, r0) # define mulr(r0, r1, r2) MULX(r1, r2, r0)
# endif # endif
# define muli(r0, r1, i0) _muli(_jit, r0, r1, i0) # define muli(r0, r1, i0) _muli(_jit, r0, r1, i0)
static void _muli(jit_state_t*, int32_t, jit_int32_t, jit_word_t); static void _muli(jit_state_t*, int32_t, int32_t, jit_word_t);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define qmulr(r0,r1,r2,r3) iqmulr(r0,r1,r2,r3,1) # define qmulr(r0,r1,r2,r3) iqmulr(r0,r1,r2,r3,1)
# define qmulr_u(r0,r1,r2,r3) iqmulr(r0,r1,r2,r3,0) # define qmulr_u(r0,r1,r2,r3) iqmulr(r0,r1,r2,r3,0)
# define iqmulr(r0,r1,r2,r3,cc) _iqmulr(_jit,r0,r1,r2,r3,cc) # define iqmulr(r0,r1,r2,r3,cc) _iqmulr(_jit,r0,r1,r2,r3,cc)
static void _iqmulr(jit_state_t*,int32_t,jit_int32_t, static void _iqmulr(jit_state_t*,int32_t,int32_t,
int32_t,jit_int32_t,jit_bool_t); int32_t,int32_t,jit_bool_t);
# define qmuli(r0,r1,r2,i0) iqmuli(r0,r1,r2,i0,1) # define qmuli(r0,r1,r2,i0) iqmuli(r0,r1,r2,i0,1)
# define qmuli_u(r0,r1,r2,i0) iqmuli(r0,r1,r2,i0,0) # define qmuli_u(r0,r1,r2,i0) iqmuli(r0,r1,r2,i0,0)
# define iqmuli(r0,r1,r2,i0,cc) _iqmuli(_jit,r0,r1,r2,i0,cc) # define iqmuli(r0,r1,r2,i0,cc) _iqmuli(_jit,r0,r1,r2,i0,cc)
static void _iqmuli(jit_state_t*,int32_t,jit_int32_t, static void _iqmuli(jit_state_t*,int32_t,int32_t,
int32_t,jit_word_t,jit_bool_t); int32_t,jit_word_t,jit_bool_t);
# else # else
# define qmulr(r0,r1,r2,r3) _qmulr(_jit,r0,r1,r2,r3) # define qmulr(r0,r1,r2,r3) _qmulr(_jit,r0,r1,r2,r3)
static void _qmulr(jit_state_t*,int32_t,jit_int32_t, static void _qmulr(jit_state_t*,int32_t,int32_t,
int32_t,jit_int32_t); int32_t,int32_t);
# define qmuli(r0,r1,r2,i0) _qmuli(_jit,r0,r1,r2,i0) # define qmuli(r0,r1,r2,i0) _qmuli(_jit,r0,r1,r2,i0)
static void _qmuli(jit_state_t*,int32_t,jit_int32_t, static void _qmuli(jit_state_t*,int32_t,int32_t,
int32_t,jit_word_t); int32_t,jit_word_t);
# define qmulr_u(r0,r1,r2,r3) _qmulr_u(_jit,r0,r1,r2,r3) # define qmulr_u(r0,r1,r2,r3) _qmulr_u(_jit,r0,r1,r2,r3)
static void _qmulr_u(jit_state_t*,int32_t,jit_int32_t, static void _qmulr_u(jit_state_t*,int32_t,int32_t,
int32_t,jit_int32_t); int32_t,int32_t);
# define qmuli_u(r0,r1,r2,i0) _qmuli_u(_jit,r0,r1,r2,i0) # define qmuli_u(r0,r1,r2,i0) _qmuli_u(_jit,r0,r1,r2,i0)
static void _qmuli_u(jit_state_t*,int32_t,jit_int32_t, static void _qmuli_u(jit_state_t*,int32_t,int32_t,
int32_t,jit_word_t); int32_t,jit_word_t);
# endif # endif
# define divr(r0, r1, r2) _divr(_jit, r0, r1, r2) # define divr(r0, r1, r2) _divr(_jit, r0, r1, r2)
static void _divr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); static void _divr(jit_state_t*, int32_t, int32_t, jit_int32_t);
# define divi(r0, r1, i0) _divi(_jit, r0, r1, i0) # define divi(r0, r1, i0) _divi(_jit, r0, r1, i0)
static void _divi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); static void _divi(jit_state_t*, int32_t, int32_t, jit_word_t);
# define divr_u(r0, r1, r2) _divr_u(_jit, r0, r1, r2) # define divr_u(r0, r1, r2) _divr_u(_jit, r0, r1, r2)
static void _divr_u(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); static void _divr_u(jit_state_t*, int32_t, int32_t, jit_int32_t);
# define divi_u(r0, r1, i0) _divi_u(_jit, r0, r1, i0) # define divi_u(r0, r1, i0) _divi_u(_jit, r0, r1, i0)
static void _divi_u(jit_state_t*, int32_t, jit_int32_t, jit_word_t); static void _divi_u(jit_state_t*, int32_t, int32_t, jit_word_t);
# define qdivr(r0,r1,r2,r3) iqdivr(r0,r1,r2,r3,1) # define qdivr(r0,r1,r2,r3) iqdivr(r0,r1,r2,r3,1)
# define qdivr_u(r0,r1,r2,r3) iqdivr(r0,r1,r2,r3,0) # define qdivr_u(r0,r1,r2,r3) iqdivr(r0,r1,r2,r3,0)
# define iqdivr(r0,r1,r2,r3,cc) _iqdivr(_jit,r0,r1,r2,r3,cc) # define iqdivr(r0,r1,r2,r3,cc) _iqdivr(_jit,r0,r1,r2,r3,cc)
static void _iqdivr(jit_state_t*,int32_t,jit_int32_t, static void _iqdivr(jit_state_t*,int32_t,int32_t,
int32_t,jit_int32_t,jit_bool_t); int32_t,int32_t,jit_bool_t);
# define qdivi(r0,r1,r2,i0) iqdivi(r0,r1,r2,i0,1) # define qdivi(r0,r1,r2,i0) iqdivi(r0,r1,r2,i0,1)
# define qdivi_u(r0,r1,r2,i0) iqdivi(r0,r1,r2,i0,0) # define qdivi_u(r0,r1,r2,i0) iqdivi(r0,r1,r2,i0,0)
# define iqdivi(r0,r1,r2,i0,cc) _iqdivi(_jit,r0,r1,r2,i0,cc) # define iqdivi(r0,r1,r2,i0,cc) _iqdivi(_jit,r0,r1,r2,i0,cc)
static void _iqdivi(jit_state_t*,int32_t,jit_int32_t, static void _iqdivi(jit_state_t*,int32_t,int32_t,
int32_t,jit_word_t,jit_bool_t); int32_t,jit_word_t,jit_bool_t);
# define remr(r0, r1, r2) _remr(_jit, r0, r1, r2) # define remr(r0, r1, r2) _remr(_jit, r0, r1, r2)
static void _remr(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); static void _remr(jit_state_t*, int32_t, int32_t, jit_int32_t);
# define remi(r0, r1, i0) _remi(_jit, r0, r1, i0) # define remi(r0, r1, i0) _remi(_jit, r0, r1, i0)
static void _remi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); static void _remi(jit_state_t*, int32_t, int32_t, jit_word_t);
# define remr_u(r0, r1, r2) _remr_u(_jit, r0, r1, r2) # define remr_u(r0, r1, r2) _remr_u(_jit, r0, r1, r2)
static void _remr_u(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); static void _remr_u(jit_state_t*, int32_t, int32_t, jit_int32_t);
# define remi_u(r0, r1, i0) _remi_u(_jit, r0, r1, i0) # define remi_u(r0, r1, i0) _remi_u(_jit, r0, r1, i0)
static void _remi_u(jit_state_t*, int32_t, jit_int32_t, jit_word_t); static void _remi_u(jit_state_t*, int32_t, int32_t, jit_word_t);
# define andr(r0, r1, r2) AND(r1, r2, r0) # define andr(r0, r1, r2) AND(r1, r2, r0)
# define andi(r0, r1, i0) _andi(_jit, r0, r1, i0) # define andi(r0, r1, i0) _andi(_jit, r0, r1, i0)
static void _andi(jit_state_t*, int32_t, jit_int32_t, jit_word_t); static void _andi(jit_state_t*, int32_t, int32_t, jit_word_t);
# define orr(r0, r1, r2) OR(r1, r2, r0) # define orr(r0, r1, r2) OR(r1, r2, r0)
# define ori(r0, r1, i0) _ori(_jit, r0, r1, i0) # define ori(r0, r1, i0) _ori(_jit, r0, r1, i0)
static void _ori(jit_state_t*, int32_t, jit_int32_t, jit_word_t); static void _ori(jit_state_t*, int32_t, int32_t, jit_word_t);
# define xorr(r0, r1, r2) XOR(r1, r2, r0) # define xorr(r0, r1, r2) XOR(r1, r2, r0)
# define xori(r0, r1, i0) _xori(_jit, r0, r1, i0) # define xori(r0, r1, i0) _xori(_jit, r0, r1, i0)
static void _xori(jit_state_t*, int32_t, jit_int32_t, jit_word_t); static void _xori(jit_state_t*, int32_t, int32_t, jit_word_t);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define lshr(r0, r1, r2) SLL(r1, r2, r0) # define lshr(r0, r1, r2) SLL(r1, r2, r0)
# define lshi(r0, r1, i0) SLLI(r1, i0, r0) # define lshi(r0, r1, i0) SLLI(r1, i0, r0)
@ -671,26 +671,26 @@ static void _xori(jit_state_t*, int32_t, jit_int32_t, jit_word_t);
# endif # endif
# define htonr_us(r0,r1) extr_us(r0,r1) # define htonr_us(r0,r1) extr_us(r0,r1)
# define extr_c(r0,r1) _extr_c(_jit,r0,r1) # define extr_c(r0,r1) _extr_c(_jit,r0,r1)
static void _extr_c(jit_state_t*,int32_t,jit_int32_t); static void _extr_c(jit_state_t*,int32_t,int32_t);
# define extr_uc(r0,r1) andi(r0, r1, 0xff) # define extr_uc(r0,r1) andi(r0, r1, 0xff)
# define extr_s(r0,r1) _extr_s(_jit,r0,r1) # define extr_s(r0,r1) _extr_s(_jit,r0,r1)
static void _extr_s(jit_state_t*,int32_t,jit_int32_t); static void _extr_s(jit_state_t*,int32_t,int32_t);
# define extr_us(r0,r1) _extr_us(_jit,r0,r1) # define extr_us(r0,r1) _extr_us(_jit,r0,r1)
static void _extr_us(jit_state_t*,int32_t,jit_int32_t); static void _extr_us(jit_state_t*,int32_t,int32_t);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define htonr_ui(r0,r1) movr(r0,r1) # define htonr_ui(r0,r1) movr(r0,r1)
# else # else
# define htonr_ui(r0,r1) extr_ui(r0,r1) # define htonr_ui(r0,r1) extr_ui(r0,r1)
# define htonr_ul(r0,r1) movr(r0,r1) # define htonr_ul(r0,r1) movr(r0,r1)
# define extr_i(r0,r1) _extr_i(_jit,r0,r1) # define extr_i(r0,r1) _extr_i(_jit,r0,r1)
static void _extr_i(jit_state_t*,int32_t,jit_int32_t); static void _extr_i(jit_state_t*,int32_t,int32_t);
# define extr_ui(r0,r1) _extr_ui(_jit,r0,r1) # define extr_ui(r0,r1) _extr_ui(_jit,r0,r1)
static void _extr_ui(jit_state_t*,int32_t,jit_int32_t); static void _extr_ui(jit_state_t*,int32_t,int32_t);
# endif # endif
# define cr(cc, r0, r1, r2) _cr(_jit, cc, r0, r1, r2) # define cr(cc, r0, r1, r2) _cr(_jit, cc, r0, r1, r2)
static void _cr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); static void _cr(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_int32_t);
# define cw(cc, r0, r1, i0) _cw(_jit, cc, r0, r1, i0) # define cw(cc, r0, r1, i0) _cw(_jit, cc, r0, r1, i0)
static void _cw(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_word_t); static void _cw(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_word_t);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define ltr(r0, r1, r2) cr(SPARC_BL, r0, r1, r2) # define ltr(r0, r1, r2) cr(SPARC_BL, r0, r1, r2)
# define lti(r0, r1, i0) cw(SPARC_BL, r0, r1, i0) # define lti(r0, r1, i0) cw(SPARC_BL, r0, r1, i0)
@ -767,16 +767,16 @@ static void _ldi_l(jit_state_t*,int32_t,jit_word_t);
# endif # endif
# define ldxr_c(r0, r1, r2) LDSB(r1, r2, r0) # define ldxr_c(r0, r1, r2) LDSB(r1, r2, r0)
# define ldxi_c(r0, r1, i0) _ldxi_c(_jit, r0, r1, i0) # define ldxi_c(r0, r1, i0) _ldxi_c(_jit, r0, r1, i0)
static void _ldxi_c(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_c(jit_state_t*,int32_t,int32_t,jit_word_t);
# define ldxr_uc(r0, r1, r2) LDUB(r1, r2, r0) # define ldxr_uc(r0, r1, r2) LDUB(r1, r2, r0)
# define ldxi_uc(r0, r1, i0) _ldxi_uc(_jit, r0, r1, i0) # define ldxi_uc(r0, r1, i0) _ldxi_uc(_jit, r0, r1, i0)
static void _ldxi_uc(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_uc(jit_state_t*,int32_t,int32_t,jit_word_t);
# define ldxr_s(r0, r1, r2) LDSH(r1, r2, r0) # define ldxr_s(r0, r1, r2) LDSH(r1, r2, r0)
# define ldxi_s(r0, r1, i0) _ldxi_s(_jit, r0, r1, i0) # define ldxi_s(r0, r1, i0) _ldxi_s(_jit, r0, r1, i0)
static void _ldxi_s(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_s(jit_state_t*,int32_t,int32_t,jit_word_t);
# define ldxr_us(r0, r1, r2) LDUH(r1, r2, r0) # define ldxr_us(r0, r1, r2) LDUH(r1, r2, r0)
# define ldxi_us(r0, r1, i0) _ldxi_us(_jit, r0, r1, i0) # define ldxi_us(r0, r1, i0) _ldxi_us(_jit, r0, r1, i0)
static void _ldxi_us(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_us(jit_state_t*,int32_t,int32_t,jit_word_t);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define ldxr(u, v, w) ldxr_i(u, v, w) # define ldxr(u, v, w) ldxr_i(u, v, w)
# define ldxr_i(r0, r1, r2) LD(r1, r2, r0) # define ldxr_i(r0, r1, r2) LD(r1, r2, r0)
@ -789,12 +789,12 @@ static void _ldxi_us(jit_state_t*,int32_t,jit_int32_t,jit_word_t);
# define ldxi(u, v, w) ldxi_l(u, v, w) # define ldxi(u, v, w) ldxi_l(u, v, w)
# endif # endif
# define ldxi_i(r0, r1, i0) _ldxi_i(_jit, r0, r1, i0) # define ldxi_i(r0, r1, i0) _ldxi_i(_jit, r0, r1, i0)
static void _ldxi_i(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_i(jit_state_t*,int32_t,int32_t,jit_word_t);
# if __WORDSIZE == 64 # if __WORDSIZE == 64
# define ldxi_ui(r0, r1, i0) _ldxi_ui(_jit, r0, r1, i0) # define ldxi_ui(r0, r1, i0) _ldxi_ui(_jit, r0, r1, i0)
static void _ldxi_ui(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_ui(jit_state_t*,int32_t,int32_t,jit_word_t);
# define ldxi_l(r0, r1, i0) _ldxi_l(_jit, r0, r1, i0) # define ldxi_l(r0, r1, i0) _ldxi_l(_jit, r0, r1, i0)
static void _ldxi_l(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_l(jit_state_t*,int32_t,int32_t,jit_word_t);
# endif # endif
# define str_c(r0, r1) STB(r1, r0, 0) # define str_c(r0, r1) STB(r1, r0, 0)
# define sti_c(i0, r0) _sti_c(_jit, i0, r0) # define sti_c(i0, r0) _sti_c(_jit, i0, r0)
@ -820,10 +820,10 @@ static void _sti_l(jit_state_t*,jit_word_t,int32_t);
# endif # endif
# define stxr_c(r0, r1, r2) STB(r2, r1, r0) # define stxr_c(r0, r1, r2) STB(r2, r1, r0)
# define stxi_c(i0, r0, r1) _stxi_c(_jit, i0, r0, r1) # define stxi_c(i0, r0, r1) _stxi_c(_jit, i0, r0, r1)
static void _stxi_c(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_c(jit_state_t*,jit_word_t,int32_t,int32_t);
# define stxr_s(r0, r1, r2) STH(r2, r1, r0) # define stxr_s(r0, r1, r2) STH(r2, r1, r0)
# define stxi_s(i0, r0, r1) _stxi_s(_jit, i0, r0, r1) # define stxi_s(i0, r0, r1) _stxi_s(_jit, i0, r0, r1)
static void _stxi_s(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_s(jit_state_t*,jit_word_t,int32_t,int32_t);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define stxr(u, v, w) stxr_i(u, v, w) # define stxr(u, v, w) stxr_i(u, v, w)
# define stxr_i(r0, r1, r2) ST(r2, r1, r0) # define stxr_i(r0, r1, r2) ST(r2, r1, r0)
@ -835,17 +835,17 @@ static void _stxi_s(jit_state_t*,jit_word_t,int32_t,jit_int32_t);
# define stxr_l(r0, r1, r2) STX(r2, r1, r0) # define stxr_l(r0, r1, r2) STX(r2, r1, r0)
# endif # endif
# define stxi_i(i0, r0, r1) _stxi_i(_jit, i0, r0, r1) # define stxi_i(i0, r0, r1) _stxi_i(_jit, i0, r0, r1)
static void _stxi_i(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_i(jit_state_t*,jit_word_t,int32_t,int32_t);
# if __WORDSIZE == 64 # if __WORDSIZE == 64
# define stxi_l(i0, r0, r1) _stxi_l(_jit, i0, r0, r1) # define stxi_l(i0, r0, r1) _stxi_l(_jit, i0, r0, r1)
static void _stxi_l(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_l(jit_state_t*,jit_word_t,int32_t,int32_t);
# endif # endif
# define br(cc, i0, r0, r1) _br(_jit, cc, i0, r0, r1) # define br(cc, i0, r0, r1) _br(_jit, cc, i0, r0, r1)
static jit_word_t static jit_word_t
_br(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_int32_t); _br(jit_state_t*,int32_t,jit_word_t,int32_t,jit_int32_t);
# define bw(cc, i0, r0, i1) _bw(_jit, cc, i0, r0, i1) # define bw(cc, i0, r0, i1) _bw(_jit, cc, i0, r0, i1)
static jit_word_t static jit_word_t
_bw(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_word_t); _bw(jit_state_t*,int32_t,jit_word_t,int32_t,jit_word_t);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define bltr(i0, r0, r1) br(SPARC_BL, i0, r0, r1) # define bltr(i0, r0, r1) br(SPARC_BL, i0, r0, r1)
# define blti(i0, r0, i1) bw(SPARC_BL, i0, r0, i1) # define blti(i0, r0, i1) bw(SPARC_BL, i0, r0, i1)
@ -892,7 +892,7 @@ _bw(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_word_t);
# define b_asr(jif,add,sgn,i0,r0,r1) _b_asr(_jit,jif,add,sgn,i0,r0,r1) # define b_asr(jif,add,sgn,i0,r0,r1) _b_asr(_jit,jif,add,sgn,i0,r0,r1)
static jit_word_t static jit_word_t
_b_asr(jit_state_t*,jit_bool_t,jit_bool_t,jit_bool_t, _b_asr(jit_state_t*,jit_bool_t,jit_bool_t,jit_bool_t,
jit_word_t,int32_t,jit_int32_t); jit_word_t,int32_t,int32_t);
# define b_asw(jif,add,sgn,i0,r0,i1) _b_asw(_jit,jif,add,sgn,i0,r0,i1) # define b_asw(jif,add,sgn,i0,r0,i1) _b_asw(_jit,jif,add,sgn,i0,r0,i1)
static jit_word_t static jit_word_t
_b_asw(jit_state_t*,jit_bool_t,jit_bool_t,jit_bool_t, _b_asw(jit_state_t*,jit_bool_t,jit_bool_t,jit_bool_t,
@ -915,7 +915,7 @@ _b_asw(jit_state_t*,jit_bool_t,jit_bool_t,jit_bool_t,
# define bxsubi_u(i0, r0, i1) b_asw(0, 0, 0, i0, r0, i1) # define bxsubi_u(i0, r0, i1) b_asw(0, 0, 0, i0, r0, i1)
# define bm_r(set, i0, r0, r1) _bm_r(_jit,set,i0,r0,r1) # define bm_r(set, i0, r0, r1) _bm_r(_jit,set,i0,r0,r1)
static jit_word_t static jit_word_t
_bm_r(jit_state_t*,jit_bool_t,jit_word_t,int32_t,jit_int32_t); _bm_r(jit_state_t*,jit_bool_t,jit_word_t,int32_t,int32_t);
# define bm_w(set,i0,r0,i1) _bm_w(_jit,set,i0,r0,i1) # define bm_w(set,i0,r0,i1) _bm_w(_jit,set,i0,r0,i1)
static jit_word_t static jit_word_t
_bm_w(jit_state_t*,jit_bool_t,jit_word_t,int32_t,jit_word_t); _bm_w(jit_state_t*,jit_bool_t,jit_word_t,int32_t,jit_word_t);
@ -942,7 +942,7 @@ static void _epilog(jit_state_t*,jit_node_t*);
#define vastart(r0) _vastart(_jit, r0) #define vastart(r0) _vastart(_jit, r0)
static void _vastart(jit_state_t*, int32_t); static void _vastart(jit_state_t*, int32_t);
#define vaarg(r0, r1) _vaarg(_jit, r0, r1) #define vaarg(r0, r1) _vaarg(_jit, r0, r1)
static void _vaarg(jit_state_t*, int32_t, jit_int32_t); static void _vaarg(jit_state_t*, int32_t, int32_t);
#define patch_at(jump, label) _patch_at(_jit, jump, label) #define patch_at(jump, label) _patch_at(_jit, jump, label)
static void _patch_at(jit_state_t*,jit_word_t,jit_word_t); static void _patch_at(jit_state_t*,jit_word_t,jit_word_t);
#endif #endif
@ -950,7 +950,7 @@ static void _patch_at(jit_state_t*,jit_word_t,jit_word_t);
#if CODE #if CODE
static void static void
_f2r(jit_state_t *_jit, _f2r(jit_state_t *_jit,
int32_t op, jit_int32_t rd, jit_int32_t op2, jit_int32_t imm22) int32_t op, int32_t rd, jit_int32_t op2, jit_int32_t imm22)
{ {
jit_instr_t v; jit_instr_t v;
assert(!(op & 0xfffffffc)); assert(!(op & 0xfffffffc));
@ -966,7 +966,7 @@ _f2r(jit_state_t *_jit,
static void static void
_f2b(jit_state_t *_jit, _f2b(jit_state_t *_jit,
int32_t op, jit_int32_t a, jit_int32_t cond, jit_int32_t op2, int32_t op, int32_t a, jit_int32_t cond, jit_int32_t op2,
int32_t disp22) int32_t disp22)
{ {
jit_instr_t v; jit_instr_t v;
@ -986,8 +986,8 @@ _f2b(jit_state_t *_jit,
# if __WORDSIZE == 64 # if __WORDSIZE == 64
static void static void
_f2bp(jit_state_t *_jit, _f2bp(jit_state_t *_jit,
int32_t op, jit_int32_t a, jit_int32_t cond, jit_int32_t op2, int32_t op, int32_t a, jit_int32_t cond, jit_int32_t op2,
int32_t cc1, jit_int32_t cc0, jit_int32_t p, jit_int32_t disp19) int32_t cc1, int32_t cc0, jit_int32_t p, jit_int32_t disp19)
{ {
jit_instr_t v; jit_instr_t v;
assert(!(op & 0xfffffffc)); assert(!(op & 0xfffffffc));
@ -1008,8 +1008,8 @@ _f2bp(jit_state_t *_jit,
# endif # endif
static void static void
_f3r(jit_state_t *_jit, int32_t op, jit_int32_t rd, _f3r(jit_state_t *_jit, int32_t op, int32_t rd,
int32_t op3, jit_int32_t rs1, jit_int32_t rs2) int32_t op3, int32_t rs1, jit_int32_t rs2)
{ {
jit_instr_t v; jit_instr_t v;
assert(!(op & 0xfffffffc)); assert(!(op & 0xfffffffc));
@ -1029,8 +1029,8 @@ _f3r(jit_state_t *_jit, int32_t op, jit_int32_t rd,
# if __WORDSIZE == 64 # if __WORDSIZE == 64
static void static void
_f3rx(jit_state_t *_jit, int32_t op, jit_int32_t rd, _f3rx(jit_state_t *_jit, int32_t op, int32_t rd,
int32_t op3, jit_int32_t rs1, jit_int32_t rs2) int32_t op3, int32_t rs1, jit_int32_t rs2)
{ {
jit_instr_t v; jit_instr_t v;
assert(!(op & 0xfffffffc)); assert(!(op & 0xfffffffc));
@ -1050,8 +1050,8 @@ _f3rx(jit_state_t *_jit, int32_t op, jit_int32_t rd,
} }
static void static void
_f3s(jit_state_t *_jit, int32_t op, jit_int32_t rd, _f3s(jit_state_t *_jit, int32_t op, int32_t rd,
int32_t op3, jit_int32_t rs1, jit_int32_t shim) int32_t op3, int32_t rs1, jit_int32_t shim)
{ {
jit_instr_t v; jit_instr_t v;
assert(!(op & 0xfffffffc)); assert(!(op & 0xfffffffc));
@ -1072,8 +1072,8 @@ _f3s(jit_state_t *_jit, int32_t op, jit_int32_t rd,
# endif # endif
static void static void
_f3i(jit_state_t *_jit, int32_t op, jit_int32_t rd, _f3i(jit_state_t *_jit, int32_t op, int32_t rd,
int32_t op3, jit_int32_t rs1, jit_int32_t simm13) int32_t op3, int32_t rs1, jit_int32_t simm13)
{ {
jit_instr_t v; jit_instr_t v;
assert(!(op & 0xfffffffc)); assert(!(op & 0xfffffffc));
@ -1092,7 +1092,7 @@ _f3i(jit_state_t *_jit, int32_t op, jit_int32_t rd,
static void static void
_f3t(jit_state_t *_jit, int32_t cond, _f3t(jit_state_t *_jit, int32_t cond,
int32_t rs1, jit_int32_t i, jit_int32_t rs2_imm7) int32_t rs1, int32_t i, jit_int32_t rs2_imm7)
{ {
jit_instr_t v; jit_instr_t v;
assert(!(cond & 0xfffffff0)); assert(!(cond & 0xfffffff0));
@ -1116,8 +1116,8 @@ _f3t(jit_state_t *_jit, int32_t cond,
} }
static void static void
_f3a(jit_state_t *_jit, int32_t op, jit_int32_t rd, _f3a(jit_state_t *_jit, int32_t op, int32_t rd,
int32_t op3, jit_int32_t rs1, jit_int32_t asi, jit_int32_t rs2) int32_t op3, int32_t rs1, jit_int32_t asi, jit_int32_t rs2)
{ {
jit_instr_t v; jit_instr_t v;
assert(!(op & 0xfffffffc)); assert(!(op & 0xfffffffc));
@ -1137,7 +1137,7 @@ _f3a(jit_state_t *_jit, int32_t op, jit_int32_t rd,
} }
static void static void
_f1(jit_state_t *_jit, int32_t op, jit_int32_t disp30) _f1(jit_state_t *_jit, int32_t op, int32_t disp30)
{ {
jit_instr_t v; jit_instr_t v;
assert(!(op & 0xfffffffc)); assert(!(op & 0xfffffffc));
@ -1156,7 +1156,7 @@ _nop(jit_state_t *_jit, int32_t i0)
} }
static void static void
_movr(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _movr(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (r0 != r1) if (r0 != r1)
ORI(r1, 0, r0); ORI(r1, 0, r0);
@ -1214,7 +1214,7 @@ _movi_p(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_addi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _addi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) if (s13_p(i0))
@ -1229,7 +1229,7 @@ _addi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
# if __WORDSIZE == 64 # if __WORDSIZE == 64
static void static void
_addcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _addcr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (jit_carry == _NOREG) if (jit_carry == _NOREG)
@ -1249,7 +1249,7 @@ _addcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
# endif # endif
static void static void
_addci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _addci(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
# if __WORDSIZE == 32 # if __WORDSIZE == 32
int32_t reg; int32_t reg;
@ -1281,7 +1281,7 @@ _addci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
# if __WORDSIZE == 64 # if __WORDSIZE == 64
static void static void
_addxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _addxr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
assert(jit_carry != _NOREG); assert(jit_carry != _NOREG);
@ -1294,7 +1294,7 @@ _addxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
# endif # endif
static void static void
_addxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _addxi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
# if __WORDSIZE == 32 # if __WORDSIZE == 32
int32_t reg; int32_t reg;
@ -1318,7 +1318,7 @@ _addxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_subi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _subi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) if (s13_p(i0))
@ -1333,7 +1333,7 @@ _subi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
# if __WORDSIZE == 64 # if __WORDSIZE == 64
static void static void
_subcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _subcr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (jit_carry == _NOREG) if (jit_carry == _NOREG)
@ -1353,7 +1353,7 @@ _subcr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
# endif # endif
static void static void
_subci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _subci(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
# if __WORDSIZE == 32 # if __WORDSIZE == 32
int32_t reg; int32_t reg;
@ -1385,7 +1385,7 @@ _subci(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
# if __WORDSIZE == 64 # if __WORDSIZE == 64
static void static void
_subxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _subxr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
assert(jit_carry != _NOREG); assert(jit_carry != _NOREG);
@ -1398,7 +1398,7 @@ _subxr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
#endif #endif
static void static void
_subxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _subxi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
# if __WORDSIZE == 32 # if __WORDSIZE == 32
int32_t reg; int32_t reg;
@ -1422,14 +1422,14 @@ _subxi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_rsbi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _rsbi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
subi(r0, r1, i0); subi(r0, r1, i0);
negr(r0, r0); negr(r0, r0);
} }
static void static void
_muli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _muli(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) { if (s13_p(i0)) {
@ -1449,8 +1449,8 @@ _muli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
# if __WORDSIZE == 32 # if __WORDSIZE == 32
static void static void
_iqmulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, _iqmulr(jit_state_t *_jit, int32_t r0, int32_t r1,
int32_t r2, jit_int32_t r3, jit_bool_t sign) int32_t r2, int32_t r3, jit_bool_t sign)
{ {
if (sign) if (sign)
SMUL(r2, r3, r0); SMUL(r2, r3, r0);
@ -1460,7 +1460,7 @@ _iqmulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1,
} }
static void static void
_iqmuli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, _iqmuli(jit_state_t *_jit, int32_t r0, int32_t r1,
int32_t r2, jit_word_t i0, jit_bool_t sign) int32_t r2, jit_word_t i0, jit_bool_t sign)
{ {
int32_t reg; int32_t reg;
@ -1510,8 +1510,8 @@ static __int128_t __llmul(jit_word_t a, jit_word_t b)
} while (0) } while (0)
static void static void
_qmulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, _qmulr(jit_state_t *_jit, int32_t r0, int32_t r1,
int32_t r2, jit_int32_t r3) int32_t r2, int32_t r3)
{ {
QMUL_PROLOG(); QMUL_PROLOG();
movr(_O0_REGNO, r3); movr(_O0_REGNO, r3);
@ -1523,7 +1523,7 @@ _qmulr(jit_state_t *_jit, int32_t r0, jit_int32_t r1,
} }
static void static void
_qmuli(jit_state_t *_jit, int32_t r0, jit_int32_t r1, _qmuli(jit_state_t *_jit, int32_t r0, int32_t r1,
int32_t r2, jit_word_t i0) int32_t r2, jit_word_t i0)
{ {
QMUL_PROLOG(); QMUL_PROLOG();
@ -1541,8 +1541,8 @@ static __uint128_t __ullmul(jit_uword_t a, jit_uword_t b)
} }
static void static void
_qmulr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, _qmulr_u(jit_state_t *_jit, int32_t r0, int32_t r1,
int32_t r2, jit_int32_t r3) int32_t r2, int32_t r3)
{ {
QMUL_PROLOG(); QMUL_PROLOG();
movr(_O0_REGNO, r3); movr(_O0_REGNO, r3);
@ -1554,7 +1554,7 @@ _qmulr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1,
} }
static void static void
_qmuli_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, _qmuli_u(jit_state_t *_jit, int32_t r0, int32_t r1,
int32_t r2, jit_word_t i0) int32_t r2, jit_word_t i0)
{ {
QMUL_PROLOG(); QMUL_PROLOG();
@ -1568,7 +1568,7 @@ _qmuli_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1,
# endif # endif
static void static void
_divr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _divr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
# if __WORDSIZE == 32 # if __WORDSIZE == 32
int32_t reg; int32_t reg;
@ -1583,7 +1583,7 @@ _divr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_divi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _divi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
# if __WORDSIZE == 32 # if __WORDSIZE == 32
@ -1614,7 +1614,7 @@ _divi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_divr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _divr_u(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
# if __WORDSIZE == 32 # if __WORDSIZE == 32
WRYI(0, 0); WRYI(0, 0);
@ -1625,7 +1625,7 @@ _divr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_divi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _divi_u(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) { if (s13_p(i0)) {
@ -1645,8 +1645,8 @@ _divi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_iqdivr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, _iqdivr(jit_state_t *_jit, int32_t r0, int32_t r1,
int32_t r2, jit_int32_t r3, jit_bool_t sign) int32_t r2, int32_t r3, jit_bool_t sign)
{ {
int32_t sv0, rg0; int32_t sv0, rg0;
int32_t sv1, rg1; int32_t sv1, rg1;
@ -1681,7 +1681,7 @@ _iqdivr(jit_state_t *_jit, int32_t r0, jit_int32_t r1,
} }
static void static void
_iqdivi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, _iqdivi(jit_state_t *_jit, int32_t r0, int32_t r1,
int32_t r2, jit_word_t i0, jit_bool_t sign) int32_t r2, jit_word_t i0, jit_bool_t sign)
{ {
int32_t reg; int32_t reg;
@ -1692,7 +1692,7 @@ _iqdivi(jit_state_t *_jit, int32_t r0, jit_int32_t r1,
} }
static void static void
_remr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _remr(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (r0 == r1 || r0 == r2) { if (r0 == r1 || r0 == r2) {
@ -1710,7 +1710,7 @@ _remr(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_remi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _remi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1720,7 +1720,7 @@ _remi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_remr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _remr_u(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (r0 == r1 || r0 == r2) { if (r0 == r1 || r0 == r2) {
@ -1738,7 +1738,7 @@ _remr_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_remi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _remi_u(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(jit_class_gpr); reg = jit_get_reg(jit_class_gpr);
@ -1748,7 +1748,7 @@ _remi_u(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_andi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _andi(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) if (s13_p(i0))
@ -1762,7 +1762,7 @@ _andi(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ori(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) if (s13_p(i0))
@ -1776,7 +1776,7 @@ _ori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_xori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _xori(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) if (s13_p(i0))
@ -1790,21 +1790,21 @@ _xori(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_extr_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_c(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
lshi(r0, r1, __WORDSIZE - 8); lshi(r0, r1, __WORDSIZE - 8);
rshi(r0, r0, __WORDSIZE - 8); rshi(r0, r0, __WORDSIZE - 8);
} }
static void static void
_extr_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_s(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
lshi(r0, r1, __WORDSIZE - 16); lshi(r0, r1, __WORDSIZE - 16);
rshi(r0, r0, __WORDSIZE - 16); rshi(r0, r0, __WORDSIZE - 16);
} }
static void static void
_extr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_us(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
lshi(r0, r1, __WORDSIZE - 16); lshi(r0, r1, __WORDSIZE - 16);
rshi_u(r0, r0, __WORDSIZE - 16); rshi_u(r0, r0, __WORDSIZE - 16);
@ -1812,14 +1812,14 @@ _extr_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
#if __WORDSIZE == 64 #if __WORDSIZE == 64
static void static void
_extr_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_i(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
lshi(r0, r1, __WORDSIZE - 32); lshi(r0, r1, __WORDSIZE - 32);
rshi(r0, r0, __WORDSIZE - 32); rshi(r0, r0, __WORDSIZE - 32);
} }
static void static void
_extr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_ui(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
lshi(r0, r1, __WORDSIZE - 32); lshi(r0, r1, __WORDSIZE - 32);
rshi_u(r0, r0, __WORDSIZE - 32); rshi_u(r0, r0, __WORDSIZE - 32);
@ -1828,7 +1828,7 @@ _extr_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
static void static void
_cr(jit_state_t *_jit, int32_t cc, _cr(jit_state_t *_jit, int32_t cc,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
CMP(r1, r2); CMP(r1, r2);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
@ -1842,7 +1842,7 @@ _cr(jit_state_t *_jit, int32_t cc,
static void static void
_cw(jit_state_t *_jit, int32_t cc, _cw(jit_state_t *_jit, int32_t cc,
int32_t r0, jit_int32_t r1, jit_word_t i0) int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) { if (s13_p(i0)) {
@ -1969,7 +1969,7 @@ _ldi_l(jit_state_t *_jit, int32_t r0, jit_word_t i0)
# endif # endif
static void static void
_ldxi_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_c(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) if (s13_p(i0))
@ -1983,7 +1983,7 @@ _ldxi_c(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ldxi_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_uc(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) if (s13_p(i0))
@ -1997,7 +1997,7 @@ _ldxi_uc(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ldxi_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_s(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) if (s13_p(i0))
@ -2011,7 +2011,7 @@ _ldxi_s(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ldxi_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_us(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) if (s13_p(i0))
@ -2025,7 +2025,7 @@ _ldxi_us(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ldxi_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_i(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) { if (s13_p(i0)) {
@ -2045,7 +2045,7 @@ _ldxi_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
# if __WORDSIZE == 64 # if __WORDSIZE == 64
static void static void
_ldxi_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_ui(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) if (s13_p(i0))
@ -2059,7 +2059,7 @@ _ldxi_ui(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_ldxi_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_l(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) if (s13_p(i0))
@ -2137,7 +2137,7 @@ _sti_l(jit_state_t *_jit, jit_word_t i0, int32_t r0)
# endif # endif
static void static void
_stxi_c(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_c(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) if (s13_p(i0))
@ -2151,7 +2151,7 @@ _stxi_c(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_stxi_s(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_s(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) if (s13_p(i0))
@ -2165,7 +2165,7 @@ _stxi_s(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_stxi_i(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_i(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) { if (s13_p(i0)) {
@ -2185,7 +2185,7 @@ _stxi_i(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
# if __WORDSIZE == 64 # if __WORDSIZE == 64
static void static void
_stxi_l(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_l(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) if (s13_p(i0))
@ -2201,7 +2201,7 @@ _stxi_l(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
static jit_word_t static jit_word_t
_br(jit_state_t *_jit, int32_t cc, _br(jit_state_t *_jit, int32_t cc,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
CMP(r0, r1); CMP(r0, r1);
@ -2242,7 +2242,7 @@ _bw(jit_state_t *_jit, int32_t cc,
static jit_word_t static jit_word_t
_b_asr(jit_state_t *_jit, jit_bool_t jif, jit_bool_t add, jit_bool_t sgn, _b_asr(jit_state_t *_jit, jit_bool_t jif, jit_bool_t add, jit_bool_t sgn,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
if (add) if (add)
@ -2301,7 +2301,7 @@ _b_asw(jit_state_t *_jit, jit_bool_t jif, jit_bool_t add, jit_bool_t sgn,
static jit_word_t static jit_word_t
_bm_r(jit_state_t *_jit, jit_bool_t set, _bm_r(jit_state_t *_jit, jit_bool_t set,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
BTST(r0, r1); BTST(r0, r1);
@ -2500,7 +2500,7 @@ _vastart(jit_state_t *_jit, int32_t r0)
} }
static void static void
_vaarg(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vaarg(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
assert(_jitc->function->self.call & jit_call_varargs); assert(_jitc->function->self.call & jit_call_varargs);

View file

@ -92,7 +92,7 @@
# define FPop2(rd, rs1, opf, rs2) f3f(rd, 53, rs1, opf, rs2) # define FPop2(rd, rs1, opf, rs2) f3f(rd, 53, rs1, opf, rs2)
# define f3f(rd, op3, rs1, opf, rs2) _f3f(_jit, rd, op3, rs1, opf, rs2) # define f3f(rd, op3, rs1, opf, rs2) _f3f(_jit, rd, op3, rs1, opf, rs2)
static void static void
_f3f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t, jit_int32_t,jit_int32_t); _f3f(jit_state_t*,int32_t,int32_t,jit_int32_t, jit_int32_t,jit_int32_t);
# define FITOS(rs2, rd) FPop1(rd, 0, 196, rs2) # define FITOS(rs2, rd) FPop1(rd, 0, 196, rs2)
# define FITOD(rs2, rd) FPop1(rd, 0, 200, rs2) # define FITOD(rs2, rd) FPop1(rd, 0, 200, rs2)
# define FITOQ(rs2, rd) FPop1(rd, 0, 204, rs2) # define FITOQ(rs2, rd) FPop1(rd, 0, 204, rs2)
@ -168,7 +168,7 @@ _f3f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t, jit_int32_t,jit_int32_t);
# define CPop1(rd, rs1, opc, rs2) f3f(rd, 54, rs1, opf, rs2) # define CPop1(rd, rs1, opc, rs2) f3f(rd, 54, rs1, opf, rs2)
# define CPop2(rd, rs1, opc, rs2) f3f(rd, 55, rs1, opf, rs2) # define CPop2(rd, rs1, opc, rs2) f3f(rd, 55, rs1, opf, rs2)
# define extr_f(r0, r1) _extr_f(_jit, r0, r1) # define extr_f(r0, r1) _extr_f(_jit, r0, r1)
static void _extr_f(jit_state_t*, int32_t, jit_int32_t); static void _extr_f(jit_state_t*, int32_t, int32_t);
# if __WORDSIZSE == 32 # if __WORDSIZSE == 32
# define truncr_f(r0, r1) truncr_f_i(r0, r1) # define truncr_f(r0, r1) truncr_f_i(r0, r1)
# define truncr_d(r0, r1) truncr_d_i(r0, r1) # define truncr_d(r0, r1) truncr_d_i(r0, r1)
@ -177,23 +177,23 @@ static void _extr_f(jit_state_t*, int32_t, jit_int32_t);
# define truncr_d(r0, r1) truncr_d_l(r0, r1) # define truncr_d(r0, r1) truncr_d_l(r0, r1)
# endif # endif
# define truncr_f_i(r0, r1) _truncr_f_i(_jit, r0, r1) # define truncr_f_i(r0, r1) _truncr_f_i(_jit, r0, r1)
static void _truncr_f_i(jit_state_t*, int32_t, jit_int32_t); static void _truncr_f_i(jit_state_t*, int32_t, int32_t);
# if __WORDSIZE == 64 # if __WORDSIZE == 64
# define truncr_f_l(r0, r1) _truncr_f_l(_jit, r0, r1) # define truncr_f_l(r0, r1) _truncr_f_l(_jit, r0, r1)
static void _truncr_f_l(jit_state_t*, int32_t, jit_int32_t); static void _truncr_f_l(jit_state_t*, int32_t, int32_t);
# endif # endif
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define extr_d_f(r0, r1) FDTOS(r1, r0) # define extr_d_f(r0, r1) FDTOS(r1, r0)
# else # else
# define extr_d_f(r0, r1) _extr_d_f(_jit, r0, r1) # define extr_d_f(r0, r1) _extr_d_f(_jit, r0, r1)
static void _extr_d_f(jit_state_t*, int32_t, jit_int32_t); static void _extr_d_f(jit_state_t*, int32_t, int32_t);
# endif # endif
# define movi_f(r0, i0) _movi_f(_jit, r0, i0) # define movi_f(r0, i0) _movi_f(_jit, r0, i0)
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define movr_f(r0, r1) FMOVS(r1, r0) # define movr_f(r0, r1) FMOVS(r1, r0)
# else # else
# define movr_f(r0, r1) _movr_f(_jit, r0, r1) # define movr_f(r0, r1) _movr_f(_jit, r0, r1)
static void _movr_f(jit_state_t*, int32_t, jit_int32_t); static void _movr_f(jit_state_t*, int32_t, int32_t);
# endif # endif
static void _movi_f(jit_state_t*, int32_t, jit_float32_t*); static void _movi_f(jit_state_t*, int32_t, jit_float32_t*);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
@ -202,35 +202,35 @@ static void _movi_f(jit_state_t*, int32_t, jit_float32_t*);
# define sqrtr_f(r0, r1) FSQRTS(r1, r0) # define sqrtr_f(r0, r1) FSQRTS(r1, r0)
# else # else
# define negr_f(r0, r1) _negr_f(_jit, r0, r1) # define negr_f(r0, r1) _negr_f(_jit, r0, r1)
static void _negr_f(jit_state_t*, int32_t, jit_int32_t); static void _negr_f(jit_state_t*, int32_t, int32_t);
# define absr_f(r0, r1) _absr_f(_jit, r0, r1) # define absr_f(r0, r1) _absr_f(_jit, r0, r1)
static void _absr_f(jit_state_t*, int32_t, jit_int32_t); static void _absr_f(jit_state_t*, int32_t, int32_t);
# define sqrtr_f(r0, r1) _sqrtr_f(_jit, r0, r1) # define sqrtr_f(r0, r1) _sqrtr_f(_jit, r0, r1)
static void _sqrtr_f(jit_state_t*, int32_t, jit_int32_t); static void _sqrtr_f(jit_state_t*, int32_t, int32_t);
# endif # endif
# define extr_d(r0, r1) _extr_d(_jit, r0, r1) # define extr_d(r0, r1) _extr_d(_jit, r0, r1)
static void _extr_d(jit_state_t*, int32_t, jit_int32_t); static void _extr_d(jit_state_t*, int32_t, int32_t);
# define truncr_d_i(r0, r1) _truncr_d_i(_jit, r0, r1) # define truncr_d_i(r0, r1) _truncr_d_i(_jit, r0, r1)
static void _truncr_d_i(jit_state_t*, int32_t, jit_int32_t); static void _truncr_d_i(jit_state_t*, int32_t, int32_t);
# if __WORDSIZE == 64 # if __WORDSIZE == 64
# define truncr_d_l(r0, r1) _truncr_d_l(_jit, r0, r1) # define truncr_d_l(r0, r1) _truncr_d_l(_jit, r0, r1)
static void _truncr_d_l(jit_state_t*, int32_t, jit_int32_t); static void _truncr_d_l(jit_state_t*, int32_t, int32_t);
# endif # endif
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define extr_f_d(r0, r1) FSTOD(r1, r0) # define extr_f_d(r0, r1) FSTOD(r1, r0)
# else # else
# define extr_f_d(r0, r1) _extr_f_d(_jit, r0, r1) # define extr_f_d(r0, r1) _extr_f_d(_jit, r0, r1)
static void _extr_f_d(jit_state_t*, int32_t, jit_int32_t); static void _extr_f_d(jit_state_t*, int32_t, int32_t);
# endif # endif
# define movi_d(r0, i0) _movi_d(_jit, r0, i0) # define movi_d(r0, i0) _movi_d(_jit, r0, i0)
static void _movi_d(jit_state_t*, int32_t, jit_float64_t*); static void _movi_d(jit_state_t*, int32_t, jit_float64_t*);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define movr_d(r0, r1) _movr_d(_jit, r0, r1) # define movr_d(r0, r1) _movr_d(_jit, r0, r1)
static void _movr_d(jit_state_t*, int32_t, jit_int32_t); static void _movr_d(jit_state_t*, int32_t, int32_t);
# define negr_d(r0, r1) _negr_d(_jit, r0, r1) # define negr_d(r0, r1) _negr_d(_jit, r0, r1)
static void _negr_d(jit_state_t*, int32_t, jit_int32_t); static void _negr_d(jit_state_t*, int32_t, int32_t);
# define absr_d(r0, r1) _absr_d(_jit, r0, r1) # define absr_d(r0, r1) _absr_d(_jit, r0, r1)
static void _absr_d(jit_state_t*, int32_t, jit_int32_t); static void _absr_d(jit_state_t*, int32_t, int32_t);
# else # else
# define movr_d(r0, r1) FMOVD(r1, r0) # define movr_d(r0, r1) FMOVD(r1, r0)
# define negr_d(r0, r1) FNEGD(r1, r0) # define negr_d(r0, r1) FNEGD(r1, r0)
@ -239,16 +239,16 @@ static void _absr_d(jit_state_t*, int32_t, jit_int32_t);
# define sqrtr_d(r0, r1) FSQRTD(r1, r0) # define sqrtr_d(r0, r1) FSQRTD(r1, r0)
# define fop1f(op, r0, r1, i0) _fop1f(_jit, op, r0, r1, i0) # define fop1f(op, r0, r1, i0) _fop1f(_jit, op, r0, r1, i0)
static void _fop1f(jit_state_t*,int32_t, static void _fop1f(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_float32_t*); int32_t,int32_t,jit_float32_t*);
# define rfop1f(op, r0, r1, i0) _rfop1f(_jit, op, r0, r1, i0) # define rfop1f(op, r0, r1, i0) _rfop1f(_jit, op, r0, r1, i0)
static void _rfop1f(jit_state_t*,int32_t, static void _rfop1f(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_float32_t*); int32_t,int32_t,jit_float32_t*);
# define fop1d(op, r0, r1, i0) _fop1d(_jit, op, r0, r1, i0) # define fop1d(op, r0, r1, i0) _fop1d(_jit, op, r0, r1, i0)
static void _fop1d(jit_state_t*,int32_t, static void _fop1d(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_float64_t*); int32_t,int32_t,jit_float64_t*);
# define rfop1d(op, r0, r1, i0) _rfop1d(_jit, op, r0, r1, i0) # define rfop1d(op, r0, r1, i0) _rfop1d(_jit, op, r0, r1, i0)
static void _rfop1d(jit_state_t*,int32_t, static void _rfop1d(jit_state_t*,int32_t,
int32_t,jit_int32_t,jit_float64_t*); int32_t,int32_t,jit_float64_t*);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define addr_f(r0, r1, r2) FADDS(r1, r2, r0) # define addr_f(r0, r1, r2) FADDS(r1, r2, r0)
# define subr_f(r0, r1, r2) FSUBS(r1, r2, r0) # define subr_f(r0, r1, r2) FSUBS(r1, r2, r0)
@ -257,7 +257,7 @@ static void _rfop1d(jit_state_t*,int32_t,
# else # else
# define fop2f(op, r0, r1, r2) _fop2f(_jit, op, r0, r1, r2) # define fop2f(op, r0, r1, r2) _fop2f(_jit, op, r0, r1, r2)
static void _fop2f(jit_state_t*, int32_t, static void _fop2f(jit_state_t*, int32_t,
int32_t, jit_int32_t, jit_int32_t); int32_t, int32_t, jit_int32_t);
# define addr_f(r0, r1, r2) fop2f(SPARC_FADDS, r0, r1, r2) # define addr_f(r0, r1, r2) fop2f(SPARC_FADDS, r0, r1, r2)
# define subr_f(r0, r1, r2) fop2f(SPARC_FSUBS, r0, r1, r2) # define subr_f(r0, r1, r2) fop2f(SPARC_FSUBS, r0, r1, r2)
# define mulr_f(r0, r1, r2) fop2f(SPARC_FMULS, r0, r1, r2) # define mulr_f(r0, r1, r2) fop2f(SPARC_FMULS, r0, r1, r2)
@ -282,10 +282,10 @@ static void _fop2f(jit_state_t*, int32_t,
# define divr_d(r0, r1, r2) FDIVD(r1, r2, r0) # define divr_d(r0, r1, r2) FDIVD(r1, r2, r0)
# define divi_d(r0, r1, i0) fop1d(SPARC_FDIVD, r0, r1, i0) # define divi_d(r0, r1, i0) fop1d(SPARC_FDIVD, r0, r1, i0)
#define fcr(cc, r0, r1, r2) _fcr(_jit, cc, r0, r1, r2) #define fcr(cc, r0, r1, r2) _fcr(_jit, cc, r0, r1, r2)
static void _fcr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); static void _fcr(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_int32_t);
#define fcw(cc, r0, r1, i0) _fcw(_jit, cc, r0, r1, i0) #define fcw(cc, r0, r1, i0) _fcw(_jit, cc, r0, r1, i0)
static void static void
_fcw(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_float32_t*); _fcw(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_float32_t*);
# define ltr_f(r0, r1, r2) fcr(SPARC_FBL, r0, r1, r2) # define ltr_f(r0, r1, r2) fcr(SPARC_FBL, r0, r1, r2)
# define lti_f(r0, r1, i0) fcw(SPARC_FBL, r0, r1, i0) # define lti_f(r0, r1, i0) fcw(SPARC_FBL, r0, r1, i0)
# define ler_f(r0, r1, r2) fcr(SPARC_FBLE, r0, r1, r2) # define ler_f(r0, r1, r2) fcr(SPARC_FBLE, r0, r1, r2)
@ -315,10 +315,10 @@ _fcw(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_float32_t*);
# define unordr_f(r0, r1, r2) fcr(SPARC_FBU, r0, r1, r2) # define unordr_f(r0, r1, r2) fcr(SPARC_FBU, r0, r1, r2)
# define unordi_f(r0, r1, i0) fcw(SPARC_FBU, r0, r1, i0) # define unordi_f(r0, r1, i0) fcw(SPARC_FBU, r0, r1, i0)
#define dcr(cc, r0, r1, r2) _dcr(_jit, cc, r0, r1, r2) #define dcr(cc, r0, r1, r2) _dcr(_jit, cc, r0, r1, r2)
static void _dcr(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_int32_t); static void _dcr(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_int32_t);
#define dcw(cc, r0, r1, i0) _dcw(_jit, cc, r0, r1, i0) #define dcw(cc, r0, r1, i0) _dcw(_jit, cc, r0, r1, i0)
static void static void
_dcw(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_float64_t*); _dcw(jit_state_t*,int32_t,int32_t,jit_int32_t,jit_float64_t*);
# define ltr_d(r0, r1, r2) dcr(SPARC_FBL, r0, r1, r2) # define ltr_d(r0, r1, r2) dcr(SPARC_FBL, r0, r1, r2)
# define lti_d(r0, r1, i0) dcw(SPARC_FBL, r0, r1, i0) # define lti_d(r0, r1, i0) dcw(SPARC_FBL, r0, r1, i0)
# define ler_d(r0, r1, r2) dcr(SPARC_FBLE, r0, r1, r2) # define ler_d(r0, r1, r2) dcr(SPARC_FBLE, r0, r1, r2)
@ -351,7 +351,7 @@ _dcw(jit_state_t*,int32_t,jit_int32_t,jit_int32_t,jit_float64_t*);
# define ldr_f(r0, r1) LDF(r1, 0, r0) # define ldr_f(r0, r1) LDF(r1, 0, r0)
# else # else
# define ldr_f(r0, r1) _ldr_f(_jit, r0, r1) # define ldr_f(r0, r1) _ldr_f(_jit, r0, r1)
static void _ldr_f(jit_state_t*,int32_t,jit_int32_t); static void _ldr_f(jit_state_t*,int32_t,int32_t);
# endif # endif
# define ldi_f(r0, i0) _ldi_f(_jit, r0, i0) # define ldi_f(r0, i0) _ldi_f(_jit, r0, i0)
static void _ldi_f(jit_state_t*,int32_t,jit_word_t); static void _ldi_f(jit_state_t*,int32_t,jit_word_t);
@ -359,15 +359,15 @@ static void _ldi_f(jit_state_t*,int32_t,jit_word_t);
# define ldxr_f(r0, r1, r2) LDF(r1, r2, r0) # define ldxr_f(r0, r1, r2) LDF(r1, r2, r0)
# else # else
# define ldxr_f(r0, r1, r2) _ldxr_f(_jit, r0, r1, r2) # define ldxr_f(r0, r1, r2) _ldxr_f(_jit, r0, r1, r2)
static void _ldxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# endif # endif
# define ldxi_f(r0, r1, i0) _ldxi_f(_jit, r0, r1, i0) # define ldxi_f(r0, r1, i0) _ldxi_f(_jit, r0, r1, i0)
static void _ldxi_f(jit_state_t*,int32_t,jit_int32_t,jit_word_t); static void _ldxi_f(jit_state_t*,int32_t,int32_t,jit_word_t);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
# define str_f(r0, r1) STF(r1, r0, 0) # define str_f(r0, r1) STF(r1, r0, 0)
# else # else
# define str_f(r0, r1) _str_f(_jit, r0, r1) # define str_f(r0, r1) _str_f(_jit, r0, r1)
static void _str_f(jit_state_t*,int32_t,jit_int32_t); static void _str_f(jit_state_t*,int32_t,int32_t);
# endif # endif
# define sti_f(r0, i0) _sti_f(_jit, r0, i0) # define sti_f(r0, i0) _sti_f(_jit, r0, i0)
static void _sti_f(jit_state_t*,jit_word_t,int32_t); static void _sti_f(jit_state_t*,jit_word_t,int32_t);
@ -375,28 +375,28 @@ static void _sti_f(jit_state_t*,jit_word_t,int32_t);
# define stxr_f(r0, r1, r2) STF(r2, r1, r0) # define stxr_f(r0, r1, r2) STF(r2, r1, r0)
# else # else
# define stxr_f(r0, r1, r2) _stxr_f(_jit, r0, r1, r2) # define stxr_f(r0, r1, r2) _stxr_f(_jit, r0, r1, r2)
static void _stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _stxr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# endif # endif
# define stxi_f(r0, r1, i0) _stxi_f(_jit, r0, r1, i0) # define stxi_f(r0, r1, i0) _stxi_f(_jit, r0, r1, i0)
static void _stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _stxi_f(jit_state_t*,jit_word_t,int32_t,int32_t);
# define ldr_d(r0, r1) LDDF(r1, 0, r0) # define ldr_d(r0, r1) LDDF(r1, 0, r0)
# define ldi_d(r0, i0) _ldi_d(_jit, r0, i0) # define ldi_d(r0, i0) _ldi_d(_jit, r0, i0)
static void _ldi_d(jit_state_t*,int32_t,jit_word_t); static void _ldi_d(jit_state_t*,int32_t,jit_word_t);
# define ldxr_d(r0, r1, r2) LDDF(r1, r2, r0) # define ldxr_d(r0, r1, r2) LDDF(r1, r2, r0)
# define ldxi_d(r0, r1, i0) _ldxi_d(_jit, r0, r1, i0) # define ldxi_d(r0, r1, i0) _ldxi_d(_jit, r0, r1, i0)
static void _ldxi_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _ldxi_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define str_d(r0, r1) STDF(r1, r0, 0) # define str_d(r0, r1) STDF(r1, r0, 0)
# define sti_d(r0, i0) _sti_d(_jit, r0, i0) # define sti_d(r0, i0) _sti_d(_jit, r0, i0)
static void _sti_d(jit_state_t*,jit_word_t,int32_t); static void _sti_d(jit_state_t*,jit_word_t,int32_t);
# define stxr_d(r0, r1, r2) STDF(r2, r1, r0) # define stxr_d(r0, r1, r2) STDF(r2, r1, r0)
# define stxi_d(r0, r1, i0) _stxi_d(_jit, r0, r1, i0) # define stxi_d(r0, r1, i0) _stxi_d(_jit, r0, r1, i0)
static void _stxi_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _stxi_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define fbr(cc, i0, r0, r1) _fbr(_jit, cc, i0, r0, r1) # define fbr(cc, i0, r0, r1) _fbr(_jit, cc, i0, r0, r1)
static jit_word_t static jit_word_t
_fbr(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_int32_t); _fbr(jit_state_t*,int32_t,jit_word_t,int32_t,jit_int32_t);
# define fbw(cc, i0, r0, i1) _fbw(_jit, cc, i0, r0, i1) # define fbw(cc, i0, r0, i1) _fbw(_jit, cc, i0, r0, i1)
static jit_word_t static jit_word_t
_fbw(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_float32_t*); _fbw(jit_state_t*,int32_t,jit_word_t,int32_t,jit_float32_t*);
# define bltr_f(i0, r0, r1) fbr(SPARC_FBL, i0, r0, r1) # define bltr_f(i0, r0, r1) fbr(SPARC_FBL, i0, r0, r1)
# define blti_f(i0, r0, i1) fbw(SPARC_FBL, i0, r0, i1) # define blti_f(i0, r0, i1) fbw(SPARC_FBL, i0, r0, i1)
# define bler_f(i0, r0, r1) fbr(SPARC_FBLE, i0, r0, r1) # define bler_f(i0, r0, r1) fbr(SPARC_FBLE, i0, r0, r1)
@ -427,10 +427,10 @@ _fbw(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_float32_t*);
# define bunordi_f(i0, r0, i1) fbw(SPARC_FBU, i0, r0, i1) # define bunordi_f(i0, r0, i1) fbw(SPARC_FBU, i0, r0, i1)
# define dbr(cc, i0, r0, r1) _dbr(_jit, cc, i0, r0, r1) # define dbr(cc, i0, r0, r1) _dbr(_jit, cc, i0, r0, r1)
static jit_word_t static jit_word_t
_dbr(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_int32_t); _dbr(jit_state_t*,int32_t,jit_word_t,int32_t,jit_int32_t);
# define dbw(cc, i0, r0, i1) _dbw(_jit, cc, i0, r0, i1) # define dbw(cc, i0, r0, i1) _dbw(_jit, cc, i0, r0, i1)
static jit_word_t static jit_word_t
_dbw(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_float64_t*); _dbw(jit_state_t*,int32_t,jit_word_t,int32_t,jit_float64_t*);
# define bltr_d(i0, r0, r1) dbr(SPARC_FBL, i0, r0, r1) # define bltr_d(i0, r0, r1) dbr(SPARC_FBL, i0, r0, r1)
# define blti_d(i0, r0, i1) dbw(SPARC_FBL, i0, r0, i1) # define blti_d(i0, r0, i1) dbw(SPARC_FBL, i0, r0, i1)
# define bler_d(i0, r0, r1) dbr(SPARC_FBLE, i0, r0, r1) # define bler_d(i0, r0, r1) dbr(SPARC_FBLE, i0, r0, r1)
@ -460,13 +460,13 @@ _dbw(jit_state_t*,int32_t,jit_word_t,jit_int32_t,jit_float64_t*);
# define bunordr_d(i0, r0, r1) dbr(SPARC_FBU, i0, r0, r1) # define bunordr_d(i0, r0, r1) dbr(SPARC_FBU, i0, r0, r1)
# define bunordi_d(i0, r0, i1) dbw(SPARC_FBU, i0, r0, i1) # define bunordi_d(i0, r0, i1) dbw(SPARC_FBU, i0, r0, i1)
# define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1) # define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1)
static void _vaarg_d(jit_state_t*, int32_t, jit_int32_t); static void _vaarg_d(jit_state_t*, int32_t, int32_t);
#endif #endif
#if CODE #if CODE
static void static void
_f3f(jit_state_t *_jit, int32_t rd, _f3f(jit_state_t *_jit, int32_t rd,
int32_t op3, jit_int32_t rs1, jit_int32_t opf, jit_int32_t rs2) int32_t op3, int32_t rs1, jit_int32_t opf, jit_int32_t rs2)
{ {
jit_instr_t v; jit_instr_t v;
# if __WORDSIZE == 64 # if __WORDSIZE == 64
@ -499,7 +499,7 @@ _f3f(jit_state_t *_jit, int32_t rd,
# if __WORDSIZE == 64 # if __WORDSIZE == 64
static void static void
_movr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _movr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t t0, t1; int32_t t0, t1;
if (r0 != r1) { if (r0 != r1) {
@ -532,7 +532,7 @@ _movr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_negr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _negr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t t0, t1; int32_t t0, t1;
if (single_precision_p(r0)) { if (single_precision_p(r0)) {
@ -563,7 +563,7 @@ _negr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_absr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _absr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t t0, t1; int32_t t0, t1;
if (single_precision_p(r0)) { if (single_precision_p(r0)) {
@ -594,7 +594,7 @@ _absr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_sqrtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _sqrtr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t t0, t1; int32_t t0, t1;
if (single_precision_p(r0)) { if (single_precision_p(r0)) {
@ -627,7 +627,7 @@ _sqrtr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
# if __WORDSIZE == 64 # if __WORDSIZE == 64
static void static void
_extr_d_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_d_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (!single_precision_p(r0)) { if (!single_precision_p(r0)) {
@ -665,7 +665,7 @@ _movi_f(jit_state_t *_jit, int32_t r0, jit_float32_t *i0)
# if __WORDSIZE == 64 # if __WORDSIZE == 64
static void static void
_extr_f_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_f_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (!single_precision_p(r1)) { if (!single_precision_p(r1)) {
@ -714,7 +714,7 @@ _movi_d(jit_state_t *_jit, int32_t r0, jit_float64_t *i0)
# if __WORDSIZE == 32 # if __WORDSIZE == 32
static void static void
_movr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _movr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
assert(!(r0 & 1)); assert(!(r0 & 1));
assert(!(r1 & 1)); assert(!(r1 & 1));
@ -725,7 +725,7 @@ _movr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_negr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _negr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
assert(!(r0 & 1)); assert(!(r0 & 1));
assert(!(r1 & 1)); assert(!(r1 & 1));
@ -735,7 +735,7 @@ _negr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_absr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _absr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
assert(!(r0 & 1)); assert(!(r0 & 1));
assert(!(r1 & 1)); assert(!(r1 & 1));
@ -748,7 +748,7 @@ _absr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
# if __WORDSIZE == 64 # if __WORDSIZE == 64
# define single_rrr(NAME, CODE) \ # define single_rrr(NAME, CODE) \
static void \ static void \
NAME(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) \ NAME(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2) \
{ \ { \
int32_t x0, t0, x1, t1, x2, t2, mask = 0; \ int32_t x0, t0, x1, t1, x2, t2, mask = 0; \
if (!single_precision_p(r0)) { \ if (!single_precision_p(r0)) { \
@ -803,7 +803,7 @@ NAME(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) \
static void static void
_fop2f(jit_state_t *_jit, int32_t op, _fop2f(jit_state_t *_jit, int32_t op,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t x0, t0, x1, t1, x2, t2, mask = 0; int32_t x0, t0, x1, t1, x2, t2, mask = 0;
if (!single_precision_p(r0)) { if (!single_precision_p(r0)) {
@ -859,7 +859,7 @@ _fop2f(jit_state_t *_jit, int32_t op,
static void static void
_fop1f(jit_state_t *_jit, int32_t op, _fop1f(jit_state_t *_jit, int32_t op,
int32_t r0, jit_int32_t r1, jit_float32_t *i0) int32_t r0, int32_t r1, jit_float32_t *i0)
{ {
int32_t reg; int32_t reg;
# if __WORDSIZE == 64 # if __WORDSIZE == 64
@ -904,7 +904,7 @@ _fop1f(jit_state_t *_jit, int32_t op,
static void static void
_rfop1f(jit_state_t *_jit, int32_t op, _rfop1f(jit_state_t *_jit, int32_t op,
int32_t r0, jit_int32_t r1, jit_float32_t *i0) int32_t r0, int32_t r1, jit_float32_t *i0)
{ {
int32_t reg; int32_t reg;
# if __WORDSIZE == 64 # if __WORDSIZE == 64
@ -949,7 +949,7 @@ _rfop1f(jit_state_t *_jit, int32_t op,
static void static void
_fop1d(jit_state_t *_jit, int32_t op, _fop1d(jit_state_t *_jit, int32_t op,
int32_t r0, jit_int32_t r1, jit_float64_t *i0) int32_t r0, int32_t r1, jit_float64_t *i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(CLASS_DBL); reg = jit_get_reg(CLASS_DBL);
@ -960,7 +960,7 @@ _fop1d(jit_state_t *_jit, int32_t op,
static void static void
_rfop1d(jit_state_t *_jit, int32_t op, _rfop1d(jit_state_t *_jit, int32_t op,
int32_t r0, jit_int32_t r1, jit_float64_t *i0) int32_t r0, int32_t r1, jit_float64_t *i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(CLASS_DBL); reg = jit_get_reg(CLASS_DBL);
@ -970,7 +970,7 @@ _rfop1d(jit_state_t *_jit, int32_t op,
} }
static void static void
_extr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
stxi(BIAS(-8), _FP_REGNO, r1); stxi(BIAS(-8), _FP_REGNO, r1);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
@ -992,7 +992,7 @@ _extr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_truncr_f_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _truncr_f_i(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(CLASS_SNG); reg = jit_get_reg(CLASS_SNG);
@ -1011,7 +1011,7 @@ _truncr_f_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
# if __WORDSIZE == 64 # if __WORDSIZE == 64
static void static void
_truncr_f_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _truncr_f_l(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(CLASS_SNG); reg = jit_get_reg(CLASS_SNG);
@ -1031,7 +1031,7 @@ _truncr_f_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
static void static void
_fcr(jit_state_t *_jit, int32_t cc, _fcr(jit_state_t *_jit, int32_t cc,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
# if __WORDSIZE == 64 # if __WORDSIZE == 64
int32_t x0, t0, x1, t1, mask = 0; int32_t x0, t0, x1, t1, mask = 0;
@ -1068,7 +1068,7 @@ _fcr(jit_state_t *_jit, int32_t cc,
static void static void
_fcw(jit_state_t *_jit, int32_t cc, _fcw(jit_state_t *_jit, int32_t cc,
int32_t r0, jit_int32_t r1, jit_float32_t *i0) int32_t r0, int32_t r1, jit_float32_t *i0)
{ {
int32_t reg; int32_t reg;
# if __WORDSIZE == 64 # if __WORDSIZE == 64
@ -1099,7 +1099,7 @@ _fcw(jit_state_t *_jit, int32_t cc,
static void static void
_dcr(jit_state_t *_jit, int32_t cc, _dcr(jit_state_t *_jit, int32_t cc,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
FCMPD(r1, r2); FCMPD(r1, r2);
FBa(cc, 3); FBa(cc, 3);
@ -1109,7 +1109,7 @@ _dcr(jit_state_t *_jit, int32_t cc,
static void static void
_dcw(jit_state_t *_jit, int32_t cc, _dcw(jit_state_t *_jit, int32_t cc,
int32_t r0, jit_int32_t r1, jit_float64_t *i0) int32_t r0, int32_t r1, jit_float64_t *i0)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(CLASS_DBL); reg = jit_get_reg(CLASS_DBL);
@ -1123,7 +1123,7 @@ _dcw(jit_state_t *_jit, int32_t cc,
# if __WORDSIZE == 64 # if __WORDSIZE == 64
static void static void
_ldr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _ldr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (!single_precision_p(r0)) { if (!single_precision_p(r0)) {
@ -1163,7 +1163,7 @@ _ldi_f(jit_state_t *_jit, int32_t r0, jit_word_t i0)
# if __WORDSIZE == 64 # if __WORDSIZE == 64
static void static void
_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _ldxr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (!single_precision_p(r0)) { if (!single_precision_p(r0)) {
@ -1178,7 +1178,7 @@ _ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
# endif # endif
static void static void
_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _ldxi_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) { if (s13_p(i0)) {
@ -1203,7 +1203,7 @@ _ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
# if __WORDSIZE == 64 # if __WORDSIZE == 64
static void static void
_str_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _str_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (!single_precision_p(r1)) { if (!single_precision_p(r1)) {
@ -1243,7 +1243,7 @@ _sti_f(jit_state_t *_jit, jit_word_t i0, int32_t r0)
# if __WORDSIZE == 64 # if __WORDSIZE == 64
static void static void
_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _stxr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
int32_t reg; int32_t reg;
if (!single_precision_p(r2)) { if (!single_precision_p(r2)) {
@ -1258,7 +1258,7 @@ _stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
# endif # endif
static void static void
_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) { if (s13_p(i0)) {
@ -1282,7 +1282,7 @@ _stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _extr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
stxi(BIAS(-8), _FP_REGNO, r1); stxi(BIAS(-8), _FP_REGNO, r1);
# if __WORDSIZE == 32 # if __WORDSIZE == 32
@ -1297,7 +1297,7 @@ _extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _truncr_d_i(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(CLASS_SNG); reg = jit_get_reg(CLASS_SNG);
@ -1316,7 +1316,7 @@ _truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
# if __WORDSIZE == 64 # if __WORDSIZE == 64
static void static void
_truncr_d_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _truncr_d_l(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
reg = jit_get_reg(CLASS_DBL); reg = jit_get_reg(CLASS_DBL);
@ -1342,7 +1342,7 @@ _ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t i0) _ldxi_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t i0)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) if (s13_p(i0))
@ -1370,7 +1370,7 @@ _sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0)
} }
static void static void
_stxi_d(jit_state_t *_jit, int32_t i0, jit_int32_t r0, jit_int32_t r1) _stxi_d(jit_state_t *_jit, int32_t i0, int32_t r0, jit_int32_t r1)
{ {
int32_t reg; int32_t reg;
if (s13_p(i0)) if (s13_p(i0))
@ -1385,7 +1385,7 @@ _stxi_d(jit_state_t *_jit, int32_t i0, jit_int32_t r0, jit_int32_t r1)
static jit_word_t static jit_word_t
_fbr(jit_state_t *_jit, int32_t cc, _fbr(jit_state_t *_jit, int32_t cc,
jit_word_t i0, int32_t r0,jit_int32_t r1) jit_word_t i0, int32_t r0,int32_t r1)
{ {
# if __WORDSIZE == 64 # if __WORDSIZE == 64
int32_t x0, t0, x1, t1, mask = 0; int32_t x0, t0, x1, t1, mask = 0;
@ -1459,7 +1459,7 @@ _fbw(jit_state_t *_jit, int32_t cc,
static jit_word_t static jit_word_t
_dbr(jit_state_t *_jit, int32_t cc, _dbr(jit_state_t *_jit, int32_t cc,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
jit_word_t w; jit_word_t w;
FCMPD(r0, r1); FCMPD(r0, r1);
@ -1486,7 +1486,7 @@ _dbw(jit_state_t *_jit, int32_t cc,
} }
static void static void
_vaarg_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _vaarg_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
assert(_jitc->function->self.call & jit_call_varargs); assert(_jitc->function->self.call & jit_call_varargs);

View file

@ -232,7 +232,7 @@ _jit_allocai(jit_state_t *_jit, int32_t length)
} }
void void
_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) _jit_allocar(jit_state_t *_jit, int32_t u, int32_t v)
{ {
int32_t reg; int32_t reg;
assert(_jitc->function); assert(_jitc->function);

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -38,7 +38,7 @@
# define fldcwm(md, rb, ri, ms) x87rx(015, md, rb, ri, ms) # define fldcwm(md, rb, ri, ms) x87rx(015, md, rb, ri, ms)
# define fstcwm(md, rb, ri, ms) _fstcwm(_jit, md, rb, ri, ms) # define fstcwm(md, rb, ri, ms) _fstcwm(_jit, md, rb, ri, ms)
static void static void
_fstcwm(jit_state_t*, int32_t, jit_int32_t, jit_int32_t, jit_int32_t); _fstcwm(jit_state_t*, int32_t, int32_t, jit_int32_t, jit_int32_t);
# define fldsm(md, rb, ri, ms) x87rx(010, md, rb, ri, ms) # define fldsm(md, rb, ri, ms) x87rx(010, md, rb, ri, ms)
# define fstsm(md, rb, ri, ms) x87rx(012, md, rb, ri, ms) # define fstsm(md, rb, ri, ms) x87rx(012, md, rb, ri, ms)
# define fldlm(md, rb, ri, ms) x87rx(050, md, rb, ri, ms) # define fldlm(md, rb, ri, ms) x87rx(050, md, rb, ri, ms)
@ -49,8 +49,8 @@ _fstcwm(jit_state_t*, int32_t, jit_int32_t, jit_int32_t, jit_int32_t);
# define fildlm(md, rb, ri, ms) x87rx(030, md, rb,ri, ms) # define fildlm(md, rb, ri, ms) x87rx(030, md, rb,ri, ms)
# define fildqm(md, rb, ri, ms) x87rx(075, md, rb,ri, ms) # define fildqm(md, rb, ri, ms) x87rx(075, md, rb,ri, ms)
static void static void
_x87rx(jit_state_t*, int32_t, jit_int32_t, _x87rx(jit_state_t*, int32_t, int32_t,
int32_t, jit_int32_t, jit_int32_t); int32_t, int32_t, jit_int32_t);
# define x87ri(cc,r0) _x87ri(_jit,cc,r0) # define x87ri(cc,r0) _x87ri(_jit,cc,r0)
# define fchs_() x87ri(014, 0) # define fchs_() x87ri(014, 0)
# define fabs_() x87ri(014, 1) # define fabs_() x87ri(014, 1)
@ -68,7 +68,7 @@ _x87rx(jit_state_t*, int32_t, jit_int32_t,
# define fstpr(r0) x87ri(053, r0) # define fstpr(r0) x87ri(053, r0)
# define fucomir(r0) x87ri(035, r0) # define fucomir(r0) x87ri(035, r0)
# define fucomipr(r0) x87ri(075, r0) # define fucomipr(r0) x87ri(075, r0)
static void _x87ri(jit_state_t*, int32_t, jit_int32_t); static void _x87ri(jit_state_t*, int32_t, int32_t);
# define faddr(r0, r1) x87rri(000, r0, r1) # define faddr(r0, r1) x87rri(000, r0, r1)
# define fmulr(r0, r1) x87rri(001, r0, r1) # define fmulr(r0, r1) x87rri(001, r0, r1)
# define fsubr(r0, r1) x87rri(004, r0, r1) # define fsubr(r0, r1) x87rri(004, r0, r1)
@ -76,201 +76,201 @@ static void _x87ri(jit_state_t*, int32_t, jit_int32_t);
# define fdivr(r0, r1) x87rri(006, r0, r1) # define fdivr(r0, r1) x87rri(006, r0, r1)
# define fdivrr(r0, r1) x87rri(007, r0, r1) # define fdivrr(r0, r1) x87rri(007, r0, r1)
# define x87rri(cc, r0, r1) _x87rri(_jit, cc, r0, r1) # define x87rri(cc, r0, r1) _x87rri(_jit, cc, r0, r1)
static void _x87rri(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); static void _x87rri(jit_state_t*, int32_t, int32_t, jit_int32_t);
# define x87_addr_f(r0, r1, r2) _x87_addr_d(_jit, r0, r1, r2) # define x87_addr_f(r0, r1, r2) _x87_addr_d(_jit, r0, r1, r2)
# define x87_addi_f(r0, r1, i0) _x87_addi_f(_jit, r0, r1, i0) # define x87_addi_f(r0, r1, i0) _x87_addi_f(_jit, r0, r1, i0)
static void _x87_addi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _x87_addi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define x87_addr_d(r0, r1, r2) _x87_addr_d(_jit, r0, r1, r2) # define x87_addr_d(r0, r1, r2) _x87_addr_d(_jit, r0, r1, r2)
static void _x87_addr_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); static void _x87_addr_d(jit_state_t*, int32_t, int32_t, jit_int32_t);
# define x87_addi_d(r0, r1, i0) _x87_addi_d(_jit, r0, r1, i0) # define x87_addi_d(r0, r1, i0) _x87_addi_d(_jit, r0, r1, i0)
static void _x87_addi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _x87_addi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define x87_subr_f(r0, r1, r2) _x87_subr_d(_jit, r0, r1, r2) # define x87_subr_f(r0, r1, r2) _x87_subr_d(_jit, r0, r1, r2)
# define x87_subi_f(r0, r1, i0) _x87_subi_f(_jit, r0, r1, i0) # define x87_subi_f(r0, r1, i0) _x87_subi_f(_jit, r0, r1, i0)
static void _x87_subi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _x87_subi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define x87_subr_d(r0, r1, r2) _x87_subr_d(_jit, r0, r1, r2) # define x87_subr_d(r0, r1, r2) _x87_subr_d(_jit, r0, r1, r2)
static void _x87_subr_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); static void _x87_subr_d(jit_state_t*, int32_t, int32_t, jit_int32_t);
# define x87_subi_d(r0, r1, i0) _x87_subi_d(_jit, r0, r1, i0) # define x87_subi_d(r0, r1, i0) _x87_subi_d(_jit, r0, r1, i0)
static void _x87_subi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _x87_subi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define x87_rsbr_f(r0, r1, r2) x87_subr_f(r0, r2, r1) # define x87_rsbr_f(r0, r1, r2) x87_subr_f(r0, r2, r1)
# define x87_rsbi_f(r0, r1, i0) _x87_rsbi_f(_jit, r0, r1, i0) # define x87_rsbi_f(r0, r1, i0) _x87_rsbi_f(_jit, r0, r1, i0)
static void _x87_rsbi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _x87_rsbi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define x87_rsbr_d(r0, r1, r2) x87_subr_d(r0, r2, r1) # define x87_rsbr_d(r0, r1, r2) x87_subr_d(r0, r2, r1)
# define x87_rsbi_d(r0, r1, i0) _x87_rsbi_d(_jit, r0, r1, i0) # define x87_rsbi_d(r0, r1, i0) _x87_rsbi_d(_jit, r0, r1, i0)
static void _x87_rsbi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _x87_rsbi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define x87_mulr_f(r0, r1, r2) _x87_mulr_d(_jit, r0, r1, r2) # define x87_mulr_f(r0, r1, r2) _x87_mulr_d(_jit, r0, r1, r2)
# define x87_muli_f(r0, r1, i0) _x87_muli_f(_jit, r0, r1, i0) # define x87_muli_f(r0, r1, i0) _x87_muli_f(_jit, r0, r1, i0)
static void _x87_muli_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _x87_muli_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define x87_mulr_d(r0, r1, r2) _x87_mulr_d(_jit, r0, r1, r2) # define x87_mulr_d(r0, r1, r2) _x87_mulr_d(_jit, r0, r1, r2)
static void _x87_mulr_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); static void _x87_mulr_d(jit_state_t*, int32_t, int32_t, jit_int32_t);
# define x87_muli_d(r0, r1, i0) _x87_muli_d(_jit, r0, r1, i0) # define x87_muli_d(r0, r1, i0) _x87_muli_d(_jit, r0, r1, i0)
static void _x87_muli_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _x87_muli_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define x87_divr_f(r0, r1, r2) _x87_divr_d(_jit, r0, r1, r2) # define x87_divr_f(r0, r1, r2) _x87_divr_d(_jit, r0, r1, r2)
# define x87_divi_f(r0, r1, i0) _x87_divi_f(_jit, r0, r1, i0) # define x87_divi_f(r0, r1, i0) _x87_divi_f(_jit, r0, r1, i0)
static void _x87_divi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _x87_divi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define x87_divr_d(r0, r1, r2) _x87_divr_d(_jit, r0, r1, r2) # define x87_divr_d(r0, r1, r2) _x87_divr_d(_jit, r0, r1, r2)
static void _x87_divr_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); static void _x87_divr_d(jit_state_t*, int32_t, int32_t, jit_int32_t);
# define x87_divi_d(r0, r1, i0) _x87_divi_d(_jit, r0, r1, i0) # define x87_divi_d(r0, r1, i0) _x87_divi_d(_jit, r0, r1, i0)
static void _x87_divi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _x87_divi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define x87_absr_f(r0, r1) _x87_absr_d(_jit, r0, r1) # define x87_absr_f(r0, r1) _x87_absr_d(_jit, r0, r1)
# define x87_absr_d(r0, r1) _x87_absr_d(_jit, r0, r1) # define x87_absr_d(r0, r1) _x87_absr_d(_jit, r0, r1)
static void _x87_absr_d(jit_state_t*, int32_t, jit_int32_t); static void _x87_absr_d(jit_state_t*, int32_t, int32_t);
# define x87_negr_f(r0, r1) _x87_negr_d(_jit, r0, r1) # define x87_negr_f(r0, r1) _x87_negr_d(_jit, r0, r1)
# define x87_negr_d(r0, r1) _x87_negr_d(_jit, r0, r1) # define x87_negr_d(r0, r1) _x87_negr_d(_jit, r0, r1)
static void _x87_negr_d(jit_state_t*, int32_t, jit_int32_t); static void _x87_negr_d(jit_state_t*, int32_t, int32_t);
# define x87_sqrtr_f(r0, r1) _x87_sqrtr_d(_jit, r0, r1) # define x87_sqrtr_f(r0, r1) _x87_sqrtr_d(_jit, r0, r1)
# define x87_sqrtr_d(r0, r1) _x87_sqrtr_d(_jit, r0, r1) # define x87_sqrtr_d(r0, r1) _x87_sqrtr_d(_jit, r0, r1)
static void _x87_sqrtr_d(jit_state_t*, int32_t, jit_int32_t); static void _x87_sqrtr_d(jit_state_t*, int32_t, int32_t);
# define x87_truncr_f_i(r0, r1) _x87_truncr_d_i(_jit, r0, r1) # define x87_truncr_f_i(r0, r1) _x87_truncr_d_i(_jit, r0, r1)
# define x87_truncr_d_i(r0, r1) _x87_truncr_d_i(_jit, r0, r1) # define x87_truncr_d_i(r0, r1) _x87_truncr_d_i(_jit, r0, r1)
static void _x87_truncr_d_i(jit_state_t*, int32_t, jit_int32_t); static void _x87_truncr_d_i(jit_state_t*, int32_t, int32_t);
# if __X64 # if __X64
# define x87_truncr_f_l(r0, r1) _x87_truncr_d_l(_jit, r0, r1) # define x87_truncr_f_l(r0, r1) _x87_truncr_d_l(_jit, r0, r1)
# define x87_truncr_d_l(r0, r1) _x87_truncr_d_l(_jit, r0, r1) # define x87_truncr_d_l(r0, r1) _x87_truncr_d_l(_jit, r0, r1)
static void _x87_truncr_d_l(jit_state_t*, int32_t, jit_int32_t); static void _x87_truncr_d_l(jit_state_t*, int32_t, int32_t);
# endif # endif
# define x87_extr_f(r0, r1) _x87_extr_d(_jit, r0, r1) # define x87_extr_f(r0, r1) _x87_extr_d(_jit, r0, r1)
# define x87_extr_d(r0, r1) _x87_extr_d(_jit, r0, r1) # define x87_extr_d(r0, r1) _x87_extr_d(_jit, r0, r1)
# define x87_extr_f_d(r0, r1) x87_movr_d(r0, r1) # define x87_extr_f_d(r0, r1) x87_movr_d(r0, r1)
# define x87_extr_d_f(r0, r1) x87_movr_d(r0, r1) # define x87_extr_d_f(r0, r1) x87_movr_d(r0, r1)
static void _x87_extr_d(jit_state_t*, int32_t, jit_int32_t); static void _x87_extr_d(jit_state_t*, int32_t, int32_t);
# define x87cmp(code, r0, r1, r2) _x87cmp(_jit, code, r0, r1, r2) # define x87cmp(code, r0, r1, r2) _x87cmp(_jit, code, r0, r1, r2)
static void static void
_x87cmp(jit_state_t*, int32_t, jit_int32_t, jit_int32_t, jit_int32_t); _x87cmp(jit_state_t*, int32_t, int32_t, jit_int32_t, jit_int32_t);
# define x87cmp2(code, r0, r1, r2) _x87cmp2(_jit, code, r0, r1, r2) # define x87cmp2(code, r0, r1, r2) _x87cmp2(_jit, code, r0, r1, r2)
static void static void
_x87cmp2(jit_state_t*, int32_t, jit_int32_t, jit_int32_t, jit_int32_t); _x87cmp2(jit_state_t*, int32_t, int32_t, jit_int32_t, jit_int32_t);
# define x87jcc(code, i0, r0, r1) _x87jcc(_jit, code, i0, r0, r1) # define x87jcc(code, i0, r0, r1) _x87jcc(_jit, code, i0, r0, r1)
static jit_word_t static jit_word_t
_x87jcc(jit_state_t*, int32_t, jit_word_t, jit_int32_t, jit_int32_t); _x87jcc(jit_state_t*, int32_t, jit_word_t, int32_t, jit_int32_t);
# define x87jcc2(code, i0, r0, r1) _x87jcc2(_jit, code, i0, r0, r1) # define x87jcc2(code, i0, r0, r1) _x87jcc2(_jit, code, i0, r0, r1)
static jit_word_t static jit_word_t
_x87jcc2(jit_state_t*, int32_t, jit_word_t, jit_int32_t, jit_int32_t); _x87jcc2(jit_state_t*, int32_t, jit_word_t, int32_t, jit_int32_t);
#define x87_movi_f(r0,i0) _x87_movi_f(_jit,r0,i0) #define x87_movi_f(r0,i0) _x87_movi_f(_jit,r0,i0)
static void _x87_movi_f(jit_state_t*, int32_t, jit_float32_t*); static void _x87_movi_f(jit_state_t*, int32_t, jit_float32_t*);
# define x87_ldr_f(r0, r1) _x87_ldr_f(_jit, r0, r1) # define x87_ldr_f(r0, r1) _x87_ldr_f(_jit, r0, r1)
static void _x87_ldr_f(jit_state_t*, int32_t, jit_int32_t); static void _x87_ldr_f(jit_state_t*, int32_t, int32_t);
# define x87_ldi_f(r0, i0) _x87_ldi_f(_jit, r0, i0) # define x87_ldi_f(r0, i0) _x87_ldi_f(_jit, r0, i0)
static void _x87_ldi_f(jit_state_t*, int32_t, jit_word_t); static void _x87_ldi_f(jit_state_t*, int32_t, jit_word_t);
# define x87_ldxr_f(r0, r1, r2) _x87_ldxr_f(_jit, r0, r1, r2) # define x87_ldxr_f(r0, r1, r2) _x87_ldxr_f(_jit, r0, r1, r2)
static void _x87_ldxr_f(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); static void _x87_ldxr_f(jit_state_t*, int32_t, int32_t, jit_int32_t);
# define x87_ldxi_f(r0, r1, i0) _x87_ldxi_f(_jit, r0, r1, i0) # define x87_ldxi_f(r0, r1, i0) _x87_ldxi_f(_jit, r0, r1, i0)
static void _x87_ldxi_f(jit_state_t*, int32_t, jit_int32_t, jit_word_t); static void _x87_ldxi_f(jit_state_t*, int32_t, int32_t, jit_word_t);
# define x87_str_f(r0, r1) _x87_str_f(_jit, r0, r1) # define x87_str_f(r0, r1) _x87_str_f(_jit, r0, r1)
static void _x87_str_f(jit_state_t*,int32_t,jit_int32_t); static void _x87_str_f(jit_state_t*,int32_t,int32_t);
# define x87_sti_f(i0, r0) _x87_sti_f(_jit, i0, r0) # define x87_sti_f(i0, r0) _x87_sti_f(_jit, i0, r0)
static void _x87_sti_f(jit_state_t*,jit_word_t, int32_t); static void _x87_sti_f(jit_state_t*,jit_word_t, int32_t);
# define x87_stxr_f(r0, r1, r2) _x87_stxr_f(_jit, r0, r1, r2) # define x87_stxr_f(r0, r1, r2) _x87_stxr_f(_jit, r0, r1, r2)
static void _x87_stxr_f(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _x87_stxr_f(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define x87_stxi_f(i0, r0, r1) _x87_stxi_f(_jit, i0, r0, r1) # define x87_stxi_f(i0, r0, r1) _x87_stxi_f(_jit, i0, r0, r1)
static void _x87_stxi_f(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _x87_stxi_f(jit_state_t*,jit_word_t,int32_t,int32_t);
# define x87_ltr_f(r0, r1, r2) x87cmp(X86_CC_A, r0, r2, r1) # define x87_ltr_f(r0, r1, r2) x87cmp(X86_CC_A, r0, r2, r1)
# define x87_lti_f(r0, r1, i0) _x87_lti_f(_jit, r0, r1, i0) # define x87_lti_f(r0, r1, i0) _x87_lti_f(_jit, r0, r1, i0)
static void _x87_lti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _x87_lti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define x87_ler_f(r0, r1, r2) x87cmp(X86_CC_AE, r0, r2, r1) # define x87_ler_f(r0, r1, r2) x87cmp(X86_CC_AE, r0, r2, r1)
# define x87_lei_f(r0, r1, i0) _x87_lei_f(_jit, r0, r1, i0) # define x87_lei_f(r0, r1, i0) _x87_lei_f(_jit, r0, r1, i0)
static void _x87_lei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _x87_lei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define x87_eqr_f(r0, r1, r2) x87_eqr_d(r0, r2, r1) # define x87_eqr_f(r0, r1, r2) x87_eqr_d(r0, r2, r1)
# define x87_eqi_f(r0, r1, i0) _x87_eqi_f(_jit, r0, r1, i0) # define x87_eqi_f(r0, r1, i0) _x87_eqi_f(_jit, r0, r1, i0)
static void _x87_eqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _x87_eqi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define x87_ger_f(r0, r1, r2) x87cmp(X86_CC_AE, r0, r1, r2) # define x87_ger_f(r0, r1, r2) x87cmp(X86_CC_AE, r0, r1, r2)
# define x87_gei_f(r0, r1, i0) _x87_gei_f(_jit, r0, r1, i0) # define x87_gei_f(r0, r1, i0) _x87_gei_f(_jit, r0, r1, i0)
static void _x87_gei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _x87_gei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define x87_gtr_f(r0, r1, r2) x87cmp(X86_CC_A, r0, r1, r2) # define x87_gtr_f(r0, r1, r2) x87cmp(X86_CC_A, r0, r1, r2)
# define x87_gti_f(r0, r1, i0) _x87_gti_f(_jit, r0, r1, i0) # define x87_gti_f(r0, r1, i0) _x87_gti_f(_jit, r0, r1, i0)
static void _x87_gti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _x87_gti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define x87_ner_f(r0, r1, r2) x87_ner_d(r0, r2, r1) # define x87_ner_f(r0, r1, r2) x87_ner_d(r0, r2, r1)
# define x87_nei_f(r0, r1, i0) _x87_nei_f(_jit, r0, r1, i0) # define x87_nei_f(r0, r1, i0) _x87_nei_f(_jit, r0, r1, i0)
static void _x87_nei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _x87_nei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define x87_unltr_f(r0, r1, r2) x87cmp(X86_CC_NAE, r0, r1, r2) # define x87_unltr_f(r0, r1, r2) x87cmp(X86_CC_NAE, r0, r1, r2)
# define x87_unlti_f(r0, r1, i0) _x87_unlti_f(_jit, r0, r1, i0) # define x87_unlti_f(r0, r1, i0) _x87_unlti_f(_jit, r0, r1, i0)
static void _x87_unlti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _x87_unlti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define x87_unler_f(r0, r1, r2) x87cmp(X86_CC_NA, r0, r1, r2) # define x87_unler_f(r0, r1, r2) x87cmp(X86_CC_NA, r0, r1, r2)
# define x87_unlei_f(r0, r1, i0) _x87_unlei_f(_jit, r0, r1, i0) # define x87_unlei_f(r0, r1, i0) _x87_unlei_f(_jit, r0, r1, i0)
static void _x87_unlei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _x87_unlei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define x87_uneqr_f(r0, r1, r2) x87cmp2(X86_CC_E, r0, r1, r2) # define x87_uneqr_f(r0, r1, r2) x87cmp2(X86_CC_E, r0, r1, r2)
# define x87_uneqi_f(r0, r1, i0) _x87_uneqi_f(_jit, r0, r1, i0) # define x87_uneqi_f(r0, r1, i0) _x87_uneqi_f(_jit, r0, r1, i0)
static void _x87_uneqi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _x87_uneqi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define x87_unger_f(r0, r1, r2) x87cmp(X86_CC_NA, r0, r2, r1) # define x87_unger_f(r0, r1, r2) x87cmp(X86_CC_NA, r0, r2, r1)
# define x87_ungei_f(r0, r1, i0) _x87_ungei_f(_jit, r0, r1, i0) # define x87_ungei_f(r0, r1, i0) _x87_ungei_f(_jit, r0, r1, i0)
static void _x87_ungei_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _x87_ungei_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define x87_ungtr_f(r0, r1, r2) x87cmp(X86_CC_NAE, r0, r2, r1) # define x87_ungtr_f(r0, r1, r2) x87cmp(X86_CC_NAE, r0, r2, r1)
# define x87_ungti_f(r0, r1, i0) _x87_ungti_f(_jit, r0, r1, i0) # define x87_ungti_f(r0, r1, i0) _x87_ungti_f(_jit, r0, r1, i0)
static void _x87_ungti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _x87_ungti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define x87_ltgtr_f(r0, r1, r2) x87_ltgtr_d(r0, r1, r2) # define x87_ltgtr_f(r0, r1, r2) x87_ltgtr_d(r0, r1, r2)
# define x87_ltgti_f(r0, r1, i0) _x87_ltgti_f(_jit, r0, r1, i0) # define x87_ltgti_f(r0, r1, i0) _x87_ltgti_f(_jit, r0, r1, i0)
static void _x87_ltgti_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _x87_ltgti_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define x87_ordr_f(r0, r1, r2) x87cmp2(X86_CC_NP, r0, r2, r1) # define x87_ordr_f(r0, r1, r2) x87cmp2(X86_CC_NP, r0, r2, r1)
# define x87_ordi_f(r0, r1, i0) _x87_ordi_f(_jit, r0, r1, i0) # define x87_ordi_f(r0, r1, i0) _x87_ordi_f(_jit, r0, r1, i0)
static void _x87_ordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _x87_ordi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define x87_unordr_f(r0, r1, r2) x87cmp2(X86_CC_P, r0, r2, r1) # define x87_unordr_f(r0, r1, r2) x87cmp2(X86_CC_P, r0, r2, r1)
# define x87_unordi_f(r0, r1, i0) _x87_unordi_f(_jit, r0, r1, i0) # define x87_unordi_f(r0, r1, i0) _x87_unordi_f(_jit, r0, r1, i0)
static void _x87_unordi_f(jit_state_t*,int32_t,jit_int32_t,jit_float32_t*); static void _x87_unordi_f(jit_state_t*,int32_t,int32_t,jit_float32_t*);
# define x87_ltr_d(r0, r1, r2) x87cmp(X86_CC_A, r0, r2, r1) # define x87_ltr_d(r0, r1, r2) x87cmp(X86_CC_A, r0, r2, r1)
# define x87_lti_d(r0, r1, i0) _x87_lti_d(_jit, r0, r1, i0) # define x87_lti_d(r0, r1, i0) _x87_lti_d(_jit, r0, r1, i0)
static void _x87_lti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _x87_lti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define x87_ler_d(r0, r1, r2) x87cmp(X86_CC_AE, r0, r2, r1) # define x87_ler_d(r0, r1, r2) x87cmp(X86_CC_AE, r0, r2, r1)
# define x87_lei_d(r0, r1, i0) _x87_lei_d(_jit, r0, r1, i0) # define x87_lei_d(r0, r1, i0) _x87_lei_d(_jit, r0, r1, i0)
static void _x87_lei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _x87_lei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define x87_eqr_d(r0, r1, r2) _x87_eqr_d(_jit, r0, r2, r1) # define x87_eqr_d(r0, r1, r2) _x87_eqr_d(_jit, r0, r2, r1)
static void _x87_eqr_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); static void _x87_eqr_d(jit_state_t*, int32_t, int32_t, jit_int32_t);
# define x87_eqi_d(r0, r1, i0) _x87_eqi_d(_jit, r0, r1, i0) # define x87_eqi_d(r0, r1, i0) _x87_eqi_d(_jit, r0, r1, i0)
static void _x87_eqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _x87_eqi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define x87_ger_d(r0, r1, r2) x87cmp(X86_CC_AE, r0, r1, r2) # define x87_ger_d(r0, r1, r2) x87cmp(X86_CC_AE, r0, r1, r2)
# define x87_gei_d(r0, r1, i0) _x87_gei_d(_jit, r0, r1, i0) # define x87_gei_d(r0, r1, i0) _x87_gei_d(_jit, r0, r1, i0)
static void _x87_gei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _x87_gei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define x87_gtr_d(r0, r1, r2) x87cmp(X86_CC_A, r0, r1, r2) # define x87_gtr_d(r0, r1, r2) x87cmp(X86_CC_A, r0, r1, r2)
# define x87_gti_d(r0, r1, i0) _x87_gti_d(_jit, r0, r1, i0) # define x87_gti_d(r0, r1, i0) _x87_gti_d(_jit, r0, r1, i0)
static void _x87_gti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _x87_gti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define x87_ner_d(r0, r1, r2) _x87_ner_d(_jit, r0, r2, r1) # define x87_ner_d(r0, r1, r2) _x87_ner_d(_jit, r0, r2, r1)
static void _x87_ner_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); static void _x87_ner_d(jit_state_t*, int32_t, int32_t, jit_int32_t);
# define x87_nei_d(r0, r1, i0) _x87_nei_d(_jit, r0, r1, i0) # define x87_nei_d(r0, r1, i0) _x87_nei_d(_jit, r0, r1, i0)
static void _x87_nei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _x87_nei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define x87_unltr_d(r0, r1, r2) x87cmp(X86_CC_NAE, r0, r1, r2) # define x87_unltr_d(r0, r1, r2) x87cmp(X86_CC_NAE, r0, r1, r2)
# define x87_unlti_d(r0, r1, i0) _x87_unlti_d(_jit, r0, r1, i0) # define x87_unlti_d(r0, r1, i0) _x87_unlti_d(_jit, r0, r1, i0)
static void _x87_unlti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _x87_unlti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define x87_unler_d(r0, r1, r2) x87cmp(X86_CC_NA, r0, r1, r2) # define x87_unler_d(r0, r1, r2) x87cmp(X86_CC_NA, r0, r1, r2)
# define x87_unlei_d(r0, r1, i0) _x87_unlei_d(_jit, r0, r1, i0) # define x87_unlei_d(r0, r1, i0) _x87_unlei_d(_jit, r0, r1, i0)
static void _x87_unlei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _x87_unlei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define x87_uneqr_d(r0, r1, r2) x87cmp2(X86_CC_E, r0, r1, r2) # define x87_uneqr_d(r0, r1, r2) x87cmp2(X86_CC_E, r0, r1, r2)
# define x87_uneqi_d(r0, r1, i0) _x87_uneqi_d(_jit, r0, r1, i0) # define x87_uneqi_d(r0, r1, i0) _x87_uneqi_d(_jit, r0, r1, i0)
static void _x87_uneqi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _x87_uneqi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define x87_unger_d(r0, r1, r2) x87cmp(X86_CC_NA, r0, r2, r1) # define x87_unger_d(r0, r1, r2) x87cmp(X86_CC_NA, r0, r2, r1)
# define x87_ungei_d(r0, r1, i0) _x87_ungei_d(_jit, r0, r1, i0) # define x87_ungei_d(r0, r1, i0) _x87_ungei_d(_jit, r0, r1, i0)
static void _x87_ungei_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _x87_ungei_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define x87_ungtr_d(r0, r1, r2) x87cmp(X86_CC_NAE, r0, r2, r1) # define x87_ungtr_d(r0, r1, r2) x87cmp(X86_CC_NAE, r0, r2, r1)
# define x87_ungti_d(r0, r1, i0) _x87_ungti_d(_jit, r0, r1, i0) # define x87_ungti_d(r0, r1, i0) _x87_ungti_d(_jit, r0, r1, i0)
static void _x87_ungti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _x87_ungti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define x87_ltgtr_d(r0, r1, r2) _x87_ltgtr_d(_jit, r0, r1, r2) # define x87_ltgtr_d(r0, r1, r2) _x87_ltgtr_d(_jit, r0, r1, r2)
static void _x87_ltgtr_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); static void _x87_ltgtr_d(jit_state_t*, int32_t, int32_t, jit_int32_t);
# define x87_ltgti_d(r0, r1, i0) _x87_ltgti_d(_jit, r0, r1, i0) # define x87_ltgti_d(r0, r1, i0) _x87_ltgti_d(_jit, r0, r1, i0)
static void _x87_ltgti_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _x87_ltgti_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define x87_ordr_d(r0, r1, r2) x87cmp2(X86_CC_NP, r0, r2, r1) # define x87_ordr_d(r0, r1, r2) x87cmp2(X86_CC_NP, r0, r2, r1)
# define x87_ordi_d(r0, r1, i0) _x87_ordi_d(_jit, r0, r1, i0) # define x87_ordi_d(r0, r1, i0) _x87_ordi_d(_jit, r0, r1, i0)
static void _x87_ordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _x87_ordi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
# define x87_unordr_d(r0, r1, r2) x87cmp2(X86_CC_P, r0, r2, r1) # define x87_unordr_d(r0, r1, r2) x87cmp2(X86_CC_P, r0, r2, r1)
# define x87_unordi_d(r0, r1, i0) _x87_unordi_d(_jit, r0, r1, i0) # define x87_unordi_d(r0, r1, i0) _x87_unordi_d(_jit, r0, r1, i0)
static void _x87_unordi_d(jit_state_t*,int32_t,jit_int32_t,jit_float64_t*); static void _x87_unordi_d(jit_state_t*,int32_t,int32_t,jit_float64_t*);
#define x87_movr_f(r0,r1) _x87_movr_d(_jit,r0,r1) #define x87_movr_f(r0,r1) _x87_movr_d(_jit,r0,r1)
#define x87_movr_d(r0,r1) _x87_movr_d(_jit,r0,r1) #define x87_movr_d(r0,r1) _x87_movr_d(_jit,r0,r1)
static void _x87_movr_d(jit_state_t*, int32_t, jit_int32_t); static void _x87_movr_d(jit_state_t*, int32_t, int32_t);
#define x87_movi_d(r0,i0) _x87_movi_d(_jit,r0,i0) #define x87_movi_d(r0,i0) _x87_movi_d(_jit,r0,i0)
static void _x87_movi_d(jit_state_t*, int32_t, jit_float64_t*); static void _x87_movi_d(jit_state_t*, int32_t, jit_float64_t*);
# define x87_ldr_d(r0, r1) _x87_ldr_d(_jit, r0, r1) # define x87_ldr_d(r0, r1) _x87_ldr_d(_jit, r0, r1)
static void _x87_ldr_d(jit_state_t*, int32_t, jit_int32_t); static void _x87_ldr_d(jit_state_t*, int32_t, int32_t);
# define x87_ldi_d(r0, i0) _x87_ldi_d(_jit, r0, i0) # define x87_ldi_d(r0, i0) _x87_ldi_d(_jit, r0, i0)
static void _x87_ldi_d(jit_state_t*, int32_t, jit_word_t); static void _x87_ldi_d(jit_state_t*, int32_t, jit_word_t);
# define x87_ldxr_d(r0, r1, r2) _x87_ldxr_d(_jit, r0, r1, r2) # define x87_ldxr_d(r0, r1, r2) _x87_ldxr_d(_jit, r0, r1, r2)
static void _x87_ldxr_d(jit_state_t*, int32_t, jit_int32_t, jit_int32_t); static void _x87_ldxr_d(jit_state_t*, int32_t, int32_t, jit_int32_t);
# define x87_ldxi_d(r0, r1, i0) _x87_ldxi_d(_jit, r0, r1, i0) # define x87_ldxi_d(r0, r1, i0) _x87_ldxi_d(_jit, r0, r1, i0)
static void _x87_ldxi_d(jit_state_t*, int32_t, jit_int32_t, jit_word_t); static void _x87_ldxi_d(jit_state_t*, int32_t, int32_t, jit_word_t);
# define x87_str_d(r0, r1) _x87_str_d(_jit, r0, r1) # define x87_str_d(r0, r1) _x87_str_d(_jit, r0, r1)
static void _x87_str_d(jit_state_t*,int32_t,jit_int32_t); static void _x87_str_d(jit_state_t*,int32_t,int32_t);
# define x87_sti_d(i0, r0) _x87_sti_d(_jit, i0, r0) # define x87_sti_d(i0, r0) _x87_sti_d(_jit, i0, r0)
static void _x87_sti_d(jit_state_t*,jit_word_t,int32_t); static void _x87_sti_d(jit_state_t*,jit_word_t,int32_t);
# define x87_stxr_d(r0, r1, r2) _x87_stxr_d(_jit, r0, r1, r2) # define x87_stxr_d(r0, r1, r2) _x87_stxr_d(_jit, r0, r1, r2)
static void _x87_stxr_d(jit_state_t*,int32_t,jit_int32_t,jit_int32_t); static void _x87_stxr_d(jit_state_t*,int32_t,int32_t,jit_int32_t);
# define x87_stxi_d(i0, r0, r1) _x87_stxi_d(_jit, i0, r0, r1) # define x87_stxi_d(i0, r0, r1) _x87_stxi_d(_jit, i0, r0, r1)
static void _x87_stxi_d(jit_state_t*,jit_word_t,int32_t,jit_int32_t); static void _x87_stxi_d(jit_state_t*,jit_word_t,int32_t,int32_t);
# define x87_bltr_f(i0, r0, r1) x87jcc(X86_CC_A, i0, r1, r0) # define x87_bltr_f(i0, r0, r1) x87jcc(X86_CC_A, i0, r1, r0)
# define x87_blti_f(i0, r0, i1) _x87_blti_f(_jit, i0, r0, i1) # define x87_blti_f(i0, r0, i1) _x87_blti_f(_jit, i0, r0, i1)
static jit_word_t static jit_word_t
@ -337,7 +337,7 @@ static jit_word_t
_x87_blei_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); _x87_blei_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*);
# define x87_beqr_d(i0, r0, r1) _x87_beqr_d(_jit, i0, r0, r1) # define x87_beqr_d(i0, r0, r1) _x87_beqr_d(_jit, i0, r0, r1)
static jit_word_t static jit_word_t
_x87_beqr_d(jit_state_t*, jit_word_t, int32_t, jit_int32_t); _x87_beqr_d(jit_state_t*, jit_word_t, int32_t, int32_t);
# define x87_beqi_d(i0, r0, i1) _x87_beqi_d(_jit, i0, r0, i1) # define x87_beqi_d(i0, r0, i1) _x87_beqi_d(_jit, i0, r0, i1)
static jit_word_t static jit_word_t
_x87_beqi_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); _x87_beqi_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*);
@ -351,7 +351,7 @@ static jit_word_t
_x87_bgti_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); _x87_bgti_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*);
# define x87_bner_d(i0, r0, r1) _x87_bner_d(_jit, i0, r0, r1) # define x87_bner_d(i0, r0, r1) _x87_bner_d(_jit, i0, r0, r1)
static jit_word_t static jit_word_t
_x87_bner_d(jit_state_t*, jit_word_t, int32_t, jit_int32_t); _x87_bner_d(jit_state_t*, jit_word_t, int32_t, int32_t);
# define x87_bnei_d(i0, r0, i1) _x87_bnei_d(_jit, i0, r0, i1) # define x87_bnei_d(i0, r0, i1) _x87_bnei_d(_jit, i0, r0, i1)
static jit_word_t static jit_word_t
_x87_bnei_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*); _x87_bnei_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*);
@ -393,7 +393,7 @@ _x87_bunordi_d(jit_state_t*, jit_word_t, int32_t, jit_float64_t*);
# define fpr_opi(name, type, size) \ # define fpr_opi(name, type, size) \
static void \ static void \
_x87_##name##i_##type(jit_state_t *_jit, \ _x87_##name##i_##type(jit_state_t *_jit, \
int32_t r0, jit_int32_t r1, \ int32_t r0, int32_t r1, \
jit_float##size##_t *i0) \ jit_float##size##_t *i0) \
{ \ { \
int32_t reg = jit_get_reg(jit_class_fpr); \ int32_t reg = jit_get_reg(jit_class_fpr); \
@ -424,7 +424,7 @@ _x87_b##name##i_##type(jit_state_t *_jit, \
static void static void
_fstcwm(jit_state_t *_jit, int32_t md, _fstcwm(jit_state_t *_jit, int32_t md,
int32_t rb, jit_int32_t ri, jit_int32_t ms) int32_t rb, int32_t ri, jit_int32_t ms)
{ {
ic(0x9b); ic(0x9b);
rex(0, 1, rb, ri, _NOREG); rex(0, 1, rb, ri, _NOREG);
@ -432,8 +432,8 @@ _fstcwm(jit_state_t *_jit, int32_t md,
} }
static void static void
_x87rx(jit_state_t *_jit, int32_t code, jit_int32_t md, _x87rx(jit_state_t *_jit, int32_t code, int32_t md,
int32_t rb, jit_int32_t ri, jit_int32_t ms) int32_t rb, int32_t ri, jit_int32_t ms)
{ {
rex(0, 1, rb, ri, _NOREG); rex(0, 1, rb, ri, _NOREG);
ic(0xd8 | (code >> 3)); ic(0xd8 | (code >> 3));
@ -441,14 +441,14 @@ _x87rx(jit_state_t *_jit, int32_t code, jit_int32_t md,
} }
static void static void
_x87ri(jit_state_t *_jit, int32_t code, jit_int32_t r0) _x87ri(jit_state_t *_jit, int32_t code, int32_t r0)
{ {
ic(0xd8 | (code >> 3)); ic(0xd8 | (code >> 3));
mrm(0x03, (code & 7), r0); mrm(0x03, (code & 7), r0);
} }
static void static void
_x87rri(jit_state_t *_jit, int32_t code, jit_int32_t r0, jit_int32_t r1) _x87rri(jit_state_t *_jit, int32_t code, int32_t r0, jit_int32_t r1)
{ {
if (r1 == _ST0_REGNO) if (r1 == _ST0_REGNO)
x87ri(code | 040, r0); x87ri(code | 040, r0);
@ -465,7 +465,7 @@ fopi(mul)
fopi(div) fopi(div)
static void static void
_x87_addr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _x87_addr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (r0 == r1) { if (r0 == r1) {
if (r2 == _ST0_REGNO) if (r2 == _ST0_REGNO)
@ -499,7 +499,7 @@ _x87_addr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
dopi(add) dopi(add)
static void static void
_x87_subr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _x87_subr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (r0 == r1) { if (r0 == r1) {
if (r2 == _ST0_REGNO) if (r2 == _ST0_REGNO)
@ -535,7 +535,7 @@ dopi(sub)
dopi(rsb) dopi(rsb)
static void static void
_x87_mulr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _x87_mulr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (r0 == r1) { if (r0 == r1) {
if (r2 == _ST0_REGNO) if (r2 == _ST0_REGNO)
@ -569,7 +569,7 @@ _x87_mulr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
dopi(mul) dopi(mul)
static void static void
_x87_divr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _x87_divr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (r0 == r1) { if (r0 == r1) {
if (r2 == _ST0_REGNO) if (r2 == _ST0_REGNO)
@ -603,7 +603,7 @@ _x87_divr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
dopi(div) dopi(div)
static void static void
_x87_absr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _x87_absr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (r0 == r1) { if (r0 == r1) {
if (r1 == _ST0_REGNO) if (r1 == _ST0_REGNO)
@ -622,7 +622,7 @@ _x87_absr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_x87_negr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _x87_negr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (r0 == r1) { if (r0 == r1) {
if (r1 == _ST0_REGNO) if (r1 == _ST0_REGNO)
@ -641,7 +641,7 @@ _x87_negr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_x87_sqrtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _x87_sqrtr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (r0 == r1) { if (r0 == r1) {
if (r1 == _ST0_REGNO) if (r1 == _ST0_REGNO)
@ -660,7 +660,7 @@ _x87_sqrtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
} }
static void static void
_x87_truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _x87_truncr_d_i(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
#if defined(sun) #if defined(sun)
/* for the sake of passing test cases in x87 mode, otherwise only sse /* for the sake of passing test cases in x87 mode, otherwise only sse
@ -690,7 +690,7 @@ _x87_truncr_d_i(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
# if __X64 # if __X64
static void static void
_x87_truncr_d_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _x87_truncr_d_l(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
fldr(r1); fldr(r1);
fisttpqm(CVT_OFFSET, _RBP_REGNO, _NOREG, _SCL1); fisttpqm(CVT_OFFSET, _RBP_REGNO, _NOREG, _SCL1);
@ -699,7 +699,7 @@ _x87_truncr_d_l(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
# endif # endif
static void static void
_x87_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _x87_extr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
stxi(CVT_OFFSET, _RBP_REGNO, r1); stxi(CVT_OFFSET, _RBP_REGNO, r1);
# if __X32 # if __X32
@ -712,7 +712,7 @@ _x87_extr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1)
static void static void
_x87cmp(jit_state_t *_jit, int32_t code, _x87cmp(jit_state_t *_jit, int32_t code,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_bool_t rc; jit_bool_t rc;
int32_t reg; int32_t reg;
@ -736,7 +736,7 @@ _x87cmp(jit_state_t *_jit, int32_t code,
static void static void
_x87cmp2(jit_state_t *_jit, int32_t code, _x87cmp2(jit_state_t *_jit, int32_t code,
int32_t r0, jit_int32_t r1, jit_int32_t r2) int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_bool_t rc; jit_bool_t rc;
int32_t reg; int32_t reg;
@ -763,7 +763,7 @@ _x87cmp2(jit_state_t *_jit, int32_t code,
static jit_word_t static jit_word_t
_x87jcc(jit_state_t *_jit, int32_t code, _x87jcc(jit_state_t *_jit, int32_t code,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
if (r0 == _ST0_REGNO) if (r0 == _ST0_REGNO)
fucomir(r1); fucomir(r1);
@ -777,7 +777,7 @@ _x87jcc(jit_state_t *_jit, int32_t code,
static jit_word_t static jit_word_t
_x87jcc2(jit_state_t *_jit, int32_t code, _x87jcc2(jit_state_t *_jit, int32_t code,
jit_word_t i0, int32_t r0, jit_int32_t r1) jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t f0, f1; int32_t f0, f1;
if (r1 == _ST0_REGNO) f0 = r1, f1 = r0; if (r1 == _ST0_REGNO) f0 = r1, f1 = r0;
@ -861,7 +861,7 @@ _x87_movi_f(jit_state_t *_jit, int32_t r0, jit_float32_t *i0)
} }
static void static void
_x87_ldr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _x87_ldr_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
fldsm(0, r1, _NOREG, _SCL1); fldsm(0, r1, _NOREG, _SCL1);
fstpr(r0 + 1); fstpr(r0 + 1);
@ -884,7 +884,7 @@ _x87_ldi_f(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_x87_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _x87_ldxr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
#if __X64_32 #if __X64_32
int32_t reg; int32_t reg;
@ -899,7 +899,7 @@ _x87_ldxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_x87_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _x87_ldxi_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (can_sign_extend_int_p(i0)) { if (can_sign_extend_int_p(i0)) {
@ -920,7 +920,7 @@ _x87_ldxi_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_x87_str_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _x87_str_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (r1 == _ST0_REGNO) if (r1 == _ST0_REGNO)
fstsm(0, r0, _NOREG, _SCL1); fstsm(0, r0, _NOREG, _SCL1);
@ -951,7 +951,7 @@ _x87_sti_f(jit_state_t *_jit, jit_word_t i0, int32_t r0)
} }
static void static void
_x87_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _x87_stxr_f(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
#if __X64_32 #if __X64_32
int32_t reg; int32_t reg;
@ -971,7 +971,7 @@ _x87_stxr_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_x87_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _x87_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (!can_sign_extend_int_p(i0)) { if (!can_sign_extend_int_p(i0)) {
@ -995,7 +995,7 @@ _x87_stxi_f(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1)
} }
static void static void
_x87_movr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _x87_movr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (r0 != r1) { if (r0 != r1) {
if (r1 == _ST0) if (r1 == _ST0)
@ -1062,7 +1062,7 @@ dopi(lt)
dopi(le) dopi(le)
static void static void
_x87_eqr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _x87_eqr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_bool_t rc; jit_bool_t rc;
jit_word_t jp_code; jit_word_t jp_code;
@ -1095,7 +1095,7 @@ dopi(ge)
dopi(gt) dopi(gt)
static void static void
_x87_ner_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _x87_ner_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
jit_bool_t rc; jit_bool_t rc;
jit_word_t jp_code; jit_word_t jp_code;
@ -1131,7 +1131,7 @@ dopi(unge)
dopi(ungt) dopi(ungt)
static void static void
_x87_ltgtr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _x87_ltgtr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
if (r1 == r2) if (r1 == r2)
movi(r0, 1); movi(r0, 1);
@ -1144,7 +1144,7 @@ dopi(ord)
dopi(unord) dopi(unord)
static void static void
_x87_ldr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _x87_ldr_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
fldlm(0, r1, _NOREG, _SCL1); fldlm(0, r1, _NOREG, _SCL1);
fstpr(r0 + 1); fstpr(r0 + 1);
@ -1167,7 +1167,7 @@ _x87_ldi_d(jit_state_t *_jit, int32_t r0, jit_word_t i0)
} }
static void static void
_x87_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _x87_ldxr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
#if __X64_32 #if __X64_32
int32_t reg; int32_t reg;
@ -1182,7 +1182,7 @@ _x87_ldxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_x87_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0) _x87_ldxi_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_word_t i0)
{ {
int32_t reg; int32_t reg;
if (can_sign_extend_int_p(i0)) { if (can_sign_extend_int_p(i0)) {
@ -1203,7 +1203,7 @@ _x87_ldxi_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_word_t i0)
} }
static void static void
_x87_str_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _x87_str_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
if (r1 == _ST0_REGNO) if (r1 == _ST0_REGNO)
fstlm(0, r0, _NOREG, _SCL1); fstlm(0, r0, _NOREG, _SCL1);
@ -1234,7 +1234,7 @@ _x87_sti_d(jit_state_t *_jit, jit_word_t i0, int32_t r0)
} }
static void static void
_x87_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2) _x87_stxr_d(jit_state_t *_jit, int32_t r0, int32_t r1, jit_int32_t r2)
{ {
#if __X64_32 #if __X64_32
int32_t reg; int32_t reg;
@ -1254,7 +1254,7 @@ _x87_stxr_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1, jit_int32_t r2)
} }
static void static void
_x87_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _x87_stxi_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t reg; int32_t reg;
if (!can_sign_extend_int_p(i0)) { if (!can_sign_extend_int_p(i0)) {
@ -1281,7 +1281,7 @@ dbopi(lt)
dbopi(le) dbopi(le)
static jit_word_t static jit_word_t
_x87_beqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _x87_beqr_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t f0, f1; int32_t f0, f1;
jit_word_t jp_code; jit_word_t jp_code;
@ -1304,7 +1304,7 @@ dbopi(ge)
dbopi(gt) dbopi(gt)
static jit_word_t static jit_word_t
_x87_bner_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, jit_int32_t r1) _x87_bner_d(jit_state_t *_jit, jit_word_t i0, int32_t r0, int32_t r1)
{ {
int32_t f0, f1; int32_t f0, f1;
jit_word_t jp_code; jit_word_t jp_code;

View file

@ -17,9 +17,6 @@
* Paulo Cesar Pereira de Andrade * Paulo Cesar Pereira de Andrade
*/ */
#include "jit.h"
#include "jit/jit_private.h"
#if __X32 #if __X32
# define jit_arg_reg_p(i) 0 # define jit_arg_reg_p(i) 0
# define jit_arg_f_reg_p(i) 0 # define jit_arg_f_reg_p(i) 0
@ -102,13 +99,13 @@ typedef struct jit_va_list {
#define patch(instr, node) _patch(_jit, instr, node) #define patch(instr, node) _patch(_jit, instr, node)
static void _patch(jit_state_t*,jit_word_t,jit_node_t*); static void _patch(jit_state_t*,jit_word_t,jit_node_t*);
#define sse_from_x87_f(r0, r1) _sse_from_x87_f(_jit, r0, r1) #define sse_from_x87_f(r0, r1) _sse_from_x87_f(_jit, r0, r1)
static void _sse_from_x87_f(jit_state_t*,int32_t,jit_int32_t); static void _sse_from_x87_f(jit_state_t*,int32_t,int32_t);
#define sse_from_x87_d(r0, r1) _sse_from_x87_d(_jit, r0, r1) #define sse_from_x87_d(r0, r1) _sse_from_x87_d(_jit, r0, r1)
static void _sse_from_x87_d(jit_state_t*,int32_t,jit_int32_t); static void _sse_from_x87_d(jit_state_t*,int32_t,int32_t);
#define x87_from_sse_f(r0, r1) _x87_from_sse_f(_jit, r0, r1) #define x87_from_sse_f(r0, r1) _x87_from_sse_f(_jit, r0, r1)
static void _x87_from_sse_f(jit_state_t*,int32_t,jit_int32_t); static void _x87_from_sse_f(jit_state_t*,int32_t,int32_t);
#define x87_from_sse_d(r0, r1) _x87_from_sse_d(_jit, r0, r1) #define x87_from_sse_d(r0, r1) _x87_from_sse_d(_jit, r0, r1)
static void _x87_from_sse_d(jit_state_t*,int32_t,jit_int32_t); static void _x87_from_sse_d(jit_state_t*,int32_t,int32_t);
#define PROTO 1 #define PROTO 1
# include "x86-cpu.c" # include "x86-cpu.c"
@ -467,7 +464,7 @@ _jit_allocai(jit_state_t *_jit, int32_t length)
} }
void void
_jit_allocar(jit_state_t *_jit, int32_t u, jit_int32_t v) _jit_allocar(jit_state_t *_jit, int32_t u, int32_t v)
{ {
int32_t reg; int32_t reg;
assert(_jitc->function); assert(_jitc->function);
@ -2236,28 +2233,28 @@ _patch(jit_state_t *_jit, jit_word_t instr, jit_node_t *node)
} }
static void static void
_sse_from_x87_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _sse_from_x87_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
x87_stxi_f(CVT_OFFSET, _RBP_REGNO, r1); x87_stxi_f(CVT_OFFSET, _RBP_REGNO, r1);
sse_ldxi_f(r0, _RBP_REGNO, CVT_OFFSET); sse_ldxi_f(r0, _RBP_REGNO, CVT_OFFSET);
} }
static void static void
_sse_from_x87_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _sse_from_x87_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
x87_stxi_d(CVT_OFFSET, _RBP_REGNO, r1); x87_stxi_d(CVT_OFFSET, _RBP_REGNO, r1);
sse_ldxi_d(r0, _RBP_REGNO, CVT_OFFSET); sse_ldxi_d(r0, _RBP_REGNO, CVT_OFFSET);
} }
static void static void
_x87_from_sse_f(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _x87_from_sse_f(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
sse_stxi_f(CVT_OFFSET, _RBP_REGNO, r1); sse_stxi_f(CVT_OFFSET, _RBP_REGNO, r1);
x87_ldxi_f(r0, _RBP_REGNO, CVT_OFFSET); x87_ldxi_f(r0, _RBP_REGNO, CVT_OFFSET);
} }
static void static void
_x87_from_sse_d(jit_state_t *_jit, int32_t r0, jit_int32_t r1) _x87_from_sse_d(jit_state_t *_jit, int32_t r0, int32_t r1)
{ {
sse_stxi_d(CVT_OFFSET, _RBP_REGNO, r1); sse_stxi_d(CVT_OFFSET, _RBP_REGNO, r1);
x87_ldxi_d(r0, _RBP_REGNO, CVT_OFFSET); x87_ldxi_d(r0, _RBP_REGNO, CVT_OFFSET);