mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	Merge pull request #1896 from citra-emu/revert-1893-interpreter-split
Revert "Split huge interpreter source file into translation info and interpreter (+ some tiny misc style fixes)"
This commit is contained in:
		
						commit
						ce2aee819a
					
				
					 5 changed files with 2730 additions and 2734 deletions
				
			
		|  | @ -5,7 +5,6 @@ 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 | ||||||
|  | @ -141,7 +140,6 @@ 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
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -1,492 +0,0 @@ | ||||||
| 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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   = TransExtData::NON_BRANCH; |     inst_base->br   = 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