3 changed files with 2653 additions and 2649 deletions
-
2652src/core/arm/dyncom/arm_dyncom_interpreter.cpp
-
2188src/core/arm/dyncom/arm_dyncom_trans.inc
-
462src/core/arm/dyncom/arm_dyncom_trans_struct.inc
2652
src/core/arm/dyncom/arm_dyncom_interpreter.cpp
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
2188
src/core/arm/dyncom/arm_dyncom_trans.inc
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View 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 |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue