Changeset 100567 in vbox for trunk/src/VBox/VMM/include
- Timestamp:
- Jul 13, 2023 7:19:33 PM (19 months ago)
- Location:
- trunk/src/VBox/VMM/include
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/include/IEMMc.h
r100326 r100567 516 516 (a_u256Dst).au64[3] = pVCpu->cpum.GstCtx.XState.u.YmmHi.aYmmHi[iYRegSrcTmp].au64[1]; \ 517 517 } while (0) 518 #define IEM_MC_STORE_YREG_U64(a_iYRegDst, a_iQword, a_u64Value) \ 519 do { pVCpu->cpum.GstCtx.XState.x87.aXMM[(a_iYRegDst)].au64[(a_iQword)] = (a_u64Value); } while (0) 520 #define IEM_MC_STORE_YREG_U32(a_iYRegDst, a_iDword, a_u32Value) \ 521 do { pVCpu->cpum.GstCtx.XState.x87.aXMM[(a_iYRegDst)].au32[(a_iDword)] = (a_u32Value); } while (0) 522 #define IEM_MC_STORE_YREGHI_U64(a_iYRegDst, a_iQword, a_u64Value) \ 523 do { pVCpu->cpum.GstCtx.XState.u.YmmHi.aYmmHi[(a_iYRegDst)].au64[(a_iQword)] = (a_u64Value); } while (0) 524 #define IEM_MC_STORE_YREGHI_U32(a_iYRegDst, a_iDword, a_u32Value) \ 525 do { pVCpu->cpum.GstCtx.XState.u.YmmHi.aYmmHi[(a_iYRegDst)].au32[(a_iDword)] = (a_u32Value); } while (0) 518 526 519 527 #define IEM_MC_INT_CLEAR_ZMM_256_UP(a_iXRegDst) do { /* For AVX512 and AVX1024 support. */ } while (0) … … 549 557 pVCpu->cpum.GstCtx.XState.u.YmmHi.aYmmHi[iYRegDstTmp].au64[0] = (a_u256Src).au64[2]; \ 550 558 pVCpu->cpum.GstCtx.XState.u.YmmHi.aYmmHi[iYRegDstTmp].au64[1] = (a_u256Src).au64[3]; \ 559 IEM_MC_INT_CLEAR_ZMM_256_UP(iYRegDstTmp); \ 560 } while (0) 561 562 #define IEM_MC_STORE_YREG_BROADCAST_U128_ZX_VLMAX(a_iYRegDst, a_u128Src) \ 563 do { uintptr_t const iYRegDstTmp = (a_iYRegDst); \ 564 pVCpu->cpum.GstCtx.XState.x87.aXMM[iYRegDstTmp].au64[0] = (a_u128Src).au64[0]; \ 565 pVCpu->cpum.GstCtx.XState.x87.aXMM[iYRegDstTmp].au64[1] = (a_u128Src).au64[1]; \ 566 pVCpu->cpum.GstCtx.XState.u.YmmHi.aYmmHi[iYRegDstTmp].au64[0] = (a_u128Src).au64[0]; \ 567 pVCpu->cpum.GstCtx.XState.u.YmmHi.aYmmHi[iYRegDstTmp].au64[1] = (a_u128Src).au64[1]; \ 551 568 IEM_MC_INT_CLEAR_ZMM_256_UP(iYRegDstTmp); \ 552 569 } while (0) -
trunk/src/VBox/VMM/include/IEMOpHlp.h
r100072 r100567 529 529 } while (0) 530 530 531 /** 532 * Done decoding VEX, no V, L=1. 533 * Raises \#UD exception if rex, rep, opsize or lock prefixes are present, if 534 * we're in real or v8086 mode, if VEX.V!=0xf, if VEX.L!=1, or if the a_fFeature 535 * is not present in the guest CPU. 536 */ 537 #define IEMOP_HLP_DONE_VEX_DECODING_L1_AND_NO_VVVV_EX(a_fFeature) \ 538 do \ 539 { \ 540 if (RT_LIKELY( !( pVCpu->iem.s.fPrefixes \ 541 & (IEM_OP_PRF_LOCK | IEM_OP_PRF_SIZE_OP | IEM_OP_PRF_REPZ | IEM_OP_PRF_REPNZ | IEM_OP_PRF_REX)) \ 542 && pVCpu->iem.s.uVexLength == 1 \ 543 && pVCpu->iem.s.uVex3rdReg == 0 \ 544 && !IEM_IS_REAL_OR_V86_MODE(pVCpu) \ 545 && IEM_GET_GUEST_CPU_FEATURES(pVCpu)->a_fFeature )) \ 546 { /* likely */ } \ 547 else \ 548 IEMOP_RAISE_INVALID_OPCODE_RET(); \ 549 } while (0) 550 531 551 #define IEMOP_HLP_DECODED_NL_1(a_uDisOpNo, a_fIemOpFlags, a_uDisParam0, a_fDisOpType) \ 532 552 do \
Note:
See TracChangeset
for help on using the changeset viewer.