mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	arm_dyncom_interpreter.cpp: Split by translation and interpreter logic
To facilitate the split, some small changes were made to names of various structures and functions.
This commit is contained in:
		
							parent
							
								
									ba4fb4109a
								
							
						
					
					
						commit
						c7ffd8a920
					
				
					 5 changed files with 2731 additions and 2727 deletions
				
			
		|  | @ -5,6 +5,7 @@ set(SRCS | ||||||
|             arm/dyncom/arm_dyncom_dec.cpp |             arm/dyncom/arm_dyncom_dec.cpp | ||||||
|             arm/dyncom/arm_dyncom_interpreter.cpp |             arm/dyncom/arm_dyncom_interpreter.cpp | ||||||
|             arm/dyncom/arm_dyncom_thumb.cpp |             arm/dyncom/arm_dyncom_thumb.cpp | ||||||
|  |             arm/dyncom/arm_dyncom_trans.cpp | ||||||
|             arm/skyeye_common/armstate.cpp |             arm/skyeye_common/armstate.cpp | ||||||
|             arm/skyeye_common/armsupp.cpp |             arm/skyeye_common/armsupp.cpp | ||||||
|             arm/skyeye_common/vfp/vfp.cpp |             arm/skyeye_common/vfp/vfp.cpp | ||||||
|  | @ -140,6 +141,7 @@ set(HEADERS | ||||||
|             arm/dyncom/arm_dyncom_interpreter.h |             arm/dyncom/arm_dyncom_interpreter.h | ||||||
|             arm/dyncom/arm_dyncom_run.h |             arm/dyncom/arm_dyncom_run.h | ||||||
|             arm/dyncom/arm_dyncom_thumb.h |             arm/dyncom/arm_dyncom_thumb.h | ||||||
|  |             arm/dyncom/arm_dyncom_trans.h | ||||||
|             arm/skyeye_common/arm_regformat.h |             arm/skyeye_common/arm_regformat.h | ||||||
|             arm/skyeye_common/armstate.h |             arm/skyeye_common/armstate.h | ||||||
|             arm/skyeye_common/armsupp.h |             arm/skyeye_common/armsupp.h | ||||||
|  |  | ||||||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										2181
									
								
								src/core/arm/dyncom/arm_dyncom_trans.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2181
									
								
								src/core/arm/dyncom/arm_dyncom_trans.cpp
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										492
									
								
								src/core/arm/dyncom/arm_dyncom_trans.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										492
									
								
								src/core/arm/dyncom/arm_dyncom_trans.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,492 @@ | ||||||
|  | struct ARMul_State; | ||||||
|  | typedef unsigned int (*shtop_fp_t)(ARMul_State* cpu, unsigned int sht_oper); | ||||||
|  | 
 | ||||||
|  | enum class TransExtData { | ||||||
|  |     COND            = (1 << 0), | ||||||
|  |     NON_BRANCH      = (1 << 1), | ||||||
|  |     DIRECT_BRANCH   = (1 << 2), | ||||||
|  |     INDIRECT_BRANCH = (1 << 3), | ||||||
|  |     CALL            = (1 << 4), | ||||||
|  |     RET             = (1 << 5), | ||||||
|  |     END_OF_PAGE     = (1 << 6), | ||||||
|  |     THUMB           = (1 << 7), | ||||||
|  |     SINGLE_STEP     = (1 << 8) | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | struct arm_inst { | ||||||
|  |     unsigned int idx; | ||||||
|  |     unsigned int cond; | ||||||
|  |     TransExtData 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; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | #define VFP_INTERPRETER_STRUCT | ||||||
|  | #include "core/arm/skyeye_common/vfp/vfpinstr.cpp" | ||||||
|  | #undef VFP_INTERPRETER_STRUCT | ||||||
|  | 
 | ||||||
|  | typedef void (*get_addr_fp_t)(ARMul_State *cpu, unsigned int inst, unsigned int &virt_addr); | ||||||
|  | 
 | ||||||
|  | struct ldst_inst { | ||||||
|  |     unsigned int inst; | ||||||
|  |     get_addr_fp_t get_addr; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | typedef arm_inst* ARM_INST_PTR; | ||||||
|  | typedef ARM_INST_PTR (*transop_fp_t)(unsigned int, int); | ||||||
|  | 
 | ||||||
|  | extern const transop_fp_t arm_instruction_trans[]; | ||||||
|  | extern const size_t arm_instruction_trans_len; | ||||||
|  | 
 | ||||||
|  | #define TRANS_CACHE_SIZE (64 * 1024 * 2000) | ||||||
|  | extern char trans_cache_buf[TRANS_CACHE_SIZE]; | ||||||
|  | extern size_t trans_cache_buf_top; | ||||||
|  | @ -26,7 +26,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmla)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->dp_operation = BIT(inst, 8); |     inst_cream->dp_operation = BIT(inst, 8); | ||||||
|     inst_cream->instr = inst; |     inst_cream->instr = inst; | ||||||
|  | @ -75,7 +75,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmls)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->dp_operation = BIT(inst, 8); |     inst_cream->dp_operation = BIT(inst, 8); | ||||||
|     inst_cream->instr = inst; |     inst_cream->instr = inst; | ||||||
|  | @ -124,7 +124,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vnmla)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->dp_operation = BIT(inst, 8); |     inst_cream->dp_operation = BIT(inst, 8); | ||||||
|     inst_cream->instr = inst; |     inst_cream->instr = inst; | ||||||
|  | @ -174,7 +174,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vnmls)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->dp_operation = BIT(inst, 8); |     inst_cream->dp_operation = BIT(inst, 8); | ||||||
|     inst_cream->instr = inst; |     inst_cream->instr = inst; | ||||||
|  | @ -223,7 +223,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vnmul)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->dp_operation = BIT(inst, 8); |     inst_cream->dp_operation = BIT(inst, 8); | ||||||
|     inst_cream->instr = inst; |     inst_cream->instr = inst; | ||||||
|  | @ -272,7 +272,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmul)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->dp_operation = BIT(inst, 8); |     inst_cream->dp_operation = BIT(inst, 8); | ||||||
|     inst_cream->instr = inst; |     inst_cream->instr = inst; | ||||||
|  | @ -321,7 +321,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vadd)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->dp_operation = BIT(inst, 8); |     inst_cream->dp_operation = BIT(inst, 8); | ||||||
|     inst_cream->instr = inst; |     inst_cream->instr = inst; | ||||||
|  | @ -370,7 +370,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vsub)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->dp_operation = BIT(inst, 8); |     inst_cream->dp_operation = BIT(inst, 8); | ||||||
|     inst_cream->instr = inst; |     inst_cream->instr = inst; | ||||||
|  | @ -419,7 +419,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vdiv)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->dp_operation = BIT(inst, 8); |     inst_cream->dp_operation = BIT(inst, 8); | ||||||
|     inst_cream->instr = inst; |     inst_cream->instr = inst; | ||||||
|  | @ -470,7 +470,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovi)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->single = BIT(inst, 8) == 0; |     inst_cream->single = BIT(inst, 8) == 0; | ||||||
|     inst_cream->d      = (inst_cream->single ? BITS(inst,12,15)<<1 | BIT(inst,22) : BITS(inst,12,15) | BIT(inst,22)<<4); |     inst_cream->d      = (inst_cream->single ? BITS(inst,12,15)<<1 | BIT(inst,22) : BITS(inst,12,15) | BIT(inst,22)<<4); | ||||||
|  | @ -518,7 +518,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovr)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->single = BIT(inst, 8) == 0; |     inst_cream->single = BIT(inst, 8) == 0; | ||||||
|     inst_cream->d      = (inst_cream->single ? BITS(inst,12,15)<<1 | BIT(inst,22) : BITS(inst,12,15) | BIT(inst,22)<<4); |     inst_cream->d      = (inst_cream->single ? BITS(inst,12,15)<<1 | BIT(inst,22) : BITS(inst,12,15) | BIT(inst,22)<<4); | ||||||
|  | @ -560,7 +560,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vabs)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->dp_operation = BIT(inst, 8); |     inst_cream->dp_operation = BIT(inst, 8); | ||||||
|     inst_cream->instr = inst; |     inst_cream->instr = inst; | ||||||
|  | @ -610,7 +610,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vneg)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->dp_operation = BIT(inst, 8); |     inst_cream->dp_operation = BIT(inst, 8); | ||||||
|     inst_cream->instr = inst; |     inst_cream->instr = inst; | ||||||
|  | @ -659,7 +659,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vsqrt)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->dp_operation = BIT(inst, 8); |     inst_cream->dp_operation = BIT(inst, 8); | ||||||
|     inst_cream->instr = inst; |     inst_cream->instr = inst; | ||||||
|  | @ -708,7 +708,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vcmp)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->dp_operation = BIT(inst, 8); |     inst_cream->dp_operation = BIT(inst, 8); | ||||||
|     inst_cream->instr = inst; |     inst_cream->instr = inst; | ||||||
|  | @ -757,7 +757,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vcmp2)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->dp_operation = BIT(inst, 8); |     inst_cream->dp_operation = BIT(inst, 8); | ||||||
|     inst_cream->instr = inst; |     inst_cream->instr = inst; | ||||||
|  | @ -806,7 +806,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vcvtbds)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->dp_operation = BIT(inst, 8); |     inst_cream->dp_operation = BIT(inst, 8); | ||||||
|     inst_cream->instr = inst; |     inst_cream->instr = inst; | ||||||
|  | @ -857,7 +857,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vcvtbff)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->dp_operation = BIT(inst, 8); |     inst_cream->dp_operation = BIT(inst, 8); | ||||||
|     inst_cream->instr = inst; |     inst_cream->instr = inst; | ||||||
|  | @ -906,7 +906,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vcvtbfi)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->dp_operation = BIT(inst, 8); |     inst_cream->dp_operation = BIT(inst, 8); | ||||||
|     inst_cream->instr = inst; |     inst_cream->instr = inst; | ||||||
|  | @ -962,7 +962,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrs)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->to_arm = BIT(inst, 20) == 1; |     inst_cream->to_arm = BIT(inst, 20) == 1; | ||||||
|     inst_cream->t      = BITS(inst, 12, 15); |     inst_cream->t      = BITS(inst, 12, 15); | ||||||
|  | @ -1006,7 +1006,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmsr)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->reg = BITS(inst, 16, 19); |     inst_cream->reg = BITS(inst, 16, 19); | ||||||
|     inst_cream->Rt  = BITS(inst, 12, 15); |     inst_cream->Rt  = BITS(inst, 12, 15); | ||||||
|  | @ -1069,7 +1069,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrc)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->d     = BITS(inst, 16, 19)|BIT(inst, 7)<<4; |     inst_cream->d     = BITS(inst, 16, 19)|BIT(inst, 7)<<4; | ||||||
|     inst_cream->t     = BITS(inst, 12, 15); |     inst_cream->t     = BITS(inst, 12, 15); | ||||||
|  | @ -1115,7 +1115,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmrs)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->reg = BITS(inst, 16, 19); |     inst_cream->reg = BITS(inst, 16, 19); | ||||||
|     inst_cream->Rt  = BITS(inst, 12, 15); |     inst_cream->Rt  = BITS(inst, 12, 15); | ||||||
|  | @ -1200,7 +1200,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbcr)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->d     = BITS(inst, 16, 19)|BIT(inst, 7)<<4; |     inst_cream->d     = BITS(inst, 16, 19)|BIT(inst, 7)<<4; | ||||||
|     inst_cream->t     = BITS(inst, 12, 15); |     inst_cream->t     = BITS(inst, 12, 15); | ||||||
|  | @ -1253,7 +1253,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrrss)(unsigned int inst, int inde | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->to_arm = BIT(inst, 20) == 1; |     inst_cream->to_arm = BIT(inst, 20) == 1; | ||||||
|     inst_cream->t      = BITS(inst, 12, 15); |     inst_cream->t      = BITS(inst, 12, 15); | ||||||
|  | @ -1301,7 +1301,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrrd)(unsigned int inst, int index | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->to_arm = BIT(inst, 20) == 1; |     inst_cream->to_arm = BIT(inst, 20) == 1; | ||||||
|     inst_cream->t      = BITS(inst, 12, 15); |     inst_cream->t      = BITS(inst, 12, 15); | ||||||
|  | @ -1354,7 +1354,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vstr)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->single = BIT(inst, 8) == 0; |     inst_cream->single = BIT(inst, 8) == 0; | ||||||
|     inst_cream->add    = BIT(inst, 23); |     inst_cream->add    = BIT(inst, 23); | ||||||
|  | @ -1420,7 +1420,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vpush)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->single  = BIT(inst, 8) == 0; |     inst_cream->single  = BIT(inst, 8) == 0; | ||||||
|     inst_cream->d       = (inst_cream->single ? BITS(inst, 12, 15)<<1|BIT(inst, 22) : BITS(inst, 12, 15)|BIT(inst, 22)<<4); |     inst_cream->d       = (inst_cream->single ? BITS(inst, 12, 15)<<1|BIT(inst, 22) : BITS(inst, 12, 15)|BIT(inst, 22)<<4); | ||||||
|  | @ -1495,7 +1495,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vstm)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->single = BIT(inst, 8) == 0; |     inst_cream->single = BIT(inst, 8) == 0; | ||||||
|     inst_cream->add    = BIT(inst, 23); |     inst_cream->add    = BIT(inst, 23); | ||||||
|  | @ -1580,7 +1580,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vpop)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->single  = BIT(inst, 8) == 0; |     inst_cream->single  = BIT(inst, 8) == 0; | ||||||
|     inst_cream->d       = (inst_cream->single ? (BITS(inst, 12, 15)<<1)|BIT(inst, 22) : BITS(inst, 12, 15)|(BIT(inst, 22)<<4)); |     inst_cream->d       = (inst_cream->single ? (BITS(inst, 12, 15)<<1)|BIT(inst, 22) : BITS(inst, 12, 15)|(BIT(inst, 22)<<4)); | ||||||
|  | @ -1653,7 +1653,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vldr)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->single = BIT(inst, 8) == 0; |     inst_cream->single = BIT(inst, 8) == 0; | ||||||
|     inst_cream->add    = BIT(inst, 23); |     inst_cream->add    = BIT(inst, 23); | ||||||
|  | @ -1722,7 +1722,7 @@ static ARM_INST_PTR INTERPRETER_TRANSLATE(vldm)(unsigned int inst, int index) | ||||||
| 
 | 
 | ||||||
|     inst_base->cond = BITS(inst, 28, 31); |     inst_base->cond = BITS(inst, 28, 31); | ||||||
|     inst_base->idx  = index; |     inst_base->idx  = index; | ||||||
|     inst_base->br   = NON_BRANCH; |     inst_base->br   = TransExtData::NON_BRANCH; | ||||||
| 
 | 
 | ||||||
|     inst_cream->single = BIT(inst, 8) == 0; |     inst_cream->single = BIT(inst, 8) == 0; | ||||||
|     inst_cream->add    = BIT(inst, 23); |     inst_cream->add    = BIT(inst, 23); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue