mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +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…
	
	Add table
		Add a link
		
	
		Reference in a new issue