Changeset 98723 in vbox
- Timestamp:
- Feb 24, 2023 1:47:07 PM (2 years ago)
- svn:sync-xref-src-repo-rev:
- 156023
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllAImpl.asm
r98703 r98723 5223 5223 ; Need to move this as well somewhere better? 5224 5224 ; 5225 struc IEMPCMP ISTRISRC5225 struc IEMPCMPXSTRXSRC 5226 5226 .uSrc1 resd 4 5227 5227 .uSrc2 resd 4 … … 5229 5229 5230 5230 ;; 5231 ; The pcmpistri instruction.5231 ; The pcmpistri/pcmpestri instruction template. 5232 5232 ; 5233 5233 ; @param A0 Pointer to the ECX register to store the result to (output). … … 5236 5236 ; @param A3 The 8-bit immediate 5237 5237 ; 5238 BEGINPROC_FASTCALL iemAImpl_pcmpistri_u128, 16 5238 %macro IEMIMPL_MEDIA_PCMPXSTRI_INSN_IMM8_6 1 5239 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u128, 16 5239 5240 PROLOGUE_4_ARGS 5240 5241 IEMIMPL_SSE_PROLOGUE 5241 5242 5242 movdqu xmm0, [A2 + IEMPCMP ISTRISRC.uSrc1]5243 movdqu xmm1, [A2 + IEMPCMP ISTRISRC.uSrc2]5243 movdqu xmm0, [A2 + IEMPCMPXSTRXSRC.uSrc1] 5244 movdqu xmm1, [A2 + IEMPCMPXSTRXSRC.uSrc2] 5244 5245 mov T2, A0 ; A0 can be ecx/rcx in some calling conventions which gets overwritten later (T2 only available on AMD64) 5245 5246 lea T1, [.imm0 xWrtRIP] … … 5256 5257 %rep 256 5257 5258 .imm %+ bImm: 5258 pcmpistrixmm0, xmm1, bImm5259 %1 xmm0, xmm1, bImm 5259 5260 ret 5260 5261 int3 … … 5264 5265 dw 0xf7ff + (.immEnd - .imm0) ; will cause warning if entries are too big. 5265 5266 dw 0x107ff - (.immEnd - .imm0) ; will cause warning if entries are too small. 5266 ENDPROC iemAImpl_pcmpistri_u128 5267 ENDPROC iemAImpl_ %+ %1 %+ _u128 5268 %endmacro 5269 5270 IEMIMPL_MEDIA_PCMPXSTRI_INSN_IMM8_6 pcmpistri 5271 IEMIMPL_MEDIA_PCMPXSTRI_INSN_IMM8_6 pcmpestri 5272 5273 5274 ;; 5275 ; The pcmpistrm/pcmpestrm instruction template. 5276 ; 5277 ; @param A0 Pointer to the XMM0 register to store the result to (output). 5278 ; @param A1 Pointer to the EFLAGS register. 5279 ; @param A2 Pointer to the structure containing the source operands (input). 5280 ; @param A3 The 8-bit immediate 5281 ; 5282 %macro IEMIMPL_MEDIA_PCMPXSTRM_INSN_IMM8_6 1 5283 BEGINPROC_FASTCALL iemAImpl_ %+ %1 %+ _u128, 16 5284 PROLOGUE_4_ARGS 5285 IEMIMPL_SSE_PROLOGUE 5286 5287 movdqu xmm1, [A2 + IEMPCMPXSTRXSRC.uSrc1] 5288 movdqu xmm2, [A2 + IEMPCMPXSTRXSRC.uSrc2] 5289 lea T1, [.imm0 xWrtRIP] 5290 lea T0, [A3 + A3*3] ; sizeof(insnX+ret) == 8: (A3 * 4) * 2 5291 lea T1, [T1 + T0*2] 5292 call T1 5293 5294 IEM_SAVE_FLAGS A1, X86_EFL_STATUS_BITS, 0 5295 movdqu [A0], xmm0 5296 5297 IEMIMPL_SSE_EPILOGUE 5298 EPILOGUE_4_ARGS 5299 %assign bImm 0 5300 %rep 256 5301 .imm %+ bImm: 5302 %1 xmm1, xmm2, bImm 5303 ret 5304 int3 5305 %assign bImm bImm + 1 5306 %endrep 5307 .immEnd: ; 256*8 == 0x800 5308 dw 0xf7ff + (.immEnd - .imm0) ; will cause warning if entries are too big. 5309 dw 0x107ff - (.immEnd - .imm0) ; will cause warning if entries are too small. 5310 ENDPROC iemAImpl_ %+ %1 %+ _u128 5311 %endmacro 5312 5313 IEMIMPL_MEDIA_PCMPXSTRM_INSN_IMM8_6 pcmpistrm 5314 IEMIMPL_MEDIA_PCMPXSTRM_INSN_IMM8_6 pcmpestrm 5267 5315 5268 5316 -
trunk/src/VBox/VMM/VMMAll/IEMAllAImplC.cpp
r98703 r98723 16469 16469 * [V]PCMPISTRI 16470 16470 */ 16471 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpistri_u128_fallback,(uint32_t *pu32Ecx, uint32_t *pEFlags, PCIEMPCMP ISTRISRC pSrc, uint8_t bEvil))16471 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpistri_u128_fallback,(uint32_t *pu32Ecx, uint32_t *pEFlags, PCIEMPCMPXSTRXSRC pSrc, uint8_t bEvil)) 16472 16472 { 16473 16473 RT_NOREF(pu32Ecx, pEFlags, pSrc, bEvil); 16474 AssertReleaseFailed(); 16475 } 16476 16477 16478 /** 16479 * [V]PCMPESTRI 16480 */ 16481 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpestri_u128_fallback,(uint32_t *pu32Ecx, uint32_t *pEFlags, PCIEMPCMPXSTRXSRC pSrc, uint8_t bEvil)) 16482 { 16483 RT_NOREF(pu32Ecx, pEFlags, pSrc, bEvil); 16484 AssertReleaseFailed(); 16485 } 16486 16487 16488 /** 16489 * [V]PCMPISTRM 16490 */ 16491 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpistrm_u128_fallback,(PRTUINT128U puDst, uint32_t *pEFlags, PCIEMPCMPXSTRXSRC pSrc, uint8_t bEvil)) 16492 { 16493 RT_NOREF(puDst, pEFlags, pSrc, bEvil); 16494 AssertReleaseFailed(); 16495 } 16496 16497 16498 /** 16499 * [V]PCMPESTRM 16500 */ 16501 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpestrm_u128_fallback,(PRTUINT128U puDst, uint32_t *pEFlags, PCIEMPCMPXSTRXSRC pSrc, uint8_t bEvil)) 16502 { 16503 RT_NOREF(puDst, pEFlags, pSrc, bEvil); 16474 16504 AssertReleaseFailed(); 16475 16505 } -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f3a.cpp.h
r98703 r98723 1129 1129 1130 1130 /** Opcode 0x66 0x0f 0x60. */ 1131 FNIEMOP_STUB(iemOp_pcmpestrm_Vdq_Wdq_Ib); 1131 FNIEMOP_DEF(iemOp_pcmpestrm_Vdq_Wdq_Ib) 1132 { 1133 IEMOP_MNEMONIC3(RMI, PCMPESTRM, pcmpestrm, Vdq, Wdq, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, 0); 1134 1135 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1136 if (IEM_IS_MODRM_REG_MODE(bRm)) 1137 { 1138 /* 1139 * Register, register. 1140 */ 1141 uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm); 1142 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 1143 IEM_MC_BEGIN(4, 1); 1144 IEM_MC_ARG(PRTUINT128U, puDst, 0); 1145 IEM_MC_ARG(uint32_t *, pEFlags, 1); 1146 IEM_MC_LOCAL(IEMPCMPXSTRXSRC, Src); 1147 IEM_MC_ARG_LOCAL_REF(PIEMPCMPXSTRXSRC, pSrc, Src, 2); 1148 IEM_MC_ARG_CONST(uint8_t, bImmArg, /*=*/ bImm, 3); 1149 IEM_MC_MAYBE_RAISE_SSE42_RELATED_XCPT(); 1150 IEM_MC_PREPARE_SSE_USAGE(); 1151 IEM_MC_FETCH_XREG_U128(Src.uSrc1, IEM_GET_MODRM_REG(pVCpu, bRm)); 1152 IEM_MC_FETCH_XREG_U128(Src.uSrc2, IEM_GET_MODRM_RM(pVCpu, bRm)); 1153 IEM_MC_REF_XREG_U128(puDst, 0 /*xmm0*/); 1154 IEM_MC_REF_EFLAGS(pEFlags); 1155 IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fSse42, 1156 iemAImpl_pcmpestrm_u128, 1157 iemAImpl_pcmpestrm_u128_fallback), 1158 puDst, pEFlags, pSrc, bImmArg); 1159 IEM_MC_ADVANCE_RIP_AND_FINISH(); 1160 IEM_MC_END(); 1161 } 1162 else 1163 { 1164 /* 1165 * Register, memory. 1166 */ 1167 IEM_MC_BEGIN(4, 3); 1168 IEM_MC_ARG(uint32_t *, pu32Ecx, 0); 1169 IEM_MC_ARG(uint32_t *, pEFlags, 1); 1170 IEM_MC_LOCAL(IEMPCMPXSTRXSRC, Src); 1171 IEM_MC_ARG_LOCAL_REF(PIEMPCMPXSTRXSRC, pSrc, Src, 2); 1172 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 1173 1174 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 1); 1175 uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm); 1176 IEM_MC_ARG_CONST(uint8_t, bImmArg, /*=*/ bImm, 3); 1177 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 1178 IEM_MC_MAYBE_RAISE_SSE42_RELATED_XCPT(); 1179 IEM_MC_FETCH_MEM_U128(Src.uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 1180 1181 IEM_MC_PREPARE_SSE_USAGE(); 1182 IEM_MC_REF_GREG_U32(pu32Ecx, X86_GREG_xCX); 1183 IEM_MC_FETCH_XREG_U128(Src.uSrc1, IEM_GET_MODRM_REG(pVCpu, bRm)); 1184 IEM_MC_REF_EFLAGS(pEFlags); 1185 IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fSse42, 1186 iemAImpl_pcmpestri_u128, 1187 iemAImpl_pcmpestri_u128_fallback), 1188 pu32Ecx, pEFlags, pSrc, bImmArg); 1189 IEM_MC_ADVANCE_RIP_AND_FINISH(); 1190 IEM_MC_END(); 1191 } 1192 } 1193 1194 1132 1195 /** Opcode 0x66 0x0f 0x61, */ 1133 FNIEMOP_STUB(iemOp_pcmpestri_Vdq_Wdq_Ib); 1134 /** Opcode 0x66 0x0f 0x62. */ 1135 FNIEMOP_STUB(iemOp_pcmpistrm_Vdq_Wdq_Ib); 1136 1137 1138 /** Opcode 0x66 0x0f 0x63*/ 1139 FNIEMOP_DEF(iemOp_pcmpistri_Vdq_Wdq_Ib) 1140 { 1196 FNIEMOP_DEF(iemOp_pcmpestri_Vdq_Wdq_Ib) 1197 { 1198 IEMOP_MNEMONIC3(RMI, PCMPESTRI, pcmpestri, Vdq, Wdq, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, 0); 1199 1141 1200 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1142 1201 if (IEM_IS_MODRM_REG_MODE(bRm)) … … 1150 1209 IEM_MC_ARG(uint32_t *, pu32Ecx, 0); 1151 1210 IEM_MC_ARG(uint32_t *, pEFlags, 1); 1152 IEM_MC_LOCAL(IEMPCMPISTRISRC, Src); 1153 IEM_MC_ARG_LOCAL_REF(PIEMPCMPISTRISRC, pSrc, Src, 2); 1211 IEM_MC_LOCAL(IEMPCMPXSTRXSRC, Src); 1212 IEM_MC_ARG_LOCAL_REF(PIEMPCMPXSTRXSRC, pSrc, Src, 2); 1213 IEM_MC_ARG_CONST(uint8_t, bImmArg, /*=*/ bImm, 3); 1214 IEM_MC_MAYBE_RAISE_SSE42_RELATED_XCPT(); 1215 IEM_MC_PREPARE_SSE_USAGE(); 1216 IEM_MC_REF_GREG_U32(pu32Ecx, X86_GREG_xCX); 1217 IEM_MC_FETCH_XREG_U128(Src.uSrc1, IEM_GET_MODRM_REG(pVCpu, bRm)); 1218 IEM_MC_FETCH_XREG_U128(Src.uSrc2, IEM_GET_MODRM_RM(pVCpu, bRm)); 1219 IEM_MC_REF_EFLAGS(pEFlags); 1220 IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fSse42, 1221 iemAImpl_pcmpestri_u128, 1222 iemAImpl_pcmpestri_u128_fallback), 1223 pu32Ecx, pEFlags, pSrc, bImmArg); 1224 /** @todo testcase: High dword of RCX cleared? */ 1225 IEM_MC_ADVANCE_RIP_AND_FINISH(); 1226 IEM_MC_END(); 1227 } 1228 else 1229 { 1230 /* 1231 * Register, memory. 1232 */ 1233 IEM_MC_BEGIN(4, 3); 1234 IEM_MC_ARG(uint32_t *, pu32Ecx, 0); 1235 IEM_MC_ARG(uint32_t *, pEFlags, 1); 1236 IEM_MC_LOCAL(IEMPCMPXSTRXSRC, Src); 1237 IEM_MC_ARG_LOCAL_REF(PIEMPCMPXSTRXSRC, pSrc, Src, 2); 1238 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 1239 1240 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 1); 1241 uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm); 1242 IEM_MC_ARG_CONST(uint8_t, bImmArg, /*=*/ bImm, 3); 1243 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 1244 IEM_MC_MAYBE_RAISE_SSE42_RELATED_XCPT(); 1245 IEM_MC_FETCH_MEM_U128(Src.uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 1246 1247 IEM_MC_PREPARE_SSE_USAGE(); 1248 IEM_MC_REF_GREG_U32(pu32Ecx, X86_GREG_xCX); 1249 IEM_MC_FETCH_XREG_U128(Src.uSrc1, IEM_GET_MODRM_REG(pVCpu, bRm)); 1250 IEM_MC_REF_EFLAGS(pEFlags); 1251 IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fSse42, 1252 iemAImpl_pcmpestri_u128, 1253 iemAImpl_pcmpestri_u128_fallback), 1254 pu32Ecx, pEFlags, pSrc, bImmArg); 1255 /** @todo testcase: High dword of RCX cleared? */ 1256 IEM_MC_ADVANCE_RIP_AND_FINISH(); 1257 IEM_MC_END(); 1258 } 1259 } 1260 1261 1262 /** Opcode 0x66 0x0f 0x62. */ 1263 FNIEMOP_DEF(iemOp_pcmpistrm_Vdq_Wdq_Ib) 1264 { 1265 IEMOP_MNEMONIC3(RMI, PCMPISTRM, pcmpistrm, Vdq, Wdq, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, 0); 1266 1267 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1268 if (IEM_IS_MODRM_REG_MODE(bRm)) 1269 { 1270 /* 1271 * Register, register. 1272 */ 1273 uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm); 1274 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 1275 IEM_MC_BEGIN(4, 1); 1276 IEM_MC_ARG(PRTUINT128U, puDst, 0); 1277 IEM_MC_ARG(uint32_t *, pEFlags, 1); 1278 IEM_MC_LOCAL(IEMPCMPXSTRXSRC, Src); 1279 IEM_MC_ARG_LOCAL_REF(PIEMPCMPXSTRXSRC, pSrc, Src, 2); 1280 IEM_MC_ARG_CONST(uint8_t, bImmArg, /*=*/ bImm, 3); 1281 IEM_MC_MAYBE_RAISE_SSE42_RELATED_XCPT(); 1282 IEM_MC_PREPARE_SSE_USAGE(); 1283 IEM_MC_FETCH_XREG_U128(Src.uSrc1, IEM_GET_MODRM_REG(pVCpu, bRm)); 1284 IEM_MC_FETCH_XREG_U128(Src.uSrc2, IEM_GET_MODRM_RM(pVCpu, bRm)); 1285 IEM_MC_REF_XREG_U128(puDst, 0 /*xmm0*/); 1286 IEM_MC_REF_EFLAGS(pEFlags); 1287 IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fSse42, 1288 iemAImpl_pcmpistrm_u128, 1289 iemAImpl_pcmpistrm_u128_fallback), 1290 puDst, pEFlags, pSrc, bImmArg); 1291 IEM_MC_ADVANCE_RIP_AND_FINISH(); 1292 IEM_MC_END(); 1293 } 1294 else 1295 { 1296 /* 1297 * Register, memory. 1298 */ 1299 IEM_MC_BEGIN(4, 3); 1300 IEM_MC_ARG(uint32_t *, pu32Ecx, 0); 1301 IEM_MC_ARG(uint32_t *, pEFlags, 1); 1302 IEM_MC_LOCAL(IEMPCMPXSTRXSRC, Src); 1303 IEM_MC_ARG_LOCAL_REF(PIEMPCMPXSTRXSRC, pSrc, Src, 2); 1304 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 1305 1306 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 1); 1307 uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm); 1308 IEM_MC_ARG_CONST(uint8_t, bImmArg, /*=*/ bImm, 3); 1309 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 1310 IEM_MC_MAYBE_RAISE_SSE42_RELATED_XCPT(); 1311 IEM_MC_FETCH_MEM_U128(Src.uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 1312 1313 IEM_MC_PREPARE_SSE_USAGE(); 1314 IEM_MC_REF_GREG_U32(pu32Ecx, X86_GREG_xCX); 1315 IEM_MC_FETCH_XREG_U128(Src.uSrc1, IEM_GET_MODRM_REG(pVCpu, bRm)); 1316 IEM_MC_REF_EFLAGS(pEFlags); 1317 IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fSse42, 1318 iemAImpl_pcmpistri_u128, 1319 iemAImpl_pcmpistri_u128_fallback), 1320 pu32Ecx, pEFlags, pSrc, bImmArg); 1321 IEM_MC_ADVANCE_RIP_AND_FINISH(); 1322 IEM_MC_END(); 1323 } 1324 } 1325 1326 1327 /** Opcode 0x66 0x0f 0x63*/ 1328 FNIEMOP_DEF(iemOp_pcmpistri_Vdq_Wdq_Ib) 1329 { 1330 IEMOP_MNEMONIC3(RMI, PCMPISTRI, pcmpistri, Vdq, Wdq, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, 0); 1331 1332 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1333 if (IEM_IS_MODRM_REG_MODE(bRm)) 1334 { 1335 /* 1336 * Register, register. 1337 */ 1338 uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm); 1339 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 1340 IEM_MC_BEGIN(4, 1); 1341 IEM_MC_ARG(uint32_t *, pu32Ecx, 0); 1342 IEM_MC_ARG(uint32_t *, pEFlags, 1); 1343 IEM_MC_LOCAL(IEMPCMPXSTRXSRC, Src); 1344 IEM_MC_ARG_LOCAL_REF(PIEMPCMPXSTRXSRC, pSrc, Src, 2); 1154 1345 IEM_MC_ARG_CONST(uint8_t, bImmArg, /*=*/ bImm, 3); 1155 1346 IEM_MC_MAYBE_RAISE_SSE42_RELATED_XCPT(); … … 1175 1366 IEM_MC_ARG(uint32_t *, pu32Ecx, 0); 1176 1367 IEM_MC_ARG(uint32_t *, pEFlags, 1); 1177 IEM_MC_LOCAL(IEMPCMP ISTRISRC, Src);1178 IEM_MC_ARG_LOCAL_REF(PIEMPCMP ISTRISRC, pSrc, Src, 2);1368 IEM_MC_LOCAL(IEMPCMPXSTRXSRC, Src); 1369 IEM_MC_ARG_LOCAL_REF(PIEMPCMPXSTRXSRC, pSrc, Src, 2); 1179 1370 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 1180 1371 -
trunk/src/VBox/VMM/include/IEMInternal.h
r98703 r98723 2387 2387 IEM_DECL_IMPL_DEF(void, iemAImpl_sha256rnds2_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc, PCRTUINT128U puXmm0Constants)); 2388 2388 2389 typedef struct IEMPCMP ISTRISRC2389 typedef struct IEMPCMPXSTRXSRC 2390 2390 { 2391 2391 RTUINT128U uSrc1; 2392 2392 RTUINT128U uSrc2; 2393 } IEMPCMPISTRISRC; 2394 typedef IEMPCMPISTRISRC *PIEMPCMPISTRISRC; 2395 typedef const IEMPCMPISTRISRC *PCIEMPCMPISTRISRC; 2396 2397 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpistri_u128,(uint32_t *pu32Ecx, uint32_t *pEFlags, PCIEMPCMPISTRISRC pSrc, uint8_t bEvil)); 2398 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpistri_u128_fallback,(uint32_t *pu32Ecx, uint32_t *pEFlags, PCIEMPCMPISTRISRC pSrc, uint8_t bEvil)); 2393 } IEMPCMPXSTRXSRC; 2394 typedef IEMPCMPXSTRXSRC *PIEMPCMPXSTRXSRC; 2395 typedef const IEMPCMPXSTRXSRC *PCIEMPCMPXSTRXSRC; 2396 2397 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpistri_u128,(uint32_t *pu32Ecx, uint32_t *pEFlags, PCIEMPCMPXSTRXSRC pSrc, uint8_t bEvil)); 2398 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpistri_u128_fallback,(uint32_t *pu32Ecx, uint32_t *pEFlags, PCIEMPCMPXSTRXSRC pSrc, uint8_t bEvil)); 2399 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpestri_u128,(uint32_t *pu32Ecx, uint32_t *pEFlags, PCIEMPCMPXSTRXSRC pSrc, uint8_t bEvil)); 2400 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpestri_u128_fallback,(uint32_t *pu32Ecx, uint32_t *pEFlags, PCIEMPCMPXSTRXSRC pSrc, uint8_t bEvil)); 2401 2402 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpistrm_u128,(PRTUINT128U puDst, uint32_t *pEFlags, PCIEMPCMPXSTRXSRC pSrc, uint8_t bEvil)); 2403 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpistrm_u128_fallback,(PRTUINT128U puDst, uint32_t *pEFlags, PCIEMPCMPXSTRXSRC pSrc, uint8_t bEvil)); 2404 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpestrm_u128,(PRTUINT128U puDst, uint32_t *pEFlags, PCIEMPCMPXSTRXSRC pSrc, uint8_t bEvil)); 2405 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpestrm_u128_fallback,(PRTUINT128U puDst, uint32_t *pEFlags, PCIEMPCMPXSTRXSRC pSrc, uint8_t bEvil)); 2399 2406 2400 2407 FNIEMAIMPLMEDIAOPTF2U128IMM8 iemAImpl_pclmulqdq_u128, iemAImpl_pclmulqdq_u128_fallback;
Note:
See TracChangeset
for help on using the changeset viewer.