mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-26 13:10:22 +02:00
Finish conversion to stdint types
This commit is contained in:
parent
47970773bc
commit
a0714ec410
32 changed files with 3511 additions and 3523 deletions
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
384
jit/alpha-cpu.c
384
jit/alpha-cpu.c
File diff suppressed because it is too large
Load diff
282
jit/alpha-fpu.c
282
jit/alpha-fpu.c
|
@ -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;
|
||||||
|
|
10
jit/alpha.c
10
jit/alpha.c
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
336
jit/arm-cpu.c
336
jit/arm-cpu.c
|
@ -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);
|
||||||
|
|
||||||
|
|
228
jit/arm-swf.c
228
jit/arm-swf.c
|
@ -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;
|
||||||
|
|
||||||
|
|
256
jit/arm-vfp.c
256
jit/arm-vfp.c
|
@ -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;
|
||||||
|
|
||||||
|
|
10
jit/arm.c
10
jit/arm.c
|
@ -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));
|
||||||
|
|
572
jit/hppa-cpu.c
572
jit/hppa-cpu.c
File diff suppressed because it is too large
Load diff
166
jit/hppa-fpu.c
166
jit/hppa-fpu.c
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
396
jit/ia64-cpu.c
396
jit/ia64-cpu.c
File diff suppressed because it is too large
Load diff
270
jit/ia64-fpu.c
270
jit/ia64-fpu.c
|
@ -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. */
|
||||||
|
|
|
@ -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);
|
||||||
|
|
458
jit/mips-cpu.c
458
jit/mips-cpu.c
File diff suppressed because it is too large
Load diff
394
jit/mips-fpu.c
394
jit/mips-fpu.c
File diff suppressed because it is too large
Load diff
10
jit/mips.c
10
jit/mips.c
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
380
jit/ppc-cpu.c
380
jit/ppc-cpu.c
File diff suppressed because it is too large
Load diff
242
jit/ppc-fpu.c
242
jit/ppc-fpu.c
|
@ -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);
|
||||||
|
|
10
jit/ppc.c
10
jit/ppc.c
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
340
jit/s390-cpu.c
340
jit/s390-cpu.c
File diff suppressed because it is too large
Load diff
140
jit/s390-fpu.c
140
jit/s390-fpu.c
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
336
jit/sparc-cpu.c
336
jit/sparc-cpu.c
|
@ -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);
|
||||||
|
|
||||||
|
|
150
jit/sparc-fpu.c
150
jit/sparc-fpu.c
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
562
jit/x86-cpu.c
562
jit/x86-cpu.c
File diff suppressed because it is too large
Load diff
360
jit/x86-sse.c
360
jit/x86-sse.c
File diff suppressed because it is too large
Load diff
226
jit/x86-x87.c
226
jit/x86-x87.c
|
@ -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;
|
||||||
|
|
21
jit/x86.c
21
jit/x86.c
|
@ -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);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue