Changeset 67085 in vbox for trunk/src/VBox/ValidationKit
- Timestamp:
- May 25, 2017 11:13:44 AM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c
r67084 r67085 2161 2161 2162 2162 2163 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_MODRM_Vps_WO_Wps__OR__MODRM_Vpd_WO_Wpd(PBS3CG1STATE pThis,2164 unsigned iEncoding)2165 {2166 unsigned off;2167 if (iEncoding == 0)2168 {2169 off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));2170 pThis->abCurInstr[off++] = X86_MODRM_MAKE(3, 1, 0);2171 pThis->aOperands[pThis->iRmOp ].idxField = BS3CG1DST_XMM0;2172 pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM1;2173 }2174 else if (iEncoding == 1)2175 {2176 pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM2;2177 off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));2178 off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 2 /*iReg*/, 16, 0, BS3CG1OPLOC_MEM);2179 }2180 else if (iEncoding == 2)2181 {2182 pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM3;2183 off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));2184 off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 3 /*iReg*/, 16, 1 /*cbMisalign*/, BS3CG1OPLOC_MEM);2185 if (!Bs3Cg1XcptTypeIsUnaligned(pThis->enmXcptType))2186 pThis->bAlignmentXcpt = X86_XCPT_GP;2187 }2188 else2189 return 0;2190 pThis->cbCurInstr = off;2191 return iEncoding + 1;2192 }2193 2194 2195 2163 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_MODRM_Vsomething_Wsomething_OR_ViceVersa(PBS3CG1STATE pThis, unsigned iEncoding) 2196 2164 { … … 3836 3804 case BS3CG1ENC_MODRM_VqHi_WO_Mq: 3837 3805 return Bs3Cg1EncodeNext_MODRM_VqHi_WO_Mq(pThis, iEncoding); 3838 case BS3CG1ENC_MODRM_Vpd_WO_Wpd:3839 case BS3CG1ENC_MODRM_Vps_WO_Wps:3840 return Bs3Cg1EncodeNext_MODRM_Vps_WO_Wps__OR__MODRM_Vpd_WO_Wpd(pThis, iEncoding);3841 3806 3842 3807 case BS3CG1ENC_FIXED: … … 4057 4022 case BS3CG1ENC_MODRM_Vpd_WO_Wpd: 4058 4023 case BS3CG1ENC_MODRM_Vps_WO_Wps: 4059 pThis->iRmOp = 1; 4060 pThis->iRegOp = 0; 4061 pThis->aOperands[0].cbOp = 16; 4062 pThis->aOperands[1].cbOp = 16; 4063 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 4064 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 4024 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vsomething_Wsomething_OR_ViceVersa; 4025 pThis->iRegOp = 0; 4026 pThis->iRmOp = 1; 4027 pThis->aOperands[0].cbOp = 16; 4028 pThis->aOperands[1].cbOp = 16; 4029 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0; 4030 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0; 4031 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 4032 pThis->aOperands[1].enmLocationReg = BS3CG1OPLOC_CTX; 4033 pThis->aOperands[1].enmLocationMem = BS3CG1OPLOC_MEM; 4065 4034 break; 4066 4035
Note:
See TracChangeset
for help on using the changeset viewer.