- Timestamp:
- Jul 3, 2013 8:46:10 PM (12 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAll.cpp
r46951 r46953 6748 6748 6749 6749 /** Calculate efficient address from R/M. */ 6750 #define IEM_MC_CALC_RM_EFF_ADDR(a_GCPtrEff, bRm ) \6751 IEM_MC_RETURN_ON_FAILURE(iemOpHlpCalcRmEffAddr(pIemCpu, (bRm), &(a_GCPtrEff)))6750 #define IEM_MC_CALC_RM_EFF_ADDR(a_GCPtrEff, bRm, cbImm) \ 6751 IEM_MC_RETURN_ON_FAILURE(iemOpHlpCalcRmEffAddr(pIemCpu, (bRm), (cbImm), &(a_GCPtrEff))) 6752 6752 6753 6753 #define IEM_MC_CALL_VOID_AIMPL_1(a_pfn, a0) (a_pfn)((a0)) … … 7166 7166 * @param pIemCpu The IEM per CPU data. 7167 7167 * @param bRm The ModRM byte. 7168 * @param cbImm The size of any immediate following the 7169 * effective address opcode bytes. Important for 7170 * RIP relative addressing. 7168 7171 * @param pGCPtrEff Where to return the effective address. 7169 7172 */ 7170 static VBOXSTRICTRC iemOpHlpCalcRmEffAddr(PIEMCPU pIemCpu, uint8_t bRm, PRTGCPTR pGCPtrEff)7173 static VBOXSTRICTRC iemOpHlpCalcRmEffAddr(PIEMCPU pIemCpu, uint8_t bRm, uint8_t cbImm, PRTGCPTR pGCPtrEff) 7171 7174 { 7172 7175 Log5(("iemOpHlpCalcRmEffAddr: bRm=%#x\n", bRm)); … … 7328 7331 { 7329 7332 IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64EffAddr); 7330 u64EffAddr += pCtx->rip + pIemCpu->offOpcode ;7333 u64EffAddr += pCtx->rip + pIemCpu->offOpcode + cbImm; 7331 7334 } 7332 7335 else -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructions.cpp.h
r46951 r46953 67 67 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 68 68 69 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );69 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 70 70 IEM_MC_MEM_MAP(pu8Dst, fAccess, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 71 71 IEM_MC_FETCH_GREG_U8(u8Src, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); … … 167 167 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 168 168 169 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );169 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 170 170 IEM_MC_MEM_MAP(pu16Dst, fAccess, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 171 171 IEM_MC_FETCH_GREG_U16(u16Src, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); … … 189 189 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 190 190 191 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );191 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 192 192 IEM_MC_MEM_MAP(pu32Dst, fAccess, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 193 193 IEM_MC_FETCH_GREG_U32(u32Src, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); … … 211 211 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 212 212 213 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );213 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 214 214 IEM_MC_MEM_MAP(pu64Dst, fAccess, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 215 215 IEM_MC_FETCH_GREG_U64(u64Src, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); … … 271 271 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 272 272 273 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );273 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 274 274 IEM_MC_FETCH_MEM_U8(u8Src, pIemCpu->iEffSeg, GCPtrEffDst); 275 275 IEM_MC_REF_GREG_U8(pu8Dst, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); … … 362 362 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 363 363 364 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );364 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 365 365 IEM_MC_FETCH_MEM_U16(u16Src, pIemCpu->iEffSeg, GCPtrEffDst); 366 366 IEM_MC_REF_GREG_U16(pu16Dst, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); … … 379 379 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 380 380 381 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );381 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 382 382 IEM_MC_FETCH_MEM_U32(u32Src, pIemCpu->iEffSeg, GCPtrEffDst); 383 383 IEM_MC_REF_GREG_U32(pu32Dst, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); … … 396 396 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 397 397 398 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );398 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 399 399 IEM_MC_FETCH_MEM_U64(u64Src, pIemCpu->iEffSeg, GCPtrEffDst); 400 400 IEM_MC_REF_GREG_U64(pu64Dst, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); … … 577 577 IEM_MC_LOCAL(uint16_t, u16Ldtr); 578 578 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 579 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );579 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 580 580 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 581 581 IEM_MC_FETCH_LDTR_U16(u16Ldtr); … … 634 634 IEM_MC_LOCAL(uint16_t, u16Tr); 635 635 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 636 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );636 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 637 637 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 638 638 IEM_MC_FETCH_TR_U16(u16Tr); … … 666 666 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 667 667 IEM_MC_RAISE_GP0_IF_CPL_NOT_ZERO(); 668 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );668 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 669 669 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 670 670 IEM_MC_FETCH_MEM_U16(u16Sel, pIemCpu->iEffSeg, GCPtrEffSrc); … … 697 697 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 698 698 IEM_MC_RAISE_GP0_IF_CPL_NOT_ZERO(); 699 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );699 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 700 700 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 701 701 IEM_MC_FETCH_MEM_U16(u16Sel, pIemCpu->iEffSeg, GCPtrEffSrc); … … 744 744 IEM_MC_ARG(RTGCPTR, GCPtrEffSrc, 1); 745 745 IEM_MC_ARG_CONST(IEMMODE, enmEffOpSizeArg,/*=*/pIemCpu->enmEffOpSize, 2); 746 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );746 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 747 747 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 748 748 IEM_MC_CALL_CIMPL_3(iemCImpl_sgdt, iEffSeg, GCPtrEffSrc, enmEffOpSizeArg); … … 793 793 IEM_MC_ARG(RTGCPTR, GCPtrEffSrc, 1); 794 794 IEM_MC_ARG_CONST(IEMMODE, enmEffOpSizeArg,/*=*/pIemCpu->enmEffOpSize, 2); 795 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );795 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 796 796 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 797 797 IEM_MC_CALL_CIMPL_3(iemCImpl_sidt, iEffSeg, GCPtrEffSrc, enmEffOpSizeArg); … … 829 829 IEM_MC_ARG(RTGCPTR, GCPtrEffSrc, 1); 830 830 IEM_MC_ARG_CONST(IEMMODE, enmEffOpSizeArg,/*=*/pIemCpu->enmEffOpSize, 2); 831 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );831 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 832 832 IEM_MC_CALL_CIMPL_3(iemCImpl_lgdt, iEffSeg, GCPtrEffSrc, enmEffOpSizeArg); 833 833 IEM_MC_END(); … … 864 864 IEM_MC_ARG(RTGCPTR, GCPtrEffSrc, 1); 865 865 IEM_MC_ARG_CONST(IEMMODE, enmEffOpSizeArg,/*=*/enmEffOpSize, 2); 866 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );866 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 867 867 IEM_MC_CALL_CIMPL_3(iemCImpl_lidt, iEffSeg, GCPtrEffSrc, enmEffOpSizeArg); 868 868 IEM_MC_END(); … … 939 939 IEM_MC_LOCAL(uint16_t, u16Tmp); 940 940 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 941 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );941 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 942 942 IEM_MC_FETCH_CR0_U16(u16Tmp); 943 943 IEM_MC_STORE_MEM_U16(pIemCpu->iEffSeg, GCPtrEffDst, u16Tmp); … … 968 968 IEM_MC_ARG(uint16_t, u16Tmp, 0); 969 969 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 970 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );970 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 971 971 IEM_MC_FETCH_MEM_U16(u16Tmp, pIemCpu->iEffSeg, GCPtrEffDst); 972 972 IEM_MC_CALL_CIMPL_1(iemCImpl_lmsw, u16Tmp); … … 983 983 IEM_MC_BEGIN(1, 1); 984 984 IEM_MC_ARG(RTGCPTR, GCPtrEffDst, 0); 985 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );985 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 986 986 IEM_MC_CALL_CIMPL_1(iemCImpl_invlpg, GCPtrEffDst); 987 987 IEM_MC_END(); … … 1159 1159 IEM_MC_BEGIN(0, 1); 1160 1160 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 1161 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );1161 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 1162 1162 /* Currently a NOP. */ 1163 1163 IEM_MC_ADVANCE_RIP(); … … 1327 1327 IEM_MC_BEGIN(0, 1); 1328 1328 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 1329 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );1329 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 1330 1330 /* Currently a NOP. */ 1331 1331 IEM_MC_ADVANCE_RIP(); … … 1353 1353 IEM_MC_BEGIN(0, 1); 1354 1354 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 1355 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );1355 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 1356 1356 /* Currently a NOP. */ 1357 1357 IEM_MC_ADVANCE_RIP(); … … 1592 1592 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); \ 1593 1593 IEM_MC_LOCAL(uint16_t, u16Tmp); \ 1594 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm ); \1594 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); \ 1595 1595 IEM_MC_FETCH_MEM_U16(u16Tmp, pIemCpu->iEffSeg, GCPtrEffSrc); \ 1596 1596 a_Cnd { \ … … 1605 1605 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); \ 1606 1606 IEM_MC_LOCAL(uint32_t, u32Tmp); \ 1607 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm ); \1607 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); \ 1608 1608 IEM_MC_FETCH_MEM_U32(u32Tmp, pIemCpu->iEffSeg, GCPtrEffSrc); \ 1609 1609 a_Cnd { \ … … 1620 1620 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); \ 1621 1621 IEM_MC_LOCAL(uint64_t, u64Tmp); \ 1622 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm ); \1622 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); \ 1623 1623 IEM_MC_FETCH_MEM_U64(u64Tmp, pIemCpu->iEffSeg, GCPtrEffSrc); \ 1624 1624 a_Cnd { \ … … 2610 2610 IEM_MC_BEGIN(0, 1); 2611 2611 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 2612 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );2612 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 2613 2613 IEM_MC_IF_EFL_BIT_SET(X86_EFL_OF) { 2614 2614 IEM_MC_STORE_MEM_U8_CONST(pIemCpu->iEffSeg, GCPtrEffDst, 1); … … 2650 2650 IEM_MC_BEGIN(0, 1); 2651 2651 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 2652 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );2652 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 2653 2653 IEM_MC_IF_EFL_BIT_SET(X86_EFL_OF) { 2654 2654 IEM_MC_STORE_MEM_U8_CONST(pIemCpu->iEffSeg, GCPtrEffDst, 0); … … 2690 2690 IEM_MC_BEGIN(0, 1); 2691 2691 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 2692 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );2692 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 2693 2693 IEM_MC_IF_EFL_BIT_SET(X86_EFL_CF) { 2694 2694 IEM_MC_STORE_MEM_U8_CONST(pIemCpu->iEffSeg, GCPtrEffDst, 1); … … 2730 2730 IEM_MC_BEGIN(0, 1); 2731 2731 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 2732 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );2732 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 2733 2733 IEM_MC_IF_EFL_BIT_SET(X86_EFL_CF) { 2734 2734 IEM_MC_STORE_MEM_U8_CONST(pIemCpu->iEffSeg, GCPtrEffDst, 0); … … 2770 2770 IEM_MC_BEGIN(0, 1); 2771 2771 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 2772 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );2772 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 2773 2773 IEM_MC_IF_EFL_BIT_SET(X86_EFL_ZF) { 2774 2774 IEM_MC_STORE_MEM_U8_CONST(pIemCpu->iEffSeg, GCPtrEffDst, 1); … … 2810 2810 IEM_MC_BEGIN(0, 1); 2811 2811 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 2812 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );2812 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 2813 2813 IEM_MC_IF_EFL_BIT_SET(X86_EFL_ZF) { 2814 2814 IEM_MC_STORE_MEM_U8_CONST(pIemCpu->iEffSeg, GCPtrEffDst, 0); … … 2850 2850 IEM_MC_BEGIN(0, 1); 2851 2851 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 2852 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );2852 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 2853 2853 IEM_MC_IF_EFL_ANY_BITS_SET(X86_EFL_CF | X86_EFL_ZF) { 2854 2854 IEM_MC_STORE_MEM_U8_CONST(pIemCpu->iEffSeg, GCPtrEffDst, 1); … … 2890 2890 IEM_MC_BEGIN(0, 1); 2891 2891 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 2892 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );2892 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 2893 2893 IEM_MC_IF_EFL_ANY_BITS_SET(X86_EFL_CF | X86_EFL_ZF) { 2894 2894 IEM_MC_STORE_MEM_U8_CONST(pIemCpu->iEffSeg, GCPtrEffDst, 0); … … 2930 2930 IEM_MC_BEGIN(0, 1); 2931 2931 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 2932 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );2932 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 2933 2933 IEM_MC_IF_EFL_BIT_SET(X86_EFL_SF) { 2934 2934 IEM_MC_STORE_MEM_U8_CONST(pIemCpu->iEffSeg, GCPtrEffDst, 1); … … 2970 2970 IEM_MC_BEGIN(0, 1); 2971 2971 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 2972 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );2972 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 2973 2973 IEM_MC_IF_EFL_BIT_SET(X86_EFL_SF) { 2974 2974 IEM_MC_STORE_MEM_U8_CONST(pIemCpu->iEffSeg, GCPtrEffDst, 0); … … 3010 3010 IEM_MC_BEGIN(0, 1); 3011 3011 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 3012 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );3012 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 3013 3013 IEM_MC_IF_EFL_BIT_SET(X86_EFL_PF) { 3014 3014 IEM_MC_STORE_MEM_U8_CONST(pIemCpu->iEffSeg, GCPtrEffDst, 1); … … 3050 3050 IEM_MC_BEGIN(0, 1); 3051 3051 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 3052 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );3052 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 3053 3053 IEM_MC_IF_EFL_BIT_SET(X86_EFL_PF) { 3054 3054 IEM_MC_STORE_MEM_U8_CONST(pIemCpu->iEffSeg, GCPtrEffDst, 0); … … 3090 3090 IEM_MC_BEGIN(0, 1); 3091 3091 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 3092 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );3092 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 3093 3093 IEM_MC_IF_EFL_BITS_NE(X86_EFL_SF, X86_EFL_OF) { 3094 3094 IEM_MC_STORE_MEM_U8_CONST(pIemCpu->iEffSeg, GCPtrEffDst, 1); … … 3130 3130 IEM_MC_BEGIN(0, 1); 3131 3131 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 3132 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );3132 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 3133 3133 IEM_MC_IF_EFL_BITS_NE(X86_EFL_SF, X86_EFL_OF) { 3134 3134 IEM_MC_STORE_MEM_U8_CONST(pIemCpu->iEffSeg, GCPtrEffDst, 0); … … 3170 3170 IEM_MC_BEGIN(0, 1); 3171 3171 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 3172 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );3172 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 3173 3173 IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE(X86_EFL_ZF, X86_EFL_SF, X86_EFL_OF) { 3174 3174 IEM_MC_STORE_MEM_U8_CONST(pIemCpu->iEffSeg, GCPtrEffDst, 1); … … 3210 3210 IEM_MC_BEGIN(0, 1); 3211 3211 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 3212 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );3212 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 3213 3213 IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE(X86_EFL_ZF, X86_EFL_SF, X86_EFL_OF) { 3214 3214 IEM_MC_STORE_MEM_U8_CONST(pIemCpu->iEffSeg, GCPtrEffDst, 0); … … 3384 3384 IEM_MC_LOCAL(int16_t, i16AddrAdj); 3385 3385 3386 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );3386 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 3387 3387 IEM_MC_FETCH_GREG_U16(u16Src, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); 3388 3388 IEM_MC_ASSIGN(i16AddrAdj, u16Src); … … 3413 3413 IEM_MC_LOCAL(int32_t, i32AddrAdj); 3414 3414 3415 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );3415 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 3416 3416 IEM_MC_FETCH_GREG_U32(u32Src, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); 3417 3417 IEM_MC_ASSIGN(i32AddrAdj, u32Src); … … 3442 3442 IEM_MC_LOCAL(int64_t, i64AddrAdj); 3443 3443 3444 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );3444 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 3445 3445 IEM_MC_FETCH_GREG_U64(u64Src, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); 3446 3446 IEM_MC_ASSIGN(i64AddrAdj, u64Src); … … 3558 3558 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 3559 3559 3560 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );3560 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); 3561 3561 uint8_t cShift; IEM_OPCODE_GET_NEXT_U8(&cShift); 3562 3562 IEM_MC_ASSIGN(cShiftArg, cShift); … … 3580 3580 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 3581 3581 3582 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );3582 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); 3583 3583 uint8_t cShift; IEM_OPCODE_GET_NEXT_U8(&cShift); 3584 3584 IEM_MC_ASSIGN(cShiftArg, cShift); … … 3602 3602 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 3603 3603 3604 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );3604 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); 3605 3605 uint8_t cShift; IEM_OPCODE_GET_NEXT_U8(&cShift); 3606 3606 IEM_MC_ASSIGN(cShiftArg, cShift); … … 3705 3705 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 3706 3706 3707 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );3707 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 3708 3708 IEM_MC_FETCH_GREG_U16(u16Src, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); 3709 3709 IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX); … … 3726 3726 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 3727 3727 3728 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );3728 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 3729 3729 IEM_MC_FETCH_GREG_U32(u32Src, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); 3730 3730 IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX); … … 3747 3747 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 3748 3748 3749 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );3749 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 3750 3750 IEM_MC_FETCH_GREG_U64(u64Src, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); 3751 3751 IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX); … … 3841 3841 IEM_MC_ARG(RTGCPTR, GCPtrEff, 1); 3842 3842 IEM_MC_ARG_CONST(IEMMODE, enmEffOpSize,/*=*/pIemCpu->enmEffOpSize, 2); 3843 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEff, bRm );3843 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEff, bRm, 0); 3844 3844 IEM_MC_CALL_CIMPL_3(iemCImpl_fxsave, iEffSeg, GCPtrEff, enmEffOpSize); 3845 3845 IEM_MC_END(); … … 3860 3860 IEM_MC_ARG(RTGCPTR, GCPtrEff, 1); 3861 3861 IEM_MC_ARG_CONST(IEMMODE, enmEffOpSize,/*=*/pIemCpu->enmEffOpSize, 2); 3862 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEff, bRm );3862 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEff, bRm, 0); 3863 3863 IEM_MC_CALL_CIMPL_3(iemCImpl_fxrstor, iEffSeg, GCPtrEff, enmEffOpSize); 3864 3864 IEM_MC_END(); … … 4013 4013 IEM_MC_LOCAL(uint8_t, u8Al); 4014 4014 4015 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );4015 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 4016 4016 IEMOP_HLP_DONE_DECODING(); 4017 4017 IEM_MC_MEM_MAP(pu8Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0); … … 4135 4135 IEM_MC_LOCAL(uint16_t, u16Ax); 4136 4136 4137 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );4137 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 4138 4138 IEMOP_HLP_DONE_DECODING(); 4139 4139 IEM_MC_MEM_MAP(pu16Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0); … … 4163 4163 IEM_MC_LOCAL(uint32_t, u32Eax); 4164 4164 4165 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );4165 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 4166 4166 IEMOP_HLP_DONE_DECODING(); 4167 4167 IEM_MC_MEM_MAP(pu32Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0); … … 4195 4195 IEM_MC_LOCAL(uint64_t, u64Rax); 4196 4196 4197 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );4197 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 4198 4198 IEMOP_HLP_DONE_DECODING(); 4199 4199 IEM_MC_MEM_MAP(pu64Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0); … … 4248 4248 IEM_MC_ARG_CONST(IEMMODE, enmEffOpSize,/*=*/pIemCpu->enmEffOpSize, 4); 4249 4249 IEM_MC_LOCAL(RTGCPTR, GCPtrEff); 4250 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEff, bRm );4250 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEff, bRm, 0); 4251 4251 IEM_MC_FETCH_MEM_U16(offSeg, pIemCpu->iEffSeg, GCPtrEff); 4252 4252 IEM_MC_FETCH_MEM_U16_DISP(uSel, pIemCpu->iEffSeg, GCPtrEff, 2); … … 4263 4263 IEM_MC_ARG_CONST(IEMMODE, enmEffOpSize,/*=*/pIemCpu->enmEffOpSize, 4); 4264 4264 IEM_MC_LOCAL(RTGCPTR, GCPtrEff); 4265 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEff, bRm );4265 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEff, bRm, 0); 4266 4266 IEM_MC_FETCH_MEM_U32(offSeg, pIemCpu->iEffSeg, GCPtrEff); 4267 4267 IEM_MC_FETCH_MEM_U16_DISP(uSel, pIemCpu->iEffSeg, GCPtrEff, 4); … … 4278 4278 IEM_MC_ARG_CONST(IEMMODE, enmEffOpSize,/*=*/pIemCpu->enmEffOpSize, 4); 4279 4279 IEM_MC_LOCAL(RTGCPTR, GCPtrEff); 4280 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEff, bRm );4280 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEff, bRm, 0); 4281 4281 IEM_MC_FETCH_MEM_U64(offSeg, pIemCpu->iEffSeg, GCPtrEff); 4282 4282 IEM_MC_FETCH_MEM_U16_DISP(uSel, pIemCpu->iEffSeg, GCPtrEff, 8); … … 4378 4378 IEM_MC_LOCAL(uint16_t, u16Value); 4379 4379 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 4380 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );4380 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 4381 4381 IEM_MC_FETCH_MEM_U8_ZX_U16(u16Value, pIemCpu->iEffSeg, GCPtrEffDst); 4382 4382 IEM_MC_STORE_GREG_U16(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, u16Value); … … 4389 4389 IEM_MC_LOCAL(uint32_t, u32Value); 4390 4390 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 4391 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );4391 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 4392 4392 IEM_MC_FETCH_MEM_U8_ZX_U32(u32Value, pIemCpu->iEffSeg, GCPtrEffDst); 4393 4393 IEM_MC_STORE_GREG_U32(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, u32Value); … … 4400 4400 IEM_MC_LOCAL(uint64_t, u64Value); 4401 4401 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 4402 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );4402 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 4403 4403 IEM_MC_FETCH_MEM_U8_ZX_U64(u64Value, pIemCpu->iEffSeg, GCPtrEffDst); 4404 4404 IEM_MC_STORE_GREG_U64(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, u64Value); … … 4458 4458 IEM_MC_LOCAL(uint32_t, u32Value); 4459 4459 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 4460 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );4460 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 4461 4461 IEM_MC_FETCH_MEM_U16_ZX_U32(u32Value, pIemCpu->iEffSeg, GCPtrEffDst); 4462 4462 IEM_MC_STORE_GREG_U32(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, u32Value); … … 4469 4469 IEM_MC_LOCAL(uint64_t, u64Value); 4470 4470 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 4471 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );4471 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 4472 4472 IEM_MC_FETCH_MEM_U16_ZX_U64(u64Value, pIemCpu->iEffSeg, GCPtrEffDst); 4473 4473 IEM_MC_STORE_GREG_U64(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, u64Value); … … 4585 4585 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 4586 4586 4587 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );4587 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); 4588 4588 uint8_t u8Bit; IEM_OPCODE_GET_NEXT_U8(&u8Bit); 4589 4589 IEM_MC_ASSIGN(u16Src, u8Bit & 0x0f); … … 4608 4608 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 4609 4609 4610 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );4610 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); 4611 4611 uint8_t u8Bit; IEM_OPCODE_GET_NEXT_U8(&u8Bit); 4612 4612 IEM_MC_ASSIGN(u32Src, u8Bit & 0x1f); … … 4631 4631 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 4632 4632 4633 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );4633 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); 4634 4634 uint8_t u8Bit; IEM_OPCODE_GET_NEXT_U8(&u8Bit); 4635 4635 IEM_MC_ASSIGN(u64Src, u8Bit & 0x3f); … … 4736 4736 IEM_MC_LOCAL(uint16_t, u16Value); 4737 4737 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 4738 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );4738 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 4739 4739 IEM_MC_FETCH_MEM_U8_SX_U16(u16Value, pIemCpu->iEffSeg, GCPtrEffDst); 4740 4740 IEM_MC_STORE_GREG_U16(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, u16Value); … … 4747 4747 IEM_MC_LOCAL(uint32_t, u32Value); 4748 4748 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 4749 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );4749 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 4750 4750 IEM_MC_FETCH_MEM_U8_SX_U32(u32Value, pIemCpu->iEffSeg, GCPtrEffDst); 4751 4751 IEM_MC_STORE_GREG_U32(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, u32Value); … … 4758 4758 IEM_MC_LOCAL(uint64_t, u64Value); 4759 4759 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 4760 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );4760 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 4761 4761 IEM_MC_FETCH_MEM_U8_SX_U64(u64Value, pIemCpu->iEffSeg, GCPtrEffDst); 4762 4762 IEM_MC_STORE_GREG_U64(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, u64Value); … … 4816 4816 IEM_MC_LOCAL(uint32_t, u32Value); 4817 4817 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 4818 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );4818 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 4819 4819 IEM_MC_FETCH_MEM_U16_SX_U32(u32Value, pIemCpu->iEffSeg, GCPtrEffDst); 4820 4820 IEM_MC_STORE_GREG_U32(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, u32Value); … … 4827 4827 IEM_MC_LOCAL(uint64_t, u64Value); 4828 4828 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 4829 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );4829 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 4830 4830 IEM_MC_FETCH_MEM_U16_SX_U64(u64Value, pIemCpu->iEffSeg, GCPtrEffDst); 4831 4831 IEM_MC_STORE_GREG_U64(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, u64Value); … … 4876 4876 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 4877 4877 4878 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );4878 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 4879 4879 IEM_MC_MEM_MAP(pu8Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 4880 4880 IEM_MC_FETCH_GREG_U8(u8RegCopy, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); … … 4975 4975 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 4976 4976 4977 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );4977 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 4978 4978 IEM_MC_MEM_MAP(pu16Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 4979 4979 IEM_MC_FETCH_GREG_U16(u16RegCopy, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); … … 5000 5000 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 5001 5001 5002 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );5002 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 5003 5003 IEM_MC_MEM_MAP(pu32Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 5004 5004 IEM_MC_FETCH_GREG_U32(u32RegCopy, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); … … 5025 5025 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 5026 5026 5027 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );5027 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 5028 5028 IEM_MC_MEM_MAP(pu64Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 5029 5029 IEM_MC_FETCH_GREG_U64(u64RegCopy, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); … … 5077 5077 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 5078 5078 5079 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );5079 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 5080 5080 IEMOP_HLP_DONE_DECODING(); 5081 5081 IEM_MC_MEM_MAP(pu64MemDst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); … … 6846 6846 IEM_MC_LOCAL(uint64_t, u64Value); 6847 6847 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 6848 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );6848 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 6849 6849 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 6850 6850 IEM_MC_FETCH_MEM_U32_SX_U64(u64Value, pIemCpu->iEffSeg, GCPtrEffDst); … … 6994 6994 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 6995 6995 6996 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );6996 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 2); 6997 6997 uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm); 6998 6998 IEM_MC_ASSIGN(u16Src, u16Imm); … … 7043 7043 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 7044 7044 7045 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );7045 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 4); 7046 7046 uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm); 7047 7047 IEM_MC_ASSIGN(u32Src, u32Imm); … … 7092 7092 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 7093 7093 7094 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );7094 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 4); 7095 7095 uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm); 7096 7096 IEM_MC_ASSIGN(u64Src, u64Imm); … … 7180 7180 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 7181 7181 7182 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );7182 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); 7183 7183 uint16_t u16Imm; IEM_OPCODE_GET_NEXT_S8_SX_U16(&u16Imm); 7184 7184 IEM_MC_ASSIGN(u16Src, u16Imm); … … 7227 7227 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 7228 7228 7229 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );7229 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 4); 7230 7230 uint32_t u32Imm; IEM_OPCODE_GET_NEXT_S8_SX_U32(&u32Imm); 7231 7231 IEM_MC_ASSIGN(u32Src, u32Imm); … … 7274 7274 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 7275 7275 7276 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );7276 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); 7277 7277 uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S8_SX_U64(&u64Imm); 7278 7278 IEM_MC_ASSIGN(u64Src, u64Imm); … … 7816 7816 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 7817 7817 7818 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );7818 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); 7819 7819 uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm); 7820 7820 IEM_MC_ARG_CONST(uint8_t, u8Src, /*=*/ u8Imm, 1); … … 7881 7881 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 7882 7882 7883 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );7883 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 2); 7884 7884 uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm); 7885 7885 IEM_MC_ASSIGN(u16Src, u16Imm); … … 7935 7935 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 7936 7936 7937 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );7937 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 4); 7938 7938 uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm); 7939 7939 IEM_MC_ASSIGN(u32Src, u32Imm); … … 7989 7989 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 7990 7990 7991 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );7991 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 4); 7992 7992 uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm); 7993 7993 IEM_MC_ASSIGN(u64Src, u64Imm); … … 8108 8108 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8109 8109 8110 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );8110 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); 8111 8111 uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm); 8112 8112 IEM_MC_ASSIGN(u16Src, (int8_t)u8Imm); … … 8133 8133 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8134 8134 8135 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );8135 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); 8136 8136 uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm); 8137 8137 IEM_MC_ASSIGN(u32Src, (int8_t)u8Imm); … … 8158 8158 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8159 8159 8160 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );8160 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); 8161 8161 uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm); 8162 8162 IEM_MC_ASSIGN(u64Src, (int8_t)u8Imm); … … 8236 8236 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8237 8237 8238 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );8238 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8239 8239 IEM_MC_MEM_MAP(pu8Mem, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 8240 8240 IEM_MC_REF_GREG_U8(pu8Reg, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); … … 8323 8323 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8324 8324 8325 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );8325 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8326 8326 IEM_MC_MEM_MAP(pu16Mem, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 8327 8327 IEM_MC_REF_GREG_U16(pu16Reg, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); … … 8339 8339 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8340 8340 8341 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );8341 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8342 8342 IEM_MC_MEM_MAP(pu32Mem, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 8343 8343 IEM_MC_REF_GREG_U32(pu32Reg, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); … … 8355 8355 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8356 8356 8357 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );8357 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8358 8358 IEM_MC_MEM_MAP(pu64Mem, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 8359 8359 IEM_MC_REF_GREG_U64(pu64Reg, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); … … 8400 8400 IEM_MC_LOCAL(uint8_t, u8Value); 8401 8401 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8402 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );8402 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8403 8403 IEM_MC_FETCH_GREG_U8(u8Value, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); 8404 8404 IEM_MC_STORE_MEM_U8(pIemCpu->iEffSeg, GCPtrEffDst, u8Value); … … 8465 8465 IEM_MC_LOCAL(uint16_t, u16Value); 8466 8466 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8467 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );8467 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8468 8468 IEM_MC_FETCH_GREG_U16(u16Value, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); 8469 8469 IEM_MC_STORE_MEM_U16(pIemCpu->iEffSeg, GCPtrEffDst, u16Value); … … 8476 8476 IEM_MC_LOCAL(uint32_t, u32Value); 8477 8477 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8478 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );8478 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8479 8479 IEM_MC_FETCH_GREG_U32(u32Value, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); 8480 8480 IEM_MC_STORE_MEM_U32(pIemCpu->iEffSeg, GCPtrEffDst, u32Value); … … 8487 8487 IEM_MC_LOCAL(uint64_t, u64Value); 8488 8488 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8489 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );8489 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8490 8490 IEM_MC_FETCH_GREG_U64(u64Value, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); 8491 8491 IEM_MC_STORE_MEM_U64(pIemCpu->iEffSeg, GCPtrEffDst, u64Value); … … 8527 8527 IEM_MC_LOCAL(uint8_t, u8Value); 8528 8528 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8529 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );8529 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8530 8530 IEM_MC_FETCH_MEM_U8(u8Value, pIemCpu->iEffSeg, GCPtrEffDst); 8531 8531 IEM_MC_STORE_GREG_U8(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, u8Value); … … 8591 8591 IEM_MC_LOCAL(uint16_t, u16Value); 8592 8592 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8593 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );8593 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8594 8594 IEM_MC_FETCH_MEM_U16(u16Value, pIemCpu->iEffSeg, GCPtrEffDst); 8595 8595 IEM_MC_STORE_GREG_U16(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, u16Value); … … 8602 8602 IEM_MC_LOCAL(uint32_t, u32Value); 8603 8603 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8604 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );8604 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8605 8605 IEM_MC_FETCH_MEM_U32(u32Value, pIemCpu->iEffSeg, GCPtrEffDst); 8606 8606 IEM_MC_STORE_GREG_U32(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, u32Value); … … 8613 8613 IEM_MC_LOCAL(uint64_t, u64Value); 8614 8614 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8615 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );8615 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8616 8616 IEM_MC_FETCH_MEM_U64(u64Value, pIemCpu->iEffSeg, GCPtrEffDst); 8617 8617 IEM_MC_STORE_GREG_U64(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, u64Value); … … 8700 8700 IEM_MC_LOCAL(uint16_t, u16Value); 8701 8701 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8702 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );8702 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8703 8703 IEM_MC_FETCH_SREG_U16(u16Value, iSegReg); 8704 8704 IEM_MC_STORE_MEM_U16(pIemCpu->iEffSeg, GCPtrEffDst, u16Value); … … 8727 8727 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 8728 8728 IEM_MC_LOCAL(uint16_t, u16Cast); 8729 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );8729 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 8730 8730 IEM_MC_ASSIGN_TO_SMALLER(u16Cast, GCPtrEffSrc); 8731 8731 IEM_MC_STORE_GREG_U16(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, u16Cast); … … 8738 8738 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 8739 8739 IEM_MC_LOCAL(uint32_t, u32Cast); 8740 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );8740 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 8741 8741 IEM_MC_ASSIGN_TO_SMALLER(u32Cast, GCPtrEffSrc); 8742 8742 IEM_MC_STORE_GREG_U32(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, u32Cast); … … 8748 8748 IEM_MC_BEGIN(0, 1); 8749 8749 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 8750 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );8750 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 8751 8751 IEM_MC_STORE_GREG_U64(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, GCPtrEffSrc); 8752 8752 IEM_MC_ADVANCE_RIP(); … … 8804 8804 IEM_MC_ARG(uint16_t, u16Value, 1); 8805 8805 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8806 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );8806 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8807 8807 IEM_MC_FETCH_MEM_U16(u16Value, pIemCpu->iEffSeg, GCPtrEffDst); 8808 8808 IEM_MC_CALL_CIMPL_2(iemCImpl_load_SReg, iSRegArg, u16Value); … … 8851 8851 RTGCPTR GCPtrEff; 8852 8852 VBOXSTRICTRC rcStrict; 8853 rcStrict = iemOpHlpCalcRmEffAddr(pIemCpu, bRm, &GCPtrEff);8853 rcStrict = iemOpHlpCalcRmEffAddr(pIemCpu, bRm, 0, &GCPtrEff); 8854 8854 if (rcStrict != VINF_SUCCESS) 8855 8855 return rcStrict; … … 8865 8865 IEM_NOT_REACHED_DEFAULT_CASE_RET(); 8866 8866 } 8867 rcStrict = iemOpHlpCalcRmEffAddr(pIemCpu, bRm, &GCPtrEff);8867 rcStrict = iemOpHlpCalcRmEffAddr(pIemCpu, bRm, 0, &GCPtrEff); 8868 8868 Assert(rcStrict == VINF_SUCCESS); 8869 8869 pCtx->rsp = RspSaved; … … 10452 10452 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 10453 10453 10454 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );10454 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); 10455 10455 uint8_t cShift; IEM_OPCODE_GET_NEXT_U8(&cShift); 10456 10456 IEM_MC_ASSIGN(cShiftArg, cShift); … … 10546 10546 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 10547 10547 10548 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );10548 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); 10549 10549 uint8_t cShift; IEM_OPCODE_GET_NEXT_U8(&cShift); 10550 10550 IEM_MC_ASSIGN(cShiftArg, cShift); … … 10566 10566 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 10567 10567 10568 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );10568 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); 10569 10569 uint8_t cShift; IEM_OPCODE_GET_NEXT_U8(&cShift); 10570 10570 IEM_MC_ASSIGN(cShiftArg, cShift); … … 10586 10586 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 10587 10587 10588 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );10588 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); 10589 10589 uint8_t cShift; IEM_OPCODE_GET_NEXT_U8(&cShift); 10590 10590 IEM_MC_ASSIGN(cShiftArg, cShift); … … 10665 10665 IEM_MC_BEGIN(0, 1); 10666 10666 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 10667 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );10667 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); 10668 10668 uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm); 10669 10669 IEM_MC_STORE_MEM_U8(pIemCpu->iEffSeg, GCPtrEffDst, u8Imm); … … 10724 10724 IEM_MC_BEGIN(0, 1); 10725 10725 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 10726 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );10726 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 2); 10727 10727 uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm); 10728 10728 IEM_MC_STORE_MEM_U16(pIemCpu->iEffSeg, GCPtrEffDst, u16Imm); … … 10734 10734 IEM_MC_BEGIN(0, 1); 10735 10735 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 10736 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );10736 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 4); 10737 10737 uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm); 10738 10738 IEM_MC_STORE_MEM_U32(pIemCpu->iEffSeg, GCPtrEffDst, u32Imm); … … 10744 10744 IEM_MC_BEGIN(0, 1); 10745 10745 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 10746 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );10746 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 4); 10747 10747 uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm); 10748 10748 IEM_MC_STORE_MEM_U64(pIemCpu->iEffSeg, GCPtrEffDst, u64Imm); … … 10881 10881 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 10882 10882 10883 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );10883 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 10884 10884 IEM_MC_MEM_MAP(pu8Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 10885 10885 IEM_MC_FETCH_EFLAGS(EFlags); … … 10973 10973 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 10974 10974 10975 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );10975 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 10976 10976 IEM_MC_MEM_MAP(pu16Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 10977 10977 IEM_MC_FETCH_EFLAGS(EFlags); … … 10991 10991 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 10992 10992 10993 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );10993 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 10994 10994 IEM_MC_MEM_MAP(pu32Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 10995 10995 IEM_MC_FETCH_EFLAGS(EFlags); … … 11009 11009 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 11010 11010 11011 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );11011 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 11012 11012 IEM_MC_MEM_MAP(pu64Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 11013 11013 IEM_MC_FETCH_EFLAGS(EFlags); … … 11070 11070 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 11071 11071 11072 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );11072 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 11073 11073 IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX); 11074 11074 IEM_MC_MEM_MAP(pu8Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); … … 11165 11165 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 11166 11166 11167 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );11167 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 11168 11168 IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX); 11169 11169 IEM_MC_MEM_MAP(pu16Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); … … 11184 11184 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 11185 11185 11186 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );11186 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 11187 11187 IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX); 11188 11188 IEM_MC_MEM_MAP(pu32Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); … … 11203 11203 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 11204 11204 11205 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );11205 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 11206 11206 IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX); 11207 11207 IEM_MC_MEM_MAP(pu64Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); … … 11468 11468 IEM_MC_ARG_LOCAL_REF(PCRTFLOAT32U, pr32Val2, r32Val2, 2); 11469 11469 11470 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );11470 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 11471 11471 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 11472 11472 … … 11518 11518 IEM_MC_ARG_LOCAL_REF(PCRTFLOAT32U, pr32Val2, r32Val2, 2); 11519 11519 11520 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );11520 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 11521 11521 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 11522 11522 … … 11552 11552 IEM_MC_ARG_LOCAL_REF(PCRTFLOAT32U, pr32Val2, r32Val2, 2); 11553 11553 11554 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );11554 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 11555 11555 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 11556 11556 … … 11657 11657 IEM_MC_ARG_LOCAL_REF(PCRTFLOAT32U, pr32Val, r32Val, 1); 11658 11658 11659 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );11659 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 11660 11660 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 11661 11661 … … 11689 11689 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); 11690 11690 11691 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );11691 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 11692 11692 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 11693 11693 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 11725 11725 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); 11726 11726 11727 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );11727 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 11728 11728 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 11729 11729 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 11758 11758 IEM_MC_ARG_CONST(uint8_t, iEffSeg, /*=*/ pIemCpu->iEffSeg, 1); 11759 11759 IEM_MC_ARG(RTGCPTR, GCPtrEffSrc, 2); 11760 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );11760 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 11761 11761 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 11762 11762 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 11774 11774 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 11775 11775 IEM_MC_ARG(uint16_t, u16Fsw, 0); 11776 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );11776 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 11777 11777 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 11778 11778 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 11792 11792 IEM_MC_ARG_CONST(uint8_t, iEffSeg, /*=*/ pIemCpu->iEffSeg, 1); 11793 11793 IEM_MC_ARG(RTGCPTR, GCPtrEffDst, 2); 11794 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );11794 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 11795 11795 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 11796 11796 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 11808 11808 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 11809 11809 IEM_MC_LOCAL(uint16_t, u16Fcw); 11810 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );11810 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 11811 11811 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 11812 11812 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 12588 12588 IEM_MC_ARG_LOCAL_REF(int32_t const *, pi32Val2, i32Val2, 2); 12589 12589 12590 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );12590 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 12591 12591 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 12592 12592 … … 12638 12638 IEM_MC_ARG_LOCAL_REF(int32_t const *, pi32Val2, i32Val2, 2); 12639 12639 12640 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );12640 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 12641 12641 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 12642 12642 … … 12672 12672 IEM_MC_ARG_LOCAL_REF(int32_t const *, pi32Val2, i32Val2, 2); 12673 12673 12674 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );12674 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 12675 12675 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 12676 12676 … … 12778 12778 IEM_MC_ARG_LOCAL_REF(int32_t const *, pi32Val, i32Val, 1); 12779 12779 12780 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );12780 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 12781 12781 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 12782 12782 … … 12810 12810 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); 12811 12811 12812 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );12812 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 12813 12813 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 12814 12814 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 12846 12846 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); 12847 12847 12848 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );12848 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 12849 12849 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 12850 12850 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 12882 12882 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); 12883 12883 12884 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );12884 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 12885 12885 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 12886 12886 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 12919 12919 IEM_MC_ARG_LOCAL_REF(PCRTFLOAT80U, pr80Val, r80Val, 1); 12920 12920 12921 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );12921 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 12922 12922 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 12923 12923 … … 12951 12951 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); 12952 12952 12953 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );12953 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 12954 12954 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 12955 12955 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 13332 13332 IEM_MC_ARG_LOCAL_REF(PRTFLOAT64U, pr64Factor2, r64Factor2, 2); 13333 13333 13334 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );13334 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 13335 13335 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 13336 13336 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 13381 13381 IEM_MC_ARG_LOCAL_REF(PCRTFLOAT64U, pr64Val2, r64Val2, 2); 13382 13382 13383 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );13383 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 13384 13384 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 13385 13385 … … 13415 13415 IEM_MC_ARG_LOCAL_REF(PCRTFLOAT64U, pr64Val2, r64Val2, 2); 13416 13416 13417 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );13417 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 13418 13418 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 13419 13419 … … 13519 13519 IEM_MC_ARG_LOCAL_REF(PCRTFLOAT64U, pr64Val, r64Val, 1); 13520 13520 13521 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );13521 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 13522 13522 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 13523 13523 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 13550 13550 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); 13551 13551 13552 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );13552 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 13553 13553 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 13554 13554 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 13586 13586 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); 13587 13587 13588 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );13588 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 13589 13589 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 13590 13590 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 13624 13624 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); 13625 13625 13626 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );13626 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 13627 13627 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 13628 13628 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 13657 13657 IEM_MC_ARG_CONST(uint8_t, iEffSeg, /*=*/ pIemCpu->iEffSeg, 1); 13658 13658 IEM_MC_ARG(RTGCPTR, GCPtrEffSrc, 2); 13659 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );13659 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 13660 13660 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 13661 13661 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 13674 13674 IEM_MC_ARG_CONST(uint8_t, iEffSeg, /*=*/ pIemCpu->iEffSeg, 1); 13675 13675 IEM_MC_ARG(RTGCPTR, GCPtrEffDst, 2); 13676 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );13676 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 13677 13677 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 13678 13678 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 13692 13692 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 13693 13693 13694 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 13695 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 13694 13696 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); 13695 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 13696 13697 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm); 13697 13698 13698 IEM_MC_FETCH_FSW(u16Tmp); 13699 13699 IEM_MC_STORE_MEM_U16(pIemCpu->iEffSeg, GCPtrEffDst, u16Tmp); … … 13881 13881 IEM_MC_ARG_LOCAL_REF(int16_t const *, pi16Val2, i16Val2, 2); 13882 13882 13883 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );13883 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 13884 13884 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 13885 13885 … … 13931 13931 IEM_MC_ARG_LOCAL_REF(int16_t const *, pi16Val2, i16Val2, 2); 13932 13932 13933 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );13933 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 13934 13934 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 13935 13935 … … 13965 13965 IEM_MC_ARG_LOCAL_REF(int16_t const *, pi16Val2, i16Val2, 2); 13966 13966 13967 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );13967 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 13968 13968 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 13969 13969 … … 14129 14129 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); 14130 14130 14131 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );14131 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 14132 14132 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 14133 14133 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 14165 14165 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); 14166 14166 14167 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );14167 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 14168 14168 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 14169 14169 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 14201 14201 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); 14202 14202 14203 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );14203 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 14204 14204 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 14205 14205 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 14247 14247 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); 14248 14248 14249 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );14249 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 14250 14250 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 14251 14251 IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE(); … … 14756 14756 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 14757 14757 14758 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );14758 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 14759 14759 IEM_MC_MEM_MAP(pu8Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 14760 14760 IEM_MC_FETCH_EFLAGS(EFlags); … … 14794 14794 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 14795 14795 14796 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );14796 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 14797 14797 IEM_MC_MEM_MAP(pu16Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 14798 14798 IEM_MC_FETCH_EFLAGS(EFlags); … … 14814 14814 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 14815 14815 14816 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );14816 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 14817 14817 IEM_MC_MEM_MAP(pu32Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 14818 14818 IEM_MC_FETCH_EFLAGS(EFlags); … … 14834 14834 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 14835 14835 14836 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );14836 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 14837 14837 IEM_MC_MEM_MAP(pu64Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/); 14838 14838 IEM_MC_FETCH_EFLAGS(EFlags); … … 14886 14886 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 14887 14887 14888 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );14888 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); 14889 14889 uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm); 14890 14890 IEM_MC_ASSIGN(u8Src, u8Imm); … … 14975 14975 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 14976 14976 14977 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );14977 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 2); 14978 14978 uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm); 14979 14979 IEM_MC_ASSIGN(u16Src, u16Imm); … … 14997 14997 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 14998 14998 14999 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );14999 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 4); 15000 15000 uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm); 15001 15001 IEM_MC_ASSIGN(u32Src, u32Imm); … … 15019 15019 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 15020 15020 15021 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );15021 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 4); 15022 15022 uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm); 15023 15023 IEM_MC_ASSIGN(u64Src, u64Imm); … … 15070 15070 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 15071 15071 15072 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );15072 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 15073 15073 IEM_MC_FETCH_MEM_U8(u8Value, pIemCpu->iEffSeg, GCPtrEffDst); 15074 15074 IEM_MC_REF_GREG_U16(pu16AX, X86_GREG_xAX); … … 15188 15188 IEM_MC_LOCAL(int32_t, rc); 15189 15189 15190 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );15190 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 15191 15191 IEM_MC_FETCH_MEM_U16(u16Value, pIemCpu->iEffSeg, GCPtrEffDst); 15192 15192 IEM_MC_REF_GREG_U16(pu16AX, X86_GREG_xAX); … … 15215 15215 IEM_MC_LOCAL(int32_t, rc); 15216 15216 15217 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );15217 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 15218 15218 IEM_MC_FETCH_MEM_U32(u32Value, pIemCpu->iEffSeg, GCPtrEffDst); 15219 15219 IEM_MC_REF_GREG_U32(pu32AX, X86_GREG_xAX); … … 15242 15242 IEM_MC_LOCAL(int32_t, rc); 15243 15243 15244 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm );15244 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 15245 15245 IEM_MC_FETCH_MEM_U64(u64Value, pIemCpu->iEffSeg, GCPtrEffDst); 15246 15246 IEM_MC_REF_GREG_U64(pu64AX, X86_GREG_xAX); … … 15476 15476 IEM_MC_ARG(uint16_t, u16Target, 0); 15477 15477 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 15478 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );15478 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 15479 15479 IEM_MC_FETCH_MEM_U16(u16Target, pIemCpu->iEffSeg, GCPtrEffSrc); 15480 15480 IEM_MC_CALL_CIMPL_1(iemCImpl_call_16, u16Target); … … 15486 15486 IEM_MC_ARG(uint32_t, u32Target, 0); 15487 15487 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 15488 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );15488 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 15489 15489 IEM_MC_FETCH_MEM_U32(u32Target, pIemCpu->iEffSeg, GCPtrEffSrc); 15490 15490 IEM_MC_CALL_CIMPL_1(iemCImpl_call_32, u32Target); … … 15496 15496 IEM_MC_ARG(uint64_t, u64Target, 0); 15497 15497 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 15498 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );15498 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 15499 15499 IEM_MC_FETCH_MEM_U64(u64Target, pIemCpu->iEffSeg, GCPtrEffSrc); 15500 15500 IEM_MC_CALL_CIMPL_1(iemCImpl_call_64, u64Target); … … 15524 15524 IEM_MC_ARG_CONST(IEMMODE, enmEffOpSize, IEMMODE_16BIT, 2); 15525 15525 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 15526 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );15526 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 15527 15527 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 15528 15528 IEM_MC_FETCH_MEM_U16(offSeg, pIemCpu->iEffSeg, GCPtrEffSrc); … … 15538 15538 IEM_MC_ARG_CONST(IEMMODE, enmEffOpSize, IEMMODE_32BIT, 2); 15539 15539 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 15540 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );15540 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 15541 15541 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 15542 15542 IEM_MC_FETCH_MEM_U32(offSeg, pIemCpu->iEffSeg, GCPtrEffSrc); … … 15552 15552 IEM_MC_ARG_CONST(IEMMODE, enmEffOpSize, IEMMODE_16BIT, 2); 15553 15553 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 15554 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );15554 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 15555 15555 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 15556 15556 IEM_MC_FETCH_MEM_U64(offSeg, pIemCpu->iEffSeg, GCPtrEffSrc); … … 15627 15627 IEM_MC_LOCAL(uint16_t, u16Target); 15628 15628 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 15629 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );15629 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 15630 15630 IEM_MC_FETCH_MEM_U16(u16Target, pIemCpu->iEffSeg, GCPtrEffSrc); 15631 15631 IEM_MC_SET_RIP_U16(u16Target); … … 15637 15637 IEM_MC_LOCAL(uint32_t, u32Target); 15638 15638 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 15639 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );15639 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 15640 15640 IEM_MC_FETCH_MEM_U32(u32Target, pIemCpu->iEffSeg, GCPtrEffSrc); 15641 15641 IEM_MC_SET_RIP_U32(u32Target); … … 15647 15647 IEM_MC_LOCAL(uint32_t, u32Target); 15648 15648 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 15649 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );15649 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 15650 15650 IEM_MC_FETCH_MEM_U32(u32Target, pIemCpu->iEffSeg, GCPtrEffSrc); 15651 15651 IEM_MC_SET_RIP_U32(u32Target); … … 15692 15692 IEM_MC_LOCAL(uint16_t, u16Src); 15693 15693 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 15694 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );15694 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 15695 15695 IEM_MC_FETCH_MEM_U16(u16Src, pIemCpu->iEffSeg, GCPtrEffSrc); 15696 15696 IEM_MC_PUSH_U16(u16Src); … … 15703 15703 IEM_MC_LOCAL(uint32_t, u32Src); 15704 15704 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 15705 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );15705 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 15706 15706 IEM_MC_FETCH_MEM_U32(u32Src, pIemCpu->iEffSeg, GCPtrEffSrc); 15707 15707 IEM_MC_PUSH_U32(u32Src); … … 15714 15714 IEM_MC_LOCAL(uint64_t, u64Src); 15715 15715 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 15716 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm );15716 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 15717 15717 IEM_MC_FETCH_MEM_U64(u64Src, pIemCpu->iEffSeg, GCPtrEffSrc); 15718 15718 IEM_MC_PUSH_U64(u64Src); -
trunk/src/VBox/VMM/testcase/tstIEMCheckMc.cpp
r44529 r46953 498 498 #define IEM_MC_MEM_COMMIT_AND_UNMAP(a_pvMem, a_fAccess) do {} while (0) 499 499 #define IEM_MC_MEM_COMMIT_AND_UNMAP_FOR_FPU_STORE(a_pvMem, a_fAccess, a_u16FSW) do {} while (0) 500 #define IEM_MC_CALC_RM_EFF_ADDR(a_GCPtrEff, bRm )do { (a_GCPtrEff) = 0; CHK_GCPTR(a_GCPtrEff); } while (0)500 #define IEM_MC_CALC_RM_EFF_ADDR(a_GCPtrEff, bRm, cbImm) do { (a_GCPtrEff) = 0; CHK_GCPTR(a_GCPtrEff); } while (0) 501 501 #define IEM_MC_CALL_VOID_AIMPL_1(a_pfn, a0) do {} while (0) 502 502 #define IEM_MC_CALL_VOID_AIMPL_2(a_pfn, a0, a1) do {} while (0)
Note:
See TracChangeset
for help on using the changeset viewer.