mirror of
https://git.suyu.dev/suyu/suyu
synced 2024-11-01 12:57:52 +00:00
arm_dyncom_interpreter.cpp: #include translation info from inc files
This commit is contained in:
parent
ba4fb4109a
commit
2c482722e7
3 changed files with 2652 additions and 2648 deletions
File diff suppressed because it is too large
Load diff
2188
src/core/arm/dyncom/arm_dyncom_trans.inc
Normal file
2188
src/core/arm/dyncom/arm_dyncom_trans.inc
Normal file
File diff suppressed because it is too large
Load diff
462
src/core/arm/dyncom/arm_dyncom_trans_struct.inc
Normal file
462
src/core/arm/dyncom/arm_dyncom_trans_struct.inc
Normal file
|
@ -0,0 +1,462 @@
|
||||||
|
struct arm_inst {
|
||||||
|
unsigned int idx;
|
||||||
|
unsigned int cond;
|
||||||
|
int br;
|
||||||
|
char component[0];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct generic_arm_inst {
|
||||||
|
u32 Ra;
|
||||||
|
u32 Rm;
|
||||||
|
u32 Rn;
|
||||||
|
u32 Rd;
|
||||||
|
u8 op1;
|
||||||
|
u8 op2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct adc_inst {
|
||||||
|
unsigned int I;
|
||||||
|
unsigned int S;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int shifter_operand;
|
||||||
|
shtop_fp_t shtop_func;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct add_inst {
|
||||||
|
unsigned int I;
|
||||||
|
unsigned int S;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int shifter_operand;
|
||||||
|
shtop_fp_t shtop_func;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct orr_inst {
|
||||||
|
unsigned int I;
|
||||||
|
unsigned int S;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int shifter_operand;
|
||||||
|
shtop_fp_t shtop_func;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct and_inst {
|
||||||
|
unsigned int I;
|
||||||
|
unsigned int S;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int shifter_operand;
|
||||||
|
shtop_fp_t shtop_func;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct eor_inst {
|
||||||
|
unsigned int I;
|
||||||
|
unsigned int S;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int shifter_operand;
|
||||||
|
shtop_fp_t shtop_func;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct bbl_inst {
|
||||||
|
unsigned int L;
|
||||||
|
int signed_immed_24;
|
||||||
|
unsigned int next_addr;
|
||||||
|
unsigned int jmp_addr;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct bx_inst {
|
||||||
|
unsigned int Rm;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct blx_inst {
|
||||||
|
union {
|
||||||
|
s32 signed_immed_24;
|
||||||
|
u32 Rm;
|
||||||
|
} val;
|
||||||
|
unsigned int inst;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct clz_inst {
|
||||||
|
unsigned int Rm;
|
||||||
|
unsigned int Rd;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct cps_inst {
|
||||||
|
unsigned int imod0;
|
||||||
|
unsigned int imod1;
|
||||||
|
unsigned int mmod;
|
||||||
|
unsigned int A, I, F;
|
||||||
|
unsigned int mode;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct clrex_inst {
|
||||||
|
};
|
||||||
|
|
||||||
|
struct cpy_inst {
|
||||||
|
unsigned int Rm;
|
||||||
|
unsigned int Rd;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct bic_inst {
|
||||||
|
unsigned int I;
|
||||||
|
unsigned int S;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int shifter_operand;
|
||||||
|
shtop_fp_t shtop_func;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct sub_inst {
|
||||||
|
unsigned int I;
|
||||||
|
unsigned int S;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int shifter_operand;
|
||||||
|
shtop_fp_t shtop_func;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct tst_inst {
|
||||||
|
unsigned int I;
|
||||||
|
unsigned int S;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int shifter_operand;
|
||||||
|
shtop_fp_t shtop_func;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct cmn_inst {
|
||||||
|
unsigned int I;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int shifter_operand;
|
||||||
|
shtop_fp_t shtop_func;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct teq_inst {
|
||||||
|
unsigned int I;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int shifter_operand;
|
||||||
|
shtop_fp_t shtop_func;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct stm_inst {
|
||||||
|
unsigned int inst;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct bkpt_inst {
|
||||||
|
u32 imm;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct stc_inst {
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ldc_inst {
|
||||||
|
};
|
||||||
|
|
||||||
|
struct swi_inst {
|
||||||
|
unsigned int num;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct cmp_inst {
|
||||||
|
unsigned int I;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int shifter_operand;
|
||||||
|
shtop_fp_t shtop_func;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mov_inst {
|
||||||
|
unsigned int I;
|
||||||
|
unsigned int S;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int shifter_operand;
|
||||||
|
shtop_fp_t shtop_func;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mvn_inst {
|
||||||
|
unsigned int I;
|
||||||
|
unsigned int S;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int shifter_operand;
|
||||||
|
shtop_fp_t shtop_func;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct rev_inst {
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int Rm;
|
||||||
|
unsigned int op1;
|
||||||
|
unsigned int op2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct rsb_inst {
|
||||||
|
unsigned int I;
|
||||||
|
unsigned int S;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int shifter_operand;
|
||||||
|
shtop_fp_t shtop_func;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct rsc_inst {
|
||||||
|
unsigned int I;
|
||||||
|
unsigned int S;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int shifter_operand;
|
||||||
|
shtop_fp_t shtop_func;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct sbc_inst {
|
||||||
|
unsigned int I;
|
||||||
|
unsigned int S;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int shifter_operand;
|
||||||
|
shtop_fp_t shtop_func;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mul_inst {
|
||||||
|
unsigned int S;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int Rs;
|
||||||
|
unsigned int Rm;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct smul_inst {
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int Rs;
|
||||||
|
unsigned int Rm;
|
||||||
|
unsigned int x;
|
||||||
|
unsigned int y;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct umull_inst {
|
||||||
|
unsigned int S;
|
||||||
|
unsigned int RdHi;
|
||||||
|
unsigned int RdLo;
|
||||||
|
unsigned int Rs;
|
||||||
|
unsigned int Rm;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct smlad_inst {
|
||||||
|
unsigned int m;
|
||||||
|
unsigned int Rm;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int Ra;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int op1;
|
||||||
|
unsigned int op2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct smla_inst {
|
||||||
|
unsigned int x;
|
||||||
|
unsigned int y;
|
||||||
|
unsigned int Rm;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int Rs;
|
||||||
|
unsigned int Rn;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct smlalxy_inst {
|
||||||
|
unsigned int x;
|
||||||
|
unsigned int y;
|
||||||
|
unsigned int RdLo;
|
||||||
|
unsigned int RdHi;
|
||||||
|
unsigned int Rm;
|
||||||
|
unsigned int Rn;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ssat_inst {
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int imm5;
|
||||||
|
unsigned int sat_imm;
|
||||||
|
unsigned int shift_type;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct umaal_inst {
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rm;
|
||||||
|
unsigned int RdHi;
|
||||||
|
unsigned int RdLo;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct umlal_inst {
|
||||||
|
unsigned int S;
|
||||||
|
unsigned int Rm;
|
||||||
|
unsigned int Rs;
|
||||||
|
unsigned int RdHi;
|
||||||
|
unsigned int RdLo;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct smlal_inst {
|
||||||
|
unsigned int S;
|
||||||
|
unsigned int Rm;
|
||||||
|
unsigned int Rs;
|
||||||
|
unsigned int RdHi;
|
||||||
|
unsigned int RdLo;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct smlald_inst {
|
||||||
|
unsigned int RdLo;
|
||||||
|
unsigned int RdHi;
|
||||||
|
unsigned int Rm;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int swap;
|
||||||
|
unsigned int op1;
|
||||||
|
unsigned int op2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mla_inst {
|
||||||
|
unsigned int S;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int Rs;
|
||||||
|
unsigned int Rm;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mrc_inst {
|
||||||
|
unsigned int opcode_1;
|
||||||
|
unsigned int opcode_2;
|
||||||
|
unsigned int cp_num;
|
||||||
|
unsigned int crn;
|
||||||
|
unsigned int crm;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int inst;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mcr_inst {
|
||||||
|
unsigned int opcode_1;
|
||||||
|
unsigned int opcode_2;
|
||||||
|
unsigned int cp_num;
|
||||||
|
unsigned int crn;
|
||||||
|
unsigned int crm;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int inst;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mcrr_inst {
|
||||||
|
unsigned int opcode_1;
|
||||||
|
unsigned int cp_num;
|
||||||
|
unsigned int crm;
|
||||||
|
unsigned int rt;
|
||||||
|
unsigned int rt2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mrs_inst {
|
||||||
|
unsigned int R;
|
||||||
|
unsigned int Rd;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct msr_inst {
|
||||||
|
unsigned int field_mask;
|
||||||
|
unsigned int R;
|
||||||
|
unsigned int inst;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct pld_inst {
|
||||||
|
};
|
||||||
|
|
||||||
|
struct sxtb_inst {
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int Rm;
|
||||||
|
unsigned int rotate;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct sxtab_inst {
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rm;
|
||||||
|
unsigned rotate;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct sxtah_inst {
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rm;
|
||||||
|
unsigned int rotate;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct sxth_inst {
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int Rm;
|
||||||
|
unsigned int rotate;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct uxtab_inst {
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int rotate;
|
||||||
|
unsigned int Rm;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct uxtah_inst {
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int rotate;
|
||||||
|
unsigned int Rm;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct uxth_inst {
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int Rm;
|
||||||
|
unsigned int rotate;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct cdp_inst {
|
||||||
|
unsigned int opcode_1;
|
||||||
|
unsigned int CRn;
|
||||||
|
unsigned int CRd;
|
||||||
|
unsigned int cp_num;
|
||||||
|
unsigned int opcode_2;
|
||||||
|
unsigned int CRm;
|
||||||
|
unsigned int inst;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct uxtb_inst {
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int Rm;
|
||||||
|
unsigned int rotate;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct swp_inst {
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned int Rm;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct setend_inst {
|
||||||
|
unsigned int set_bigend;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct b_2_thumb {
|
||||||
|
unsigned int imm;
|
||||||
|
};
|
||||||
|
struct b_cond_thumb {
|
||||||
|
unsigned int imm;
|
||||||
|
unsigned int cond;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct bl_1_thumb {
|
||||||
|
unsigned int imm;
|
||||||
|
};
|
||||||
|
struct bl_2_thumb {
|
||||||
|
unsigned int imm;
|
||||||
|
};
|
||||||
|
struct blx_1_thumb {
|
||||||
|
unsigned int imm;
|
||||||
|
unsigned int instr;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct pkh_inst {
|
||||||
|
unsigned int Rm;
|
||||||
|
unsigned int Rn;
|
||||||
|
unsigned int Rd;
|
||||||
|
unsigned char imm;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Floating point VFPv3 structures
|
||||||
|
|
||||||
|
#define VFP_INTERPRETER_STRUCT
|
||||||
|
#include "core/arm/skyeye_common/vfp/vfpinstr.cpp"
|
||||||
|
#undef VFP_INTERPRETER_STRUCT
|
Loading…
Reference in a new issue