|
|
|
@ -13,10 +13,10 @@ |
|
|
|
/* VMLA */ |
|
|
|
/* cond 1110 0D00 Vn-- Vd-- 101X N0M0 Vm-- */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vmla_inst { |
|
|
|
struct vmla_inst { |
|
|
|
unsigned int instr; |
|
|
|
unsigned int dp_operation; |
|
|
|
} vmla_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vmla)(unsigned int inst, int index) |
|
|
|
@ -63,10 +63,10 @@ VMLA_INST: |
|
|
|
/* VNMLS */ |
|
|
|
/* cond 1110 0D00 Vn-- Vd-- 101X N1M0 Vm-- */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vmls_inst { |
|
|
|
struct vmls_inst { |
|
|
|
unsigned int instr; |
|
|
|
unsigned int dp_operation; |
|
|
|
} vmls_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vmls)(unsigned int inst, int index) |
|
|
|
@ -113,10 +113,10 @@ VMLS_INST: |
|
|
|
/* VNMLA */ |
|
|
|
/* cond 1110 0D01 Vn-- Vd-- 101X N1M0 Vm-- */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vnmla_inst { |
|
|
|
struct vnmla_inst { |
|
|
|
unsigned int instr; |
|
|
|
unsigned int dp_operation; |
|
|
|
} vnmla_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vnmla)(unsigned int inst, int index) |
|
|
|
@ -164,10 +164,10 @@ VNMLA_INST: |
|
|
|
/* cond 1110 0D01 Vn-- Vd-- 101X N0M0 Vm-- */ |
|
|
|
|
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vnmls_inst { |
|
|
|
struct vnmls_inst { |
|
|
|
unsigned int instr; |
|
|
|
unsigned int dp_operation; |
|
|
|
} vnmls_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vnmls)(unsigned int inst, int index) |
|
|
|
@ -214,10 +214,10 @@ VNMLS_INST: |
|
|
|
/* VNMUL */ |
|
|
|
/* cond 1110 0D10 Vn-- Vd-- 101X N0M0 Vm-- */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vnmul_inst { |
|
|
|
struct vnmul_inst { |
|
|
|
unsigned int instr; |
|
|
|
unsigned int dp_operation; |
|
|
|
} vnmul_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vnmul)(unsigned int inst, int index) |
|
|
|
@ -264,10 +264,10 @@ VNMUL_INST: |
|
|
|
/* VMUL */ |
|
|
|
/* cond 1110 0D10 Vn-- Vd-- 101X N0M0 Vm-- */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vmul_inst { |
|
|
|
struct vmul_inst { |
|
|
|
unsigned int instr; |
|
|
|
unsigned int dp_operation; |
|
|
|
} vmul_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vmul)(unsigned int inst, int index) |
|
|
|
@ -314,10 +314,10 @@ VMUL_INST: |
|
|
|
/* VADD */ |
|
|
|
/* cond 1110 0D11 Vn-- Vd-- 101X N0M0 Vm-- */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vadd_inst { |
|
|
|
struct vadd_inst { |
|
|
|
unsigned int instr; |
|
|
|
unsigned int dp_operation; |
|
|
|
} vadd_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vadd)(unsigned int inst, int index) |
|
|
|
@ -364,10 +364,10 @@ VADD_INST: |
|
|
|
/* VSUB */ |
|
|
|
/* cond 1110 0D11 Vn-- Vd-- 101X N1M0 Vm-- */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vsub_inst { |
|
|
|
struct vsub_inst { |
|
|
|
unsigned int instr; |
|
|
|
unsigned int dp_operation; |
|
|
|
} vsub_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vsub)(unsigned int inst, int index) |
|
|
|
@ -414,10 +414,10 @@ VSUB_INST: |
|
|
|
/* VDIV */ |
|
|
|
/* cond 1110 1D00 Vn-- Vd-- 101X N0M0 Vm-- */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vdiv_inst { |
|
|
|
struct vdiv_inst { |
|
|
|
unsigned int instr; |
|
|
|
unsigned int dp_operation; |
|
|
|
} vdiv_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vdiv)(unsigned int inst, int index) |
|
|
|
@ -465,11 +465,11 @@ VDIV_INST: |
|
|
|
/* cond 1110 1D11 im4H Vd-- 101X 0000 im4L */ |
|
|
|
/* cond 1110 opc1 CRn- CRd- copr op20 CRm- CDP */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vmovi_inst { |
|
|
|
struct vmovi_inst { |
|
|
|
unsigned int single; |
|
|
|
unsigned int d; |
|
|
|
unsigned int imm; |
|
|
|
} vmovi_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovi)(unsigned int inst, int index) |
|
|
|
@ -514,11 +514,11 @@ VMOVI_INST: |
|
|
|
/* cond 1110 1D11 0000 Vd-- 101X 01M0 Vm-- */ |
|
|
|
/* cond 1110 opc1 CRn- CRd- copr op20 CRm- CDP */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vmovr_inst { |
|
|
|
struct vmovr_inst { |
|
|
|
unsigned int single; |
|
|
|
unsigned int d; |
|
|
|
unsigned int m; |
|
|
|
} vmovr_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovr)(unsigned int inst, int index) |
|
|
|
@ -609,10 +609,10 @@ VABS_INST: |
|
|
|
/* cond 1110 1D11 0001 Vd-- 101X 11M0 Vm-- */ |
|
|
|
|
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vneg_inst { |
|
|
|
struct vneg_inst { |
|
|
|
unsigned int instr; |
|
|
|
unsigned int dp_operation; |
|
|
|
} vneg_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vneg)(unsigned int inst, int index) |
|
|
|
@ -659,10 +659,10 @@ VNEG_INST: |
|
|
|
/* VSQRT */ |
|
|
|
/* cond 1110 1D11 0001 Vd-- 101X 11M0 Vm-- */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vsqrt_inst { |
|
|
|
struct vsqrt_inst { |
|
|
|
unsigned int instr; |
|
|
|
unsigned int dp_operation; |
|
|
|
} vsqrt_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vsqrt)(unsigned int inst, int index) |
|
|
|
@ -709,10 +709,10 @@ VSQRT_INST: |
|
|
|
/* VCMP VCMPE */ |
|
|
|
/* cond 1110 1D11 0100 Vd-- 101X E1M0 Vm-- Encoding 1 */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vcmp_inst { |
|
|
|
struct vcmp_inst { |
|
|
|
unsigned int instr; |
|
|
|
unsigned int dp_operation; |
|
|
|
} vcmp_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vcmp)(unsigned int inst, int index) |
|
|
|
@ -759,10 +759,10 @@ VCMP_INST: |
|
|
|
/* VCMP VCMPE */ |
|
|
|
/* cond 1110 1D11 0100 Vd-- 101X E1M0 Vm-- Encoding 2 */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vcmp2_inst { |
|
|
|
struct vcmp2_inst { |
|
|
|
unsigned int instr; |
|
|
|
unsigned int dp_operation; |
|
|
|
} vcmp2_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vcmp2)(unsigned int inst, int index) |
|
|
|
@ -809,10 +809,10 @@ VCMP2_INST: |
|
|
|
/* VCVTBDS between double and single */ |
|
|
|
/* cond 1110 1D11 0111 Vd-- 101X 11M0 Vm-- */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vcvtbds_inst { |
|
|
|
struct vcvtbds_inst { |
|
|
|
unsigned int instr; |
|
|
|
unsigned int dp_operation; |
|
|
|
} vcvtbds_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vcvtbds)(unsigned int inst, int index) |
|
|
|
@ -859,10 +859,10 @@ VCVTBDS_INST: |
|
|
|
/* VCVTBFF between floating point and fixed point */ |
|
|
|
/* cond 1110 1D11 1op2 Vd-- 101X X1M0 Vm-- */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vcvtbff_inst { |
|
|
|
struct vcvtbff_inst { |
|
|
|
unsigned int instr; |
|
|
|
unsigned int dp_operation; |
|
|
|
} vcvtbff_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vcvtbff)(unsigned int inst, int index) |
|
|
|
@ -911,10 +911,10 @@ VCVTBFF_INST: |
|
|
|
/* VCVTBFI between floating point and integer */ |
|
|
|
/* cond 1110 1D11 1op2 Vd-- 101X X1M0 Vm-- */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vcvtbfi_inst { |
|
|
|
struct vcvtbfi_inst { |
|
|
|
unsigned int instr; |
|
|
|
unsigned int dp_operation; |
|
|
|
} vcvtbfi_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vcvtbfi)(unsigned int inst, int index) |
|
|
|
@ -967,11 +967,11 @@ VCVTBFI_INST: |
|
|
|
/* cond 1110 000o Vn-- Rt-- 1010 N001 0000 */ |
|
|
|
/* cond 1110 op11 CRn- Rt-- copr op21 CRm- MRC */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vmovbrs_inst { |
|
|
|
struct vmovbrs_inst { |
|
|
|
unsigned int to_arm; |
|
|
|
unsigned int t; |
|
|
|
unsigned int n; |
|
|
|
} vmovbrs_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrs)(unsigned int inst, int index) |
|
|
|
@ -1013,10 +1013,10 @@ VMOVBRS_INST: |
|
|
|
/* cond 1110 1110 reg- Rt-- 1010 0001 0000 */ |
|
|
|
/* cond 1110 op10 CRn- Rt-- copr op21 CRm- MCR */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vmsr_inst { |
|
|
|
struct vmsr_inst { |
|
|
|
unsigned int reg; |
|
|
|
unsigned int Rd; |
|
|
|
} vmsr_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vmsr)(unsigned int inst, int index) |
|
|
|
@ -1040,7 +1040,7 @@ VMSR_INST: |
|
|
|
{ |
|
|
|
if ((inst_base->cond == 0xe) || CondPassed(cpu, inst_base->cond)) { |
|
|
|
/* FIXME: special case for access to FPSID and FPEXC, VFP must be disabled ,
|
|
|
|
and in privilegied mode */ |
|
|
|
and in privileged mode */ |
|
|
|
/* Exceptions must be checked, according to v7 ref manual */ |
|
|
|
CHECK_VFP_ENABLED; |
|
|
|
|
|
|
|
@ -1060,12 +1060,12 @@ VMSR_INST: |
|
|
|
/* cond 1110 0XX0 Vd-- Rt-- 1011 DXX1 0000 */ |
|
|
|
/* cond 1110 op10 CRn- Rt-- copr op21 CRm- MCR */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vmovbrc_inst { |
|
|
|
struct vmovbrc_inst { |
|
|
|
unsigned int esize; |
|
|
|
unsigned int index; |
|
|
|
unsigned int d; |
|
|
|
unsigned int t; |
|
|
|
} vmovbrc_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrc)(unsigned int inst, int index) |
|
|
|
@ -1109,10 +1109,10 @@ VMOVBRC_INST: |
|
|
|
/* cond 1110 1111 CRn- Rt-- 1010 0001 0000 */ |
|
|
|
/* cond 1110 op11 CRn- Rt-- copr op21 CRm- MRC */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vmrs_inst { |
|
|
|
struct vmrs_inst { |
|
|
|
unsigned int reg; |
|
|
|
unsigned int Rt; |
|
|
|
} vmrs_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vmrs)(unsigned int inst, int index) |
|
|
|
@ -1136,7 +1136,7 @@ VMRS_INST: |
|
|
|
{ |
|
|
|
if ((inst_base->cond == 0xe) || CondPassed(cpu, inst_base->cond)) { |
|
|
|
/* FIXME: special case for access to FPSID and FPEXC, VFP must be disabled,
|
|
|
|
and in privilegied mode */ |
|
|
|
and in privileged mode */ |
|
|
|
/* Exceptions must be checked, according to v7 ref manual */ |
|
|
|
CHECK_VFP_ENABLED; |
|
|
|
|
|
|
|
@ -1191,12 +1191,12 @@ VMRS_INST: |
|
|
|
/* cond 1110 XXX1 Vd-- Rt-- 1011 NXX1 0000 */ |
|
|
|
/* cond 1110 op11 CRn- Rt-- copr op21 CRm- MCR */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vmovbcr_inst { |
|
|
|
struct vmovbcr_inst { |
|
|
|
unsigned int esize; |
|
|
|
unsigned int index; |
|
|
|
unsigned int d; |
|
|
|
unsigned int t; |
|
|
|
} vmovbcr_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbcr)(unsigned int inst, int index) |
|
|
|
@ -1245,12 +1245,12 @@ VMOVBCR_INST: |
|
|
|
/* cond 1100 010X Rt2- Rt-- 1010 00X1 Vm-- */ |
|
|
|
/* cond 1100 0101 Rt2- Rt-- copr opc1 CRm- MRRC */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vmovbrrss_inst { |
|
|
|
struct vmovbrrss_inst { |
|
|
|
unsigned int to_arm; |
|
|
|
unsigned int t; |
|
|
|
unsigned int t2; |
|
|
|
unsigned int m; |
|
|
|
} vmovbrrss_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrrss)(unsigned int inst, int index) |
|
|
|
@ -1294,12 +1294,12 @@ VMOVBRRSS_INST: |
|
|
|
/* cond 1100 010X Rt2- Rt-- 1011 00X1 Vm-- */ |
|
|
|
/* cond 1100 0101 Rt2- Rt-- copr opc1 CRm- MRRC */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vmovbrrd_inst { |
|
|
|
struct vmovbrrd_inst { |
|
|
|
unsigned int to_arm; |
|
|
|
unsigned int t; |
|
|
|
unsigned int t2; |
|
|
|
unsigned int m; |
|
|
|
} vmovbrrd_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrrd)(unsigned int inst, int index) |
|
|
|
@ -1347,13 +1347,13 @@ VMOVBRRD_INST: |
|
|
|
/* VSTR */ |
|
|
|
/* cond 1101 UD00 Rn-- Vd-- 101X imm8 imm8 */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vstr_inst { |
|
|
|
struct vstr_inst { |
|
|
|
unsigned int single; |
|
|
|
unsigned int n; |
|
|
|
unsigned int d; |
|
|
|
unsigned int imm32; |
|
|
|
unsigned int add; |
|
|
|
} vstr_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vstr)(unsigned int inst, int index) |
|
|
|
@ -1415,12 +1415,12 @@ VSTR_INST: |
|
|
|
/* VPUSH */ |
|
|
|
/* cond 1101 0D10 1101 Vd-- 101X imm8 imm8 */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vpush_inst { |
|
|
|
struct vpush_inst { |
|
|
|
unsigned int single; |
|
|
|
unsigned int d; |
|
|
|
unsigned int imm32; |
|
|
|
unsigned int regs; |
|
|
|
} vpush_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vpush)(unsigned int inst, int index) |
|
|
|
@ -1488,7 +1488,7 @@ VPUSH_INST: |
|
|
|
/* VSTM */ |
|
|
|
/* cond 110P UDW0 Rn-- Vd-- 101X imm8 imm8 */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vstm_inst { |
|
|
|
struct vstm_inst { |
|
|
|
unsigned int single; |
|
|
|
unsigned int add; |
|
|
|
unsigned int wback; |
|
|
|
@ -1496,7 +1496,7 @@ typedef struct _vstm_inst { |
|
|
|
unsigned int n; |
|
|
|
unsigned int imm32; |
|
|
|
unsigned int regs; |
|
|
|
} vstm_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vstm)(unsigned int inst, int index) |
|
|
|
@ -1570,12 +1570,12 @@ VSTM_INST: /* encoding 1 */ |
|
|
|
/* VPOP */ |
|
|
|
/* cond 1100 1D11 1101 Vd-- 101X imm8 imm8 */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vpop_inst { |
|
|
|
struct vpop_inst { |
|
|
|
unsigned int single; |
|
|
|
unsigned int d; |
|
|
|
unsigned int imm32; |
|
|
|
unsigned int regs; |
|
|
|
} vpop_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vpop)(unsigned int inst, int index) |
|
|
|
@ -1643,13 +1643,13 @@ VPOP_INST: |
|
|
|
/* VLDR */ |
|
|
|
/* cond 1101 UD01 Rn-- Vd-- 101X imm8 imm8 */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vldr_inst { |
|
|
|
struct vldr_inst { |
|
|
|
unsigned int single; |
|
|
|
unsigned int n; |
|
|
|
unsigned int d; |
|
|
|
unsigned int imm32; |
|
|
|
unsigned int add; |
|
|
|
} vldr_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vldr)(unsigned int inst, int index) |
|
|
|
@ -1711,7 +1711,7 @@ VLDR_INST: |
|
|
|
/* VLDM */ |
|
|
|
/* cond 110P UDW1 Rn-- Vd-- 101X imm8 imm8 */ |
|
|
|
#ifdef VFP_INTERPRETER_STRUCT
|
|
|
|
typedef struct _vldm_inst { |
|
|
|
struct vldm_inst { |
|
|
|
unsigned int single; |
|
|
|
unsigned int add; |
|
|
|
unsigned int wback; |
|
|
|
@ -1719,7 +1719,7 @@ typedef struct _vldm_inst { |
|
|
|
unsigned int n; |
|
|
|
unsigned int imm32; |
|
|
|
unsigned int regs; |
|
|
|
} vldm_inst; |
|
|
|
}; |
|
|
|
#endif
|
|
|
|
#ifdef VFP_INTERPRETER_TRANS
|
|
|
|
static ARM_INST_PTR INTERPRETER_TRANSLATE(vldm)(unsigned int inst, int index) |
|
|
|
|