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