mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	arm_dyncom_interpreter.cpp: #include translation info from inc files
This commit is contained in:
		
							parent
							
								
									ba4fb4109a
								
							
						
					
					
						commit
						2c482722e7
					
				
										
											
												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 New Issue
	
	Block a user