VirtualBox

Changeset 108288 in vbox


Ignore:
Timestamp:
Feb 19, 2025 12:02:33 PM (3 weeks ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
167631
Message:

VMM/IEM: s/IEM_MC_FETCH_MEM(|16|32)_(?!FLAT|SEG)/IEM_MC_FETCH_MEM\1_SEG_\2/g jiraref:VBP-1531

Location:
trunk/src/VBox/VMM
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstPython.py

    r108287 r108288  
    31243124    'IEM_MC_FETCH_GREG_PAIR_U32':                                (McBlock.parseMcGeneric,           False, False, False, ),
    31253125    'IEM_MC_FETCH_GREG_PAIR_U64':                                (McBlock.parseMcGeneric,           False, False, g_fNativeSimd),
    3126     'IEM_MC_FETCH_MEM_D80':                                      (McBlock.parseMcGeneric,           True,  True,  False, ),
    3127     'IEM_MC_FETCH_MEM_I16':                                      (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
    3128     'IEM_MC_FETCH_MEM_I16_DISP':                                 (McBlock.parseMcGeneric,           True,  True,  True,  ),
    3129     'IEM_MC_FETCH_MEM_I32':                                      (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
    3130     'IEM_MC_FETCH_MEM_I32_DISP':                                 (McBlock.parseMcGeneric,           True,  True,  True,  ),
    3131     'IEM_MC_FETCH_MEM_I64':                                      (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
    3132     'IEM_MC_FETCH_MEM_R32':                                      (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
    3133     'IEM_MC_FETCH_MEM_R64':                                      (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
    3134     'IEM_MC_FETCH_MEM_R80':                                      (McBlock.parseMcGeneric,           True,  True,  False, ),
    3135     'IEM_MC_FETCH_MEM_U128':                                     (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
    3136     'IEM_MC_FETCH_MEM_U128_ALIGN_SSE':                           (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
    3137     'IEM_MC_FETCH_MEM_U128_NO_AC':                               (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
    3138     'IEM_MC_FETCH_MEM_U128_AND_XREG_U128':                       (McBlock.parseMcGeneric,           True,  True,  False, ),
    3139     'IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_RAX_RDX_U64':       (McBlock.parseMcGeneric,           True,  True,  False, ),
    3140     'IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64':(McBlock.parseMcGeneric,           True,  True,  False, ),
    3141     'IEM_MC_FETCH_MEM_U16':                                      (McBlock.parseMcGeneric,           True,  True,  True,  ),
    3142     'IEM_MC_FETCH_MEM_U16_DISP':                                 (McBlock.parseMcGeneric,           True,  True,  True,  ),
    3143     'IEM_MC_FETCH_MEM_U16_SX_U32':                               (McBlock.parseMcGeneric,           True,  True,  True,  ), # movsx
    3144     'IEM_MC_FETCH_MEM_U16_SX_U64':                               (McBlock.parseMcGeneric,           True,  True,  True,  ), # movsx
    3145     'IEM_MC_FETCH_MEM_U16_ZX_U32':                               (McBlock.parseMcGeneric,           True,  True,  True,  ), # movzx
    3146     'IEM_MC_FETCH_MEM_U16_ZX_U64':                               (McBlock.parseMcGeneric,           True,  True,  True,  ), # movzx
    3147     'IEM_MC_FETCH_MEM_U256':                                     (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
    3148     'IEM_MC_FETCH_MEM_U256_ALIGN_AVX':                           (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
    3149     'IEM_MC_FETCH_MEM_U256_NO_AC':                               (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
    3150     'IEM_MC_FETCH_MEM_U32':                                      (McBlock.parseMcGeneric,           True,  True,  True,  ),
    3151     'IEM_MC_FETCH_MEM_U32_DISP':                                 (McBlock.parseMcGeneric,           True,  True,  True,  ), #bounds only
    3152     'IEM_MC_FETCH_MEM_U32_SX_U64':                               (McBlock.parseMcGeneric,           True,  True,  True,  ), # movsx
    3153     'IEM_MC_FETCH_MEM_U32_ZX_U64':                               (McBlock.parseMcGeneric,           True,  True,  True,  ), # movzx
    3154     'IEM_MC_FETCH_MEM_U64':                                      (McBlock.parseMcGeneric,           True,  True,  True,  ),
    3155     'IEM_MC_FETCH_MEM_U64_ALIGN_U128':                           (McBlock.parseMcGeneric,           True,  True,  False, ),
    3156     'IEM_MC_FETCH_MEM_U8':                                       (McBlock.parseMcGeneric,           True,  True,  True,  ),
    3157     'IEM_MC_FETCH_MEM_U8_SX_U16':                                (McBlock.parseMcGeneric,           True,  True,  True,  ), # movsx
    3158     'IEM_MC_FETCH_MEM_U8_SX_U32':                                (McBlock.parseMcGeneric,           True,  True,  True,  ), # movsx
    3159     'IEM_MC_FETCH_MEM_U8_SX_U64':                                (McBlock.parseMcGeneric,           True,  True,  True,  ), # movsx
    3160     'IEM_MC_FETCH_MEM_U8_ZX_U16':                                (McBlock.parseMcGeneric,           True,  True,  True,  ), # movzx
    3161     'IEM_MC_FETCH_MEM_U8_ZX_U32':                                (McBlock.parseMcGeneric,           True,  True,  True,  ), # movzx
    3162     'IEM_MC_FETCH_MEM_U8_ZX_U64':                                (McBlock.parseMcGeneric,           True,  True,  True,  ), # movzx
    3163     'IEM_MC_FETCH_MEM_XMM':                                      (McBlock.parseMcGeneric,           True,  True,  False, ),
    3164     'IEM_MC_FETCH_MEM_XMM_ALIGN_SSE':                            (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
    3165     'IEM_MC_FETCH_MEM_XMM_NO_AC':                                (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
    3166     'IEM_MC_FETCH_MEM_XMM_ALIGN_SSE_AND_XREG_XMM':               (McBlock.parseMcGeneric,           True,  True,  False, ),
    3167     'IEM_MC_FETCH_MEM_XMM_NO_AC_AND_XREG_XMM':                   (McBlock.parseMcGeneric,           True,  True,  False, ),
    3168     'IEM_MC_FETCH_MEM_XMM_U32_AND_XREG_XMM':                     (McBlock.parseMcGeneric,           True,  True,  False, ),
    3169     'IEM_MC_FETCH_MEM_XMM_U64_AND_XREG_XMM':                     (McBlock.parseMcGeneric,           True,  True,  False, ),
    3170     'IEM_MC_FETCH_MEM_YMM':                                      (McBlock.parseMcGeneric,           True,  True,  False, ),
    3171     'IEM_MC_FETCH_MEM_YMM_ALIGN_AVX':                            (McBlock.parseMcGeneric,           True,  True,  False, ),
    3172     'IEM_MC_FETCH_MEM_YMM_NO_AC':                                (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
    3173     'IEM_MC_FETCH_MEM_YMM_NO_AC_AND_YREG_YMM':                   (McBlock.parseMcGeneric,           True,  True,  False, ),
    3174     'IEM_MC_FETCH_MEM16_U8':                                     (McBlock.parseMcGeneric,           True,  True,  False, ),
    3175     'IEM_MC_FETCH_MEM32_U8':                                     (McBlock.parseMcGeneric,           True,  True,  False, ),
     3126    'IEM_MC_FETCH_MEM_SEG_D80':                                  (McBlock.parseMcGeneric,           True,  True,  False, ),
     3127    'IEM_MC_FETCH_MEM_SEG_I16':                                  (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
     3128    'IEM_MC_FETCH_MEM_SEG_I16_DISP':                             (McBlock.parseMcGeneric,           True,  True,  True,  ),
     3129    'IEM_MC_FETCH_MEM_SEG_I32':                                  (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
     3130    'IEM_MC_FETCH_MEM_SEG_I32_DISP':                             (McBlock.parseMcGeneric,           True,  True,  True,  ),
     3131    'IEM_MC_FETCH_MEM_SEG_I64':                                  (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
     3132    'IEM_MC_FETCH_MEM_SEG_R32':                                  (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
     3133    'IEM_MC_FETCH_MEM_SEG_R64':                                  (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
     3134    'IEM_MC_FETCH_MEM_SEG_R80':                                  (McBlock.parseMcGeneric,           True,  True,  False, ),
     3135    'IEM_MC_FETCH_MEM_SEG_U128':                                 (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
     3136    'IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE':                       (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
     3137    'IEM_MC_FETCH_MEM_SEG_U128_NO_AC':                           (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
     3138    'IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128':                   (McBlock.parseMcGeneric,           True,  True,  False, ),
     3139    'IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_RAX_RDX_U64':   (McBlock.parseMcGeneric,           True,  True,  False, ),
     3140    'IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64':(McBlock.parseMcGeneric,       True,  True,  False, ),
     3141    'IEM_MC_FETCH_MEM_SEG_U16':                                  (McBlock.parseMcGeneric,           True,  True,  True,  ),
     3142    'IEM_MC_FETCH_MEM_SEG_U16_DISP':                             (McBlock.parseMcGeneric,           True,  True,  True,  ),
     3143    'IEM_MC_FETCH_MEM_SEG_U16_SX_U32':                           (McBlock.parseMcGeneric,           True,  True,  True,  ), # movsx
     3144    'IEM_MC_FETCH_MEM_SEG_U16_SX_U64':                           (McBlock.parseMcGeneric,           True,  True,  True,  ), # movsx
     3145    'IEM_MC_FETCH_MEM_SEG_U16_ZX_U32':                           (McBlock.parseMcGeneric,           True,  True,  True,  ), # movzx
     3146    'IEM_MC_FETCH_MEM_SEG_U16_ZX_U64':                           (McBlock.parseMcGeneric,           True,  True,  True,  ), # movzx
     3147    'IEM_MC_FETCH_MEM_SEG_U256':                                 (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
     3148    'IEM_MC_FETCH_MEM_SEG_U256_ALIGN_AVX':                       (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
     3149    'IEM_MC_FETCH_MEM_SEG_U256_NO_AC':                           (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
     3150    'IEM_MC_FETCH_MEM_SEG_U32':                                  (McBlock.parseMcGeneric,           True,  True,  True,  ),
     3151    'IEM_MC_FETCH_MEM_SEG_U32_DISP':                             (McBlock.parseMcGeneric,           True,  True,  True,  ), #bounds only
     3152    'IEM_MC_FETCH_MEM_SEG_U32_SX_U64':                           (McBlock.parseMcGeneric,           True,  True,  True,  ), # movsx
     3153    'IEM_MC_FETCH_MEM_SEG_U32_ZX_U64':                           (McBlock.parseMcGeneric,           True,  True,  True,  ), # movzx
     3154    'IEM_MC_FETCH_MEM_SEG_U64':                                  (McBlock.parseMcGeneric,           True,  True,  True,  ),
     3155    'IEM_MC_FETCH_MEM_SEG_U64_ALIGN_U128':                       (McBlock.parseMcGeneric,           True,  True,  False, ),
     3156    'IEM_MC_FETCH_MEM_SEG_U8':                                   (McBlock.parseMcGeneric,           True,  True,  True,  ),
     3157    'IEM_MC_FETCH_MEM_SEG_U8_SX_U16':                            (McBlock.parseMcGeneric,           True,  True,  True,  ), # movsx
     3158    'IEM_MC_FETCH_MEM_SEG_U8_SX_U32':                            (McBlock.parseMcGeneric,           True,  True,  True,  ), # movsx
     3159    'IEM_MC_FETCH_MEM_SEG_U8_SX_U64':                            (McBlock.parseMcGeneric,           True,  True,  True,  ), # movsx
     3160    'IEM_MC_FETCH_MEM_SEG_U8_ZX_U16':                            (McBlock.parseMcGeneric,           True,  True,  True,  ), # movzx
     3161    'IEM_MC_FETCH_MEM_SEG_U8_ZX_U32':                            (McBlock.parseMcGeneric,           True,  True,  True,  ), # movzx
     3162    'IEM_MC_FETCH_MEM_SEG_U8_ZX_U64':                            (McBlock.parseMcGeneric,           True,  True,  True,  ), # movzx
     3163    'IEM_MC_FETCH_MEM_SEG_XMM':                                  (McBlock.parseMcGeneric,           True,  True,  False, ),
     3164    'IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE':                        (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
     3165    'IEM_MC_FETCH_MEM_SEG_XMM_NO_AC':                            (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
     3166    'IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE_AND_XREG_XMM':           (McBlock.parseMcGeneric,           True,  True,  False, ),
     3167    'IEM_MC_FETCH_MEM_SEG_XMM_NO_AC_AND_XREG_XMM':               (McBlock.parseMcGeneric,           True,  True,  False, ),
     3168    'IEM_MC_FETCH_MEM_SEG_XMM_U32_AND_XREG_XMM':                 (McBlock.parseMcGeneric,           True,  True,  False, ),
     3169    'IEM_MC_FETCH_MEM_SEG_XMM_U64_AND_XREG_XMM':                 (McBlock.parseMcGeneric,           True,  True,  False, ),
     3170    'IEM_MC_FETCH_MEM_SEG_YMM':                                  (McBlock.parseMcGeneric,           True,  True,  False, ),
     3171    'IEM_MC_FETCH_MEM_SEG_YMM_ALIGN_AVX':                        (McBlock.parseMcGeneric,           True,  True,  False, ),
     3172    'IEM_MC_FETCH_MEM_SEG_YMM_NO_AC':                            (McBlock.parseMcGeneric,           True,  True,  g_fNativeSimd),
     3173    'IEM_MC_FETCH_MEM_SEG_YMM_NO_AC_AND_YREG_YMM':               (McBlock.parseMcGeneric,           True,  True,  False, ),
     3174    'IEM_MC_FETCH_MEM16_SEG_U8':                                 (McBlock.parseMcGeneric,           True,  True,  False, ),
     3175    'IEM_MC_FETCH_MEM32_SEG_U8':                                 (McBlock.parseMcGeneric,           True,  True,  False, ),
    31763176    'IEM_MC_FETCH_MREG_U8':                                      (McBlock.parseMcGeneric,           False, False, False, ),
    31773177    'IEM_MC_FETCH_MREG_U16':                                     (McBlock.parseMcGeneric,           False, False, False, ),
  • trunk/src/VBox/VMM/VMMAll/IEMAllThrdPython.py

    r108287 r108288  
    902902    ## it, but only in 64-bit mode could we safely write via it, IIRC).
    903903    kdMemMcToFlatInfo = {
    904         'IEM_MC_FETCH_MEM_U8':                    (  1, 'IEM_MC_FETCH_MEM_FLAT_U8' ),
    905         'IEM_MC_FETCH_MEM16_U8':                  (  1, 'IEM_MC_FETCH_MEM16_FLAT_U8' ),
    906         'IEM_MC_FETCH_MEM32_U8':                  (  1, 'IEM_MC_FETCH_MEM32_FLAT_U8' ),
    907         'IEM_MC_FETCH_MEM_U16':                   (  1, 'IEM_MC_FETCH_MEM_FLAT_U16' ),
    908         'IEM_MC_FETCH_MEM_U16_DISP':              (  1, 'IEM_MC_FETCH_MEM_FLAT_U16_DISP' ),
    909         'IEM_MC_FETCH_MEM_I16':                   (  1, 'IEM_MC_FETCH_MEM_FLAT_I16' ),
    910         'IEM_MC_FETCH_MEM_I16_DISP':              (  1, 'IEM_MC_FETCH_MEM_FLAT_I16_DISP' ),
    911         'IEM_MC_FETCH_MEM_U32':                   (  1, 'IEM_MC_FETCH_MEM_FLAT_U32' ),
    912         'IEM_MC_FETCH_MEM_U32_DISP':              (  1, 'IEM_MC_FETCH_MEM_FLAT_U32_DISP' ),
    913         'IEM_MC_FETCH_MEM_I32':                   (  1, 'IEM_MC_FETCH_MEM_FLAT_I32' ),
    914         'IEM_MC_FETCH_MEM_I32_DISP':              (  1, 'IEM_MC_FETCH_MEM_FLAT_I32_DISP' ),
    915         'IEM_MC_FETCH_MEM_U64':                   (  1, 'IEM_MC_FETCH_MEM_FLAT_U64' ),
    916         'IEM_MC_FETCH_MEM_U64_DISP':              (  1, 'IEM_MC_FETCH_MEM_FLAT_U64_DISP' ),
    917         'IEM_MC_FETCH_MEM_U64_ALIGN_U128':        (  1, 'IEM_MC_FETCH_MEM_FLAT_U64_ALIGN_U128' ),
    918         'IEM_MC_FETCH_MEM_I64':                   (  1, 'IEM_MC_FETCH_MEM_FLAT_I64' ),
    919         'IEM_MC_FETCH_MEM_R32':                   (  1, 'IEM_MC_FETCH_MEM_FLAT_R32' ),
    920         'IEM_MC_FETCH_MEM_R64':                   (  1, 'IEM_MC_FETCH_MEM_FLAT_R64' ),
    921         'IEM_MC_FETCH_MEM_R80':                   (  1, 'IEM_MC_FETCH_MEM_FLAT_R80' ),
    922         'IEM_MC_FETCH_MEM_D80':                   (  1, 'IEM_MC_FETCH_MEM_FLAT_D80' ),
    923         'IEM_MC_FETCH_MEM_U128':                  (  1, 'IEM_MC_FETCH_MEM_FLAT_U128' ),
    924         'IEM_MC_FETCH_MEM_U128_NO_AC':            (  1, 'IEM_MC_FETCH_MEM_FLAT_U128_NO_AC' ),
    925         'IEM_MC_FETCH_MEM_U128_ALIGN_SSE':        (  1, 'IEM_MC_FETCH_MEM_FLAT_U128_ALIGN_SSE' ),
    926         'IEM_MC_FETCH_MEM_XMM':                   (  1, 'IEM_MC_FETCH_MEM_FLAT_XMM' ),
    927         'IEM_MC_FETCH_MEM_XMM_NO_AC':             (  1, 'IEM_MC_FETCH_MEM_FLAT_XMM_NO_AC' ),
    928         'IEM_MC_FETCH_MEM_XMM_ALIGN_SSE':         (  1, 'IEM_MC_FETCH_MEM_FLAT_XMM_ALIGN_SSE' ),
    929         'IEM_MC_FETCH_MEM_XMM_U32':               (  2, 'IEM_MC_FETCH_MEM_FLAT_XMM_U32' ),
    930         'IEM_MC_FETCH_MEM_XMM_U64':               (  2, 'IEM_MC_FETCH_MEM_FLAT_XMM_U64' ),
    931         'IEM_MC_FETCH_MEM_U256':                  (  1, 'IEM_MC_FETCH_MEM_FLAT_U256' ),
    932         'IEM_MC_FETCH_MEM_U256_NO_AC':            (  1, 'IEM_MC_FETCH_MEM_FLAT_U256_NO_AC' ),
    933         'IEM_MC_FETCH_MEM_U256_ALIGN_AVX':        (  1, 'IEM_MC_FETCH_MEM_FLAT_U256_ALIGN_AVX' ),
    934         'IEM_MC_FETCH_MEM_YMM':                   (  1, 'IEM_MC_FETCH_MEM_FLAT_YMM' ),
    935         'IEM_MC_FETCH_MEM_YMM_NO_AC':             (  1, 'IEM_MC_FETCH_MEM_FLAT_YMM_NO_AC' ),
    936         'IEM_MC_FETCH_MEM_YMM_ALIGN_AVX':         (  1, 'IEM_MC_FETCH_MEM_FLAT_YMM_ALIGN_AVX' ),
    937         'IEM_MC_FETCH_MEM_U8_ZX_U16':             (  1, 'IEM_MC_FETCH_MEM_FLAT_U8_ZX_U16' ),
    938         'IEM_MC_FETCH_MEM_U8_ZX_U32':             (  1, 'IEM_MC_FETCH_MEM_FLAT_U8_ZX_U32' ),
    939         'IEM_MC_FETCH_MEM_U8_ZX_U64':             (  1, 'IEM_MC_FETCH_MEM_FLAT_U8_ZX_U64' ),
    940         'IEM_MC_FETCH_MEM_U16_ZX_U32':            (  1, 'IEM_MC_FETCH_MEM_FLAT_U16_ZX_U32' ),
    941         'IEM_MC_FETCH_MEM_U16_ZX_U64':            (  1, 'IEM_MC_FETCH_MEM_FLAT_U16_ZX_U64' ),
    942         'IEM_MC_FETCH_MEM_U32_ZX_U64':            (  1, 'IEM_MC_FETCH_MEM_FLAT_U32_ZX_U64' ),
    943         'IEM_MC_FETCH_MEM_U8_SX_U16':             (  1, 'IEM_MC_FETCH_MEM_FLAT_U8_SX_U16' ),
    944         'IEM_MC_FETCH_MEM_U8_SX_U32':             (  1, 'IEM_MC_FETCH_MEM_FLAT_U8_SX_U32' ),
    945         'IEM_MC_FETCH_MEM_U8_SX_U64':             (  1, 'IEM_MC_FETCH_MEM_FLAT_U8_SX_U64' ),
    946         'IEM_MC_FETCH_MEM_U16_SX_U32':            (  1, 'IEM_MC_FETCH_MEM_FLAT_U16_SX_U32' ),
    947         'IEM_MC_FETCH_MEM_U16_SX_U64':            (  1, 'IEM_MC_FETCH_MEM_FLAT_U16_SX_U64' ),
    948         'IEM_MC_FETCH_MEM_U32_SX_U64':            (  1, 'IEM_MC_FETCH_MEM_FLAT_U32_SX_U64' ),
    949         'IEM_MC_FETCH_MEM_U128_AND_XREG_U128':          (  2, 'IEM_MC_FETCH_MEM_FLAT_U128_AND_XREG_U128' ),
    950         'IEM_MC_FETCH_MEM_XMM_ALIGN_SSE_AND_XREG_XMM':  (  2, 'IEM_MC_FETCH_MEM_FLAT_XMM_ALIGN_SSE_AND_XREG_XMM' ),
    951         'IEM_MC_FETCH_MEM_XMM_NO_AC_AND_XREG_XMM':      (  2, 'IEM_MC_FETCH_MEM_FLAT_XMM_NO_AC_AND_XREG_XMM' ),
    952         'IEM_MC_FETCH_MEM_XMM_U32_AND_XREG_XMM':        (  3, 'IEM_MC_FETCH_MEM_FLAT_XMM_U32_AND_XREG_XMM' ),
    953         'IEM_MC_FETCH_MEM_XMM_U64_AND_XREG_XMM':        (  3, 'IEM_MC_FETCH_MEM_FLAT_XMM_U64_AND_XREG_XMM' ),
    954         'IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_RAX_RDX_U64':
     904        'IEM_MC_FETCH_MEM_SEG_U8':                (  1, 'IEM_MC_FETCH_MEM_FLAT_U8' ),
     905        'IEM_MC_FETCH_MEM16_SEG_U8':              (  1, 'IEM_MC_FETCH_MEM16_FLAT_U8' ),
     906        'IEM_MC_FETCH_MEM32_SEG_U8':              (  1, 'IEM_MC_FETCH_MEM32_FLAT_U8' ),
     907        'IEM_MC_FETCH_MEM_SEG_U16':               (  1, 'IEM_MC_FETCH_MEM_FLAT_U16' ),
     908        'IEM_MC_FETCH_MEM_SEG_U16_DISP':          (  1, 'IEM_MC_FETCH_MEM_FLAT_U16_DISP' ),
     909        'IEM_MC_FETCH_MEM_SEG_I16':               (  1, 'IEM_MC_FETCH_MEM_FLAT_I16' ),
     910        'IEM_MC_FETCH_MEM_SEG_I16_DISP':          (  1, 'IEM_MC_FETCH_MEM_FLAT_I16_DISP' ),
     911        'IEM_MC_FETCH_MEM_SEG_U32':               (  1, 'IEM_MC_FETCH_MEM_FLAT_U32' ),
     912        'IEM_MC_FETCH_MEM_SEG_U32_DISP':          (  1, 'IEM_MC_FETCH_MEM_FLAT_U32_DISP' ),
     913        'IEM_MC_FETCH_MEM_SEG_I32':               (  1, 'IEM_MC_FETCH_MEM_FLAT_I32' ),
     914        'IEM_MC_FETCH_MEM_SEG_I32_DISP':          (  1, 'IEM_MC_FETCH_MEM_FLAT_I32_DISP' ),
     915        'IEM_MC_FETCH_MEM_SEG_U64':               (  1, 'IEM_MC_FETCH_MEM_FLAT_U64' ),
     916        'IEM_MC_FETCH_MEM_SEG_U64_DISP':          (  1, 'IEM_MC_FETCH_MEM_FLAT_U64_DISP' ),
     917        'IEM_MC_FETCH_MEM_SEG_U64_ALIGN_U128':    (  1, 'IEM_MC_FETCH_MEM_FLAT_U64_ALIGN_U128' ),
     918        'IEM_MC_FETCH_MEM_SEG_I64':               (  1, 'IEM_MC_FETCH_MEM_FLAT_I64' ),
     919        'IEM_MC_FETCH_MEM_SEG_R32':               (  1, 'IEM_MC_FETCH_MEM_FLAT_R32' ),
     920        'IEM_MC_FETCH_MEM_SEG_R64':               (  1, 'IEM_MC_FETCH_MEM_FLAT_R64' ),
     921        'IEM_MC_FETCH_MEM_SEG_R80':               (  1, 'IEM_MC_FETCH_MEM_FLAT_R80' ),
     922        'IEM_MC_FETCH_MEM_SEG_D80':               (  1, 'IEM_MC_FETCH_MEM_FLAT_D80' ),
     923        'IEM_MC_FETCH_MEM_SEG_U128':              (  1, 'IEM_MC_FETCH_MEM_FLAT_U128' ),
     924        'IEM_MC_FETCH_MEM_SEG_U128_NO_AC':        (  1, 'IEM_MC_FETCH_MEM_FLAT_U128_NO_AC' ),
     925        'IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE':    (  1, 'IEM_MC_FETCH_MEM_FLAT_U128_ALIGN_SSE' ),
     926        'IEM_MC_FETCH_MEM_SEG_XMM':               (  1, 'IEM_MC_FETCH_MEM_FLAT_XMM' ),
     927        'IEM_MC_FETCH_MEM_SEG_XMM_NO_AC':         (  1, 'IEM_MC_FETCH_MEM_FLAT_XMM_NO_AC' ),
     928        'IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE':     (  1, 'IEM_MC_FETCH_MEM_FLAT_XMM_ALIGN_SSE' ),
     929        'IEM_MC_FETCH_MEM_SEG_XMM_U32':           (  2, 'IEM_MC_FETCH_MEM_FLAT_XMM_U32' ),
     930        'IEM_MC_FETCH_MEM_SEG_XMM_U64':           (  2, 'IEM_MC_FETCH_MEM_FLAT_XMM_U64' ),
     931        'IEM_MC_FETCH_MEM_SEG_U256':              (  1, 'IEM_MC_FETCH_MEM_FLAT_U256' ),
     932        'IEM_MC_FETCH_MEM_SEG_U256_NO_AC':        (  1, 'IEM_MC_FETCH_MEM_FLAT_U256_NO_AC' ),
     933        'IEM_MC_FETCH_MEM_SEG_U256_ALIGN_AVX':    (  1, 'IEM_MC_FETCH_MEM_FLAT_U256_ALIGN_AVX' ),
     934        'IEM_MC_FETCH_MEM_SEG_YMM':               (  1, 'IEM_MC_FETCH_MEM_FLAT_YMM' ),
     935        'IEM_MC_FETCH_MEM_SEG_YMM_NO_AC':         (  1, 'IEM_MC_FETCH_MEM_FLAT_YMM_NO_AC' ),
     936        'IEM_MC_FETCH_MEM_SEG_YMM_ALIGN_AVX':     (  1, 'IEM_MC_FETCH_MEM_FLAT_YMM_ALIGN_AVX' ),
     937        'IEM_MC_FETCH_MEM_SEG_U8_ZX_U16':         (  1, 'IEM_MC_FETCH_MEM_FLAT_U8_ZX_U16' ),
     938        'IEM_MC_FETCH_MEM_SEG_U8_ZX_U32':         (  1, 'IEM_MC_FETCH_MEM_FLAT_U8_ZX_U32' ),
     939        'IEM_MC_FETCH_MEM_SEG_U8_ZX_U64':         (  1, 'IEM_MC_FETCH_MEM_FLAT_U8_ZX_U64' ),
     940        'IEM_MC_FETCH_MEM_SEG_U16_ZX_U32':        (  1, 'IEM_MC_FETCH_MEM_FLAT_U16_ZX_U32' ),
     941        'IEM_MC_FETCH_MEM_SEG_U16_ZX_U64':        (  1, 'IEM_MC_FETCH_MEM_FLAT_U16_ZX_U64' ),
     942        'IEM_MC_FETCH_MEM_SEG_U32_ZX_U64':        (  1, 'IEM_MC_FETCH_MEM_FLAT_U32_ZX_U64' ),
     943        'IEM_MC_FETCH_MEM_SEG_U8_SX_U16':         (  1, 'IEM_MC_FETCH_MEM_FLAT_U8_SX_U16' ),
     944        'IEM_MC_FETCH_MEM_SEG_U8_SX_U32':         (  1, 'IEM_MC_FETCH_MEM_FLAT_U8_SX_U32' ),
     945        'IEM_MC_FETCH_MEM_SEG_U8_SX_U64':         (  1, 'IEM_MC_FETCH_MEM_FLAT_U8_SX_U64' ),
     946        'IEM_MC_FETCH_MEM_SEG_U16_SX_U32':        (  1, 'IEM_MC_FETCH_MEM_FLAT_U16_SX_U32' ),
     947        'IEM_MC_FETCH_MEM_SEG_U16_SX_U64':        (  1, 'IEM_MC_FETCH_MEM_FLAT_U16_SX_U64' ),
     948        'IEM_MC_FETCH_MEM_SEG_U32_SX_U64':        (  1, 'IEM_MC_FETCH_MEM_FLAT_U32_SX_U64' ),
     949        'IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128':          (  2, 'IEM_MC_FETCH_MEM_FLAT_U128_AND_XREG_U128' ),
     950        'IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE_AND_XREG_XMM':  (  2, 'IEM_MC_FETCH_MEM_FLAT_XMM_ALIGN_SSE_AND_XREG_XMM' ),
     951        'IEM_MC_FETCH_MEM_SEG_XMM_NO_AC_AND_XREG_XMM':      (  2, 'IEM_MC_FETCH_MEM_FLAT_XMM_NO_AC_AND_XREG_XMM' ),
     952        'IEM_MC_FETCH_MEM_SEG_XMM_U32_AND_XREG_XMM':        (  3, 'IEM_MC_FETCH_MEM_FLAT_XMM_U32_AND_XREG_XMM' ),
     953        'IEM_MC_FETCH_MEM_SEG_XMM_U64_AND_XREG_XMM':        (  3, 'IEM_MC_FETCH_MEM_FLAT_XMM_U64_AND_XREG_XMM' ),
     954        'IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_RAX_RDX_U64':
    955955            (  2, 'IEM_MC_FETCH_MEM_FLAT_U128_AND_XREG_U128_AND_RAX_RDX_U64' ),
    956         'IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64':
     956        'IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64':
    957957            (  2, 'IEM_MC_FETCH_MEM_FLAT_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64' ),
    958         'IEM_MC_FETCH_MEM_YMM_NO_AC_AND_YREG_YMM':  (  2, 'IEM_MC_FETCH_MEM_FLAT_YMM_ALIGN_AVX_AND_YREG_YMM' ),
     958        'IEM_MC_FETCH_MEM_SEG_YMM_NO_AC_AND_YREG_YMM':  (  2, 'IEM_MC_FETCH_MEM_FLAT_YMM_ALIGN_AVX_AND_YREG_YMM' ),
    959959        'IEM_MC_STORE_MEM_U8':                    (  0, 'IEM_MC_STORE_MEM_FLAT_U8' ),
    960960        'IEM_MC_STORE_MEM_U16':                   (  0, 'IEM_MC_STORE_MEM_FLAT_U16' ),
     
    17181718    ## Used by analyzeAndAnnotateName for memory MC blocks.
    17191719    kdAnnotateNameMemStmts = {
    1720         'IEM_MC_FETCH_MEM16_U8':                    '__mem8',
    1721         'IEM_MC_FETCH_MEM32_U8':                    '__mem8',
    1722         'IEM_MC_FETCH_MEM_D80':                     '__mem80',
    1723         'IEM_MC_FETCH_MEM_I16':                     '__mem16',
    1724         'IEM_MC_FETCH_MEM_I32':                     '__mem32',
    1725         'IEM_MC_FETCH_MEM_I64':                     '__mem64',
    1726         'IEM_MC_FETCH_MEM_R32':                     '__mem32',
    1727         'IEM_MC_FETCH_MEM_R64':                     '__mem64',
    1728         'IEM_MC_FETCH_MEM_R80':                     '__mem80',
    1729         'IEM_MC_FETCH_MEM_U128':                    '__mem128',
    1730         'IEM_MC_FETCH_MEM_U128_ALIGN_SSE':          '__mem128',
    1731         'IEM_MC_FETCH_MEM_U128_NO_AC':              '__mem128',
    1732         'IEM_MC_FETCH_MEM_U16':                     '__mem16',
    1733         'IEM_MC_FETCH_MEM_U16_DISP':                '__mem16',
    1734         'IEM_MC_FETCH_MEM_U16_SX_U32':              '__mem16sx32',
    1735         'IEM_MC_FETCH_MEM_U16_SX_U64':              '__mem16sx64',
    1736         'IEM_MC_FETCH_MEM_U16_ZX_U32':              '__mem16zx32',
    1737         'IEM_MC_FETCH_MEM_U16_ZX_U64':              '__mem16zx64',
    1738         'IEM_MC_FETCH_MEM_U256':                    '__mem256',
    1739         'IEM_MC_FETCH_MEM_U256_ALIGN_AVX':          '__mem256',
    1740         'IEM_MC_FETCH_MEM_U256_NO_AC':              '__mem256',
    1741         'IEM_MC_FETCH_MEM_U32':                     '__mem32',
    1742         'IEM_MC_FETCH_MEM_U32_DISP':                '__mem32',
    1743         'IEM_MC_FETCH_MEM_U32_SX_U64':              '__mem32sx64',
    1744         'IEM_MC_FETCH_MEM_U32_ZX_U64':              '__mem32zx64',
    1745         'IEM_MC_FETCH_MEM_U64':                     '__mem64',
    1746         'IEM_MC_FETCH_MEM_U64_ALIGN_U128':          '__mem64',
    1747         'IEM_MC_FETCH_MEM_U64_DISP':                '__mem64',
    1748         'IEM_MC_FETCH_MEM_U8':                      '__mem8',
    1749         'IEM_MC_FETCH_MEM_U8_DISP':                 '__mem8',
    1750         'IEM_MC_FETCH_MEM_U8_SX_U16':               '__mem8sx16',
    1751         'IEM_MC_FETCH_MEM_U8_SX_U32':               '__mem8sx32',
    1752         'IEM_MC_FETCH_MEM_U8_SX_U64':               '__mem8sx64',
    1753         'IEM_MC_FETCH_MEM_U8_ZX_U16':               '__mem8zx16',
    1754         'IEM_MC_FETCH_MEM_U8_ZX_U32':               '__mem8zx32',
    1755         'IEM_MC_FETCH_MEM_U8_ZX_U64':               '__mem8zx64',
    1756         'IEM_MC_FETCH_MEM_XMM':                     '__mem128',
    1757         'IEM_MC_FETCH_MEM_XMM_ALIGN_SSE':           '__mem128',
    1758         'IEM_MC_FETCH_MEM_XMM_NO_AC':               '__mem128',
    1759         'IEM_MC_FETCH_MEM_XMM_U32':                 '__mem32',
    1760         'IEM_MC_FETCH_MEM_XMM_U64':                 '__mem64',
    1761         'IEM_MC_FETCH_MEM_U128_AND_XREG_U128':      '__mem128',
    1762         'IEM_MC_FETCH_MEM_XMM_ALIGN_SSE_AND_XREG_XMM': '__mem128',
    1763         'IEM_MC_FETCH_MEM_XMM_NO_AC_AND_XREG_XMM': '__mem128',
    1764         'IEM_MC_FETCH_MEM_XMM_U32_AND_XREG_XMM':    '__mem32',
    1765         'IEM_MC_FETCH_MEM_XMM_U64_AND_XREG_XMM':    '__mem64',
    1766         'IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_RAX_RDX_U64': '__mem128',
    1767         'IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64': '__mem128',
     1720        'IEM_MC_FETCH_MEM16_SEG_U8':                '__mem8',
     1721        'IEM_MC_FETCH_MEM32_SEG_U8':                '__mem8',
     1722        'IEM_MC_FETCH_MEM_SEG_D80':                 '__mem80',
     1723        'IEM_MC_FETCH_MEM_SEG_I16':                 '__mem16',
     1724        'IEM_MC_FETCH_MEM_SEG_I32':                 '__mem32',
     1725        'IEM_MC_FETCH_MEM_SEG_I64':                 '__mem64',
     1726        'IEM_MC_FETCH_MEM_SEG_R32':                 '__mem32',
     1727        'IEM_MC_FETCH_MEM_SEG_R64':                 '__mem64',
     1728        'IEM_MC_FETCH_MEM_SEG_R80':                 '__mem80',
     1729        'IEM_MC_FETCH_MEM_SEG_U128':                '__mem128',
     1730        'IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE':      '__mem128',
     1731        'IEM_MC_FETCH_MEM_SEG_U128_NO_AC':          '__mem128',
     1732        'IEM_MC_FETCH_MEM_SEG_U16':                 '__mem16',
     1733        'IEM_MC_FETCH_MEM_SEG_U16_DISP':            '__mem16',
     1734        'IEM_MC_FETCH_MEM_SEG_U16_SX_U32':          '__mem16sx32',
     1735        'IEM_MC_FETCH_MEM_SEG_U16_SX_U64':          '__mem16sx64',
     1736        'IEM_MC_FETCH_MEM_SEG_U16_ZX_U32':          '__mem16zx32',
     1737        'IEM_MC_FETCH_MEM_SEG_U16_ZX_U64':          '__mem16zx64',
     1738        'IEM_MC_FETCH_MEM_SEG_U256':                '__mem256',
     1739        'IEM_MC_FETCH_MEM_SEG_U256_ALIGN_AVX':      '__mem256',
     1740        'IEM_MC_FETCH_MEM_SEG_U256_NO_AC':          '__mem256',
     1741        'IEM_MC_FETCH_MEM_SEG_U32':                 '__mem32',
     1742        'IEM_MC_FETCH_MEM_SEG_U32_DISP':            '__mem32',
     1743        'IEM_MC_FETCH_MEM_SEG_U32_SX_U64':          '__mem32sx64',
     1744        'IEM_MC_FETCH_MEM_SEG_U32_ZX_U64':          '__mem32zx64',
     1745        'IEM_MC_FETCH_MEM_SEG_U64':                 '__mem64',
     1746        'IEM_MC_FETCH_MEM_SEG_U64_ALIGN_U128':      '__mem64',
     1747        'IEM_MC_FETCH_MEM_SEG_U64_DISP':            '__mem64',
     1748        'IEM_MC_FETCH_MEM_SEG_U8':                  '__mem8',
     1749        'IEM_MC_FETCH_MEM_SEG_U8_DISP':             '__mem8',
     1750        'IEM_MC_FETCH_MEM_SEG_U8_SX_U16':           '__mem8sx16',
     1751        'IEM_MC_FETCH_MEM_SEG_U8_SX_U32':           '__mem8sx32',
     1752        'IEM_MC_FETCH_MEM_SEG_U8_SX_U64':           '__mem8sx64',
     1753        'IEM_MC_FETCH_MEM_SEG_U8_ZX_U16':           '__mem8zx16',
     1754        'IEM_MC_FETCH_MEM_SEG_U8_ZX_U32':           '__mem8zx32',
     1755        'IEM_MC_FETCH_MEM_SEG_U8_ZX_U64':           '__mem8zx64',
     1756        'IEM_MC_FETCH_MEM_SEG_XMM':                 '__mem128',
     1757        'IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE':       '__mem128',
     1758        'IEM_MC_FETCH_MEM_SEG_XMM_NO_AC':           '__mem128',
     1759        'IEM_MC_FETCH_MEM_SEG_XMM_U32':             '__mem32',
     1760        'IEM_MC_FETCH_MEM_SEG_XMM_U64':             '__mem64',
     1761        'IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128':  '__mem128',
     1762        'IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE_AND_XREG_XMM': '__mem128',
     1763        'IEM_MC_FETCH_MEM_SEG_XMM_NO_AC_AND_XREG_XMM': '__mem128',
     1764        'IEM_MC_FETCH_MEM_SEG_XMM_U32_AND_XREG_XMM': '__mem32',
     1765        'IEM_MC_FETCH_MEM_SEG_XMM_U64_AND_XREG_XMM': '__mem64',
     1766        'IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_RAX_RDX_U64': '__mem128',
     1767        'IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64': '__mem128',
    17681768
    17691769        'IEM_MC_STORE_MEM_I16_CONST_BY_REF':        '__mem16',
     
    22552255            asVariations = (ThreadedFunctionVariation.ksVariation_Default,);
    22562256
    2257         elif iai.McStmt.findStmtByNames(aoStmts, { 'IEM_MC_CALC_RM_EFF_ADDR' : True,
    2258                                                    'IEM_MC_FETCH_MEM_U8'  : True,  # mov_AL_Ob ++
    2259                                                    'IEM_MC_FETCH_MEM_U16' : True,  # mov_rAX_Ov ++
    2260                                                    'IEM_MC_FETCH_MEM_U32' : True,
    2261                                                    'IEM_MC_FETCH_MEM_U64' : True,
     2257        elif iai.McStmt.findStmtByNames(aoStmts, { 'IEM_MC_CALC_RM_EFF_ADDR'  : True,
     2258                                                   'IEM_MC_FETCH_MEM_SEG_U8'  : True,  # mov_AL_Ob ++
     2259                                                   'IEM_MC_FETCH_MEM_SEG_U16' : True,  # mov_rAX_Ov ++
     2260                                                   'IEM_MC_FETCH_MEM_SEG_U32' : True,
     2261                                                   'IEM_MC_FETCH_MEM_SEG_U64' : True,
    22622262                                                   'IEM_MC_STORE_MEM_U8'  : True,  # mov_Ob_AL ++
    22632263                                                   'IEM_MC_STORE_MEM_U16' : True,  # mov_Ov_rAX ++
  • trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllInstCommon-x86.cpp.h

    r108267 r108288  
    946946                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    947947                IEM_MC_ARG(uint16_t,        offSeg,                                  1);
    948                 IEM_MC_FETCH_MEM_U16(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEff); /** @todo check memory access pattern */
     948                IEM_MC_FETCH_MEM_SEG_U16(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEff); /** @todo check memory access pattern */
    949949                IEM_MC_ARG(uint16_t,        uSel,                                    0);
    950                 IEM_MC_FETCH_MEM_U16_DISP(uSel, pVCpu->iem.s.iEffSeg, GCPtrEff, 2);
     950                IEM_MC_FETCH_MEM_SEG_U16_DISP(uSel, pVCpu->iem.s.iEffSeg, GCPtrEff, 2);
    951951                IEM_MC_ARG_CONST(uint8_t,   iSegRegArg,/*=*/iSegReg,                 2);
    952952                IEM_MC_ARG_CONST(uint8_t,   iGRegArg,  /*=*/iGReg,                   3);
     
    968968                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    969969                IEM_MC_ARG(uint16_t,        offSeg,                                  1);
    970                 IEM_MC_FETCH_MEM_U16(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEff); /** @todo check memory access pattern */
     970                IEM_MC_FETCH_MEM_SEG_U16(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEff); /** @todo check memory access pattern */
    971971                IEM_MC_ARG(uint16_t,        uSel,                                    0);
    972                 IEM_MC_FETCH_MEM_U16_DISP(uSel, pVCpu->iem.s.iEffSeg, GCPtrEff, 2);
     972                IEM_MC_FETCH_MEM_SEG_U16_DISP(uSel, pVCpu->iem.s.iEffSeg, GCPtrEff, 2);
    973973                IEM_MC_ARG_CONST(uint8_t,   iSegRegArg,/*=*/iSegReg,                 2);
    974974                IEM_MC_ARG_CONST(uint8_t,   iGRegArg,  /*=*/iGReg,                   3);
     
    992992                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    993993                IEM_MC_ARG(uint32_t,        offSeg,                                  1);    /** @todo check memory access pattern */
    994                 IEM_MC_FETCH_MEM_U32(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEff);
     994                IEM_MC_FETCH_MEM_SEG_U32(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEff);
    995995                IEM_MC_ARG(uint16_t,        uSel,                                    0);
    996                 IEM_MC_FETCH_MEM_U16_DISP(uSel, pVCpu->iem.s.iEffSeg, GCPtrEff, 4);
     996                IEM_MC_FETCH_MEM_SEG_U16_DISP(uSel, pVCpu->iem.s.iEffSeg, GCPtrEff, 4);
    997997                IEM_MC_ARG_CONST(uint8_t,   iSegRegArg,/*=*/iSegReg,                 2);
    998998                IEM_MC_ARG_CONST(uint8_t,   iGRegArg,  /*=*/iGReg,                   3);
     
    10141014                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    10151015                IEM_MC_ARG(uint32_t,        offSeg,                                  1);    /** @todo check memory access pattern */
    1016                 IEM_MC_FETCH_MEM_U32(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEff);
     1016                IEM_MC_FETCH_MEM_SEG_U32(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEff);
    10171017                IEM_MC_ARG(uint16_t,        uSel,                                    0);
    1018                 IEM_MC_FETCH_MEM_U16_DISP(uSel, pVCpu->iem.s.iEffSeg, GCPtrEff, 4);
     1018                IEM_MC_FETCH_MEM_SEG_U16_DISP(uSel, pVCpu->iem.s.iEffSeg, GCPtrEff, 4);
    10191019                IEM_MC_ARG_CONST(uint8_t,   iSegRegArg,/*=*/iSegReg,                 2);
    10201020                IEM_MC_ARG_CONST(uint8_t,   iGRegArg,  /*=*/iGReg,                   3);
     
    10391039IEM_MC_NO_NATIVE_RECOMPILE(); /** @todo sort out the IEM_IS_GUEST_CPU_AMD stuff. */
    10401040            if (IEM_IS_GUEST_CPU_AMD(pVCpu)) /** @todo testcase: rev 3.15 of the amd manuals claims it only loads a 32-bit greg. */
    1041                 IEM_MC_FETCH_MEM_U32_SX_U64(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEff);
     1041                IEM_MC_FETCH_MEM_SEG_U32_SX_U64(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEff);
    10421042            else
    1043                 IEM_MC_FETCH_MEM_U64(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEff);
    1044             IEM_MC_FETCH_MEM_U16_DISP(uSel, pVCpu->iem.s.iEffSeg, GCPtrEff, 8);
     1043                IEM_MC_FETCH_MEM_SEG_U64(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEff);
     1044            IEM_MC_FETCH_MEM_SEG_U16_DISP(uSel, pVCpu->iem.s.iEffSeg, GCPtrEff, 8);
    10451045            IEM_MC_ARG_CONST(uint8_t,   iSegRegArg,/*=*/iSegReg,                 2);
    10461046            IEM_MC_ARG_CONST(uint8_t,   iGRegArg,  /*=*/iGReg,                   3);
  • trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllInstCommonBodyMacros-x86.h

    r108267 r108288  
    133133                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    134134                IEM_MC_ARG(uint16_t,        u16Src,     2); \
    135                 IEM_MC_FETCH_MEM_U16(u16Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     135                IEM_MC_FETCH_MEM_SEG_U16(u16Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    136136                IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    137137                    IEM_MC_LOCAL(uint16_t,  u16Dst); \
     
    158158                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    159159                IEM_MC_ARG(uint32_t,        u32Src,     2); \
    160                 IEM_MC_FETCH_MEM_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     160                IEM_MC_FETCH_MEM_SEG_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    161161                IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    162162                    IEM_MC_LOCAL(uint32_t,  u32Dst); \
     
    184184                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    185185                IEM_MC_ARG(uint64_t,        u64Src,  2); \
    186                 IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     186                IEM_MC_FETCH_MEM_SEG_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    187187                IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    188188                    IEM_MC_LOCAL(uint64_t,  u64Dst); \
     
    309309                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    310310                IEM_MC_ARG(uint16_t,   u16Src,  1); \
    311                 IEM_MC_FETCH_MEM_U16(u16Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     311                IEM_MC_FETCH_MEM_SEG_U16(u16Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    312312                IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    313313                    IEM_MC_LOCAL(uint16_t,  u16Dst); \
     
    334334                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    335335                IEM_MC_ARG(uint32_t,   u32Src,  1); \
    336                 IEM_MC_FETCH_MEM_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     336                IEM_MC_FETCH_MEM_SEG_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    337337                IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    338338                    IEM_MC_LOCAL(uint32_t,  u32Dst); \
     
    360360                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    361361                IEM_MC_ARG(uint64_t,   u64Src,  1); \
    362                 IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     362                IEM_MC_FETCH_MEM_SEG_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    363363                IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    364364                    IEM_MC_LOCAL(uint64_t,  u64Dst); \
  • trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllInstOneByte-x86.cpp.h

    r108287 r108288  
    201201            IEM_MC_NATIVE_IF(0) { \
    202202                IEM_MC_LOCAL(uint8_t,       u8Dst); \
    203                 IEM_MC_FETCH_MEM_U8(u8Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     203                IEM_MC_FETCH_MEM_SEG_U8(u8Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    204204                IEM_MC_LOCAL(uint8_t,       u8SrcEmit); \
    205205                IEM_MC_FETCH_GREG_U8(u8SrcEmit, IEM_GET_MODRM_REG(pVCpu, a_bRm)); \
     
    271271        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    272272        IEM_MC_ARG(uint8_t,         u8Src,      2); \
    273         IEM_MC_FETCH_MEM_U8(u8Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     273        IEM_MC_FETCH_MEM_SEG_U8(u8Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    274274        IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    275275            IEM_MC_LOCAL(uint8_t,   u8Dst); \
     
    330330        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    331331        IEM_MC_ARG(uint8_t,         u8Src,      2); \
    332         IEM_MC_FETCH_MEM_U8(u8Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     332        IEM_MC_FETCH_MEM_SEG_U8(u8Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    333333        IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    334334            IEM_MC_LOCAL(uint8_t,   u8Dst); \
     
    677677                    IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    678678                        IEM_MC_LOCAL(uint16_t,      u16Dst); \
    679                         IEM_MC_FETCH_MEM_U16(u16Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     679                        IEM_MC_FETCH_MEM_SEG_U16(u16Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    680680                        IEM_MC_LOCAL(uint16_t,      u16SrcEmit); \
    681681                        IEM_MC_FETCH_GREG_U16(u16SrcEmit, IEM_GET_MODRM_REG(pVCpu, a_bRm)); \
     
    705705                    IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    706706                        IEM_MC_LOCAL(uint32_t,      u32Dst); \
    707                         IEM_MC_FETCH_MEM_U32(u32Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     707                        IEM_MC_FETCH_MEM_SEG_U32(u32Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    708708                        IEM_MC_LOCAL(uint32_t,      u32SrcEmit); \
    709709                        IEM_MC_FETCH_GREG_U32(u32SrcEmit, IEM_GET_MODRM_REG(pVCpu, a_bRm)); \
     
    733733                    IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    734734                        IEM_MC_LOCAL(uint64_t,      u64Dst); \
    735                         IEM_MC_FETCH_MEM_U64(u64Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     735                        IEM_MC_FETCH_MEM_SEG_U64(u64Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    736736                        IEM_MC_LOCAL(uint64_t,      u64SrcEmit); \
    737737                        IEM_MC_FETCH_GREG_U64(u64SrcEmit, IEM_GET_MODRM_REG(pVCpu, a_bRm)); \
     
    20292029                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    20302030                IEM_MC_ARG(uint16_t,        u16Src,     2); \
    2031                 IEM_MC_FETCH_MEM_U16(u16Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     2031                IEM_MC_FETCH_MEM_SEG_U16(u16Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    20322032                IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    20332033                    IEM_MC_LOCAL(uint16_t,  u16Dst); \
     
    20532053                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    20542054                IEM_MC_ARG(uint32_t,        u32Src,  2); \
    2055                 IEM_MC_FETCH_MEM_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     2055                IEM_MC_FETCH_MEM_SEG_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    20562056                IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    20572057                    IEM_MC_LOCAL(uint32_t,  u32Dst); \
     
    20772077                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    20782078                IEM_MC_ARG(uint64_t,        u64Src,     2); \
    2079                 IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     2079                IEM_MC_FETCH_MEM_SEG_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    20802080                IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    20812081                    IEM_MC_LOCAL(uint64_t,  u64Dst); \
     
    30763076
    30773077                IEM_MC_FETCH_GREG_I16(i16Index, IEM_GET_MODRM_REG_8(bRm));
    3078                 IEM_MC_FETCH_MEM_I16(i16LowerBounds, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    3079                 IEM_MC_FETCH_MEM_I16_DISP(i16UpperBounds, pVCpu->iem.s.iEffSeg, GCPtrEffSrc, 2);
     3078                IEM_MC_FETCH_MEM_SEG_I16(i16LowerBounds, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3079                IEM_MC_FETCH_MEM_SEG_I16_DISP(i16UpperBounds, pVCpu->iem.s.iEffSeg, GCPtrEffSrc, 2);
    30803080
    30813081                IEM_MC_CALL_CIMPL_3(0, 0, iemCImpl_bound_16, i16Index, i16LowerBounds, i16UpperBounds); /* returns */
     
    30943094
    30953095                IEM_MC_FETCH_GREG_I32(i32Index, IEM_GET_MODRM_REG_8(bRm));
    3096                 IEM_MC_FETCH_MEM_I32(i32LowerBounds, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    3097                 IEM_MC_FETCH_MEM_I32_DISP(i32UpperBounds, pVCpu->iem.s.iEffSeg, GCPtrEffSrc, 4);
     3096                IEM_MC_FETCH_MEM_SEG_I32(i32LowerBounds, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3097                IEM_MC_FETCH_MEM_SEG_I32_DISP(i32UpperBounds, pVCpu->iem.s.iEffSeg, GCPtrEffSrc, 4);
    30983098
    30993099                IEM_MC_CALL_CIMPL_3(0, 0, iemCImpl_bound_32, i32Index, i32LowerBounds, i32UpperBounds); /* returns */
     
    32233223            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    32243224            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    3225             IEM_MC_FETCH_MEM_U32_SX_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     3225            IEM_MC_FETCH_MEM_SEG_U32_SX_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    32263226            IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Value);
    32273227            IEM_MC_ADVANCE_PC_AND_FINISH();
     
    34163416
    34173417                IEM_MC_LOCAL(uint16_t,      u16Tmp);
    3418                 IEM_MC_FETCH_MEM_U16(u16Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     3418                IEM_MC_FETCH_MEM_SEG_U16(u16Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    34193419
    34203420                IEM_MC_ARG_LOCAL_REF(uint16_t *,    pu16Dst,    u16Tmp,     1);
     
    34643464
    34653465                IEM_MC_LOCAL(uint32_t,      u32Tmp);
    3466                 IEM_MC_FETCH_MEM_U32(u32Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     3466                IEM_MC_FETCH_MEM_SEG_U32(u32Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    34673467
    34683468                IEM_MC_ARG_LOCAL_REF(uint32_t *,    pu32Dst,    u32Tmp,     1);
     
    35123512
    35133513                IEM_MC_LOCAL(uint64_t,      u64Tmp);
    3514                 IEM_MC_FETCH_MEM_U64(u64Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     3514                IEM_MC_FETCH_MEM_SEG_U64(u64Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    35153515
    35163516                IEM_MC_ARG_LOCAL_REF(uint64_t *,    pu64Dst,      u64Tmp,                   1);
     
    36213621
    36223622                IEM_MC_LOCAL(uint16_t,      u16Tmp);
    3623                 IEM_MC_FETCH_MEM_U16(u16Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     3623                IEM_MC_FETCH_MEM_SEG_U16(u16Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    36243624
    36253625                IEM_MC_ARG_LOCAL_REF(uint16_t *,    pu16Dst,    u16Tmp,         1);
     
    36693669
    36703670                IEM_MC_LOCAL(uint32_t,      u32Tmp);
    3671                 IEM_MC_FETCH_MEM_U32(u32Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     3671                IEM_MC_FETCH_MEM_SEG_U32(u32Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    36723672
    36733673                IEM_MC_ARG_LOCAL_REF(uint32_t *,    pu32Dst, u32Tmp,            1);
     
    37173717
    37183718                IEM_MC_LOCAL(uint64_t,      u64Tmp);
    3719                 IEM_MC_FETCH_MEM_U64(u64Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     3719                IEM_MC_FETCH_MEM_SEG_U64(u64Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    37203720
    37213721                IEM_MC_ARG_LOCAL_REF(uint64_t *,    pu64Dst,      u64Tmp,                   1);
     
    45054505            IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    45064506                IEM_MC_LOCAL(uint8_t,       u8Dst); \
    4507                 IEM_MC_FETCH_MEM_U8(u8Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     4507                IEM_MC_FETCH_MEM_SEG_U8(u8Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    45084508                IEM_MC_LOCAL_EFLAGS(uEFlags); \
    45094509                IEM_MC_NATIVE_EMIT_3(RT_CONCAT3(iemNativeEmit_,a_InsNm,_r_i_efl)IEM_TEMPL_ARG_2(8, 8), u8Dst, u8Imm, uEFlags); \
     
    50065006                    IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    50075007                        IEM_MC_LOCAL(uint16_t,      u16Dst); \
    5008                         IEM_MC_FETCH_MEM_U16(u16Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     5008                        IEM_MC_FETCH_MEM_SEG_U16(u16Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    50095009                        IEM_MC_LOCAL_EFLAGS(uEFlags); \
    50105010                        IEM_MC_NATIVE_EMIT_3(RT_CONCAT3(iemNativeEmit_,a_InsNm,_r_i_efl)IEM_TEMPL_ARG_2(16, 16), u16Dst, u16Imm, uEFlags); \
     
    50345034                    IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    50355035                        IEM_MC_LOCAL(uint32_t,      u32Dst); \
    5036                         IEM_MC_FETCH_MEM_U32(u32Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     5036                        IEM_MC_FETCH_MEM_SEG_U32(u32Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    50375037                        IEM_MC_LOCAL_EFLAGS(uEFlags); \
    50385038                        IEM_MC_NATIVE_EMIT_3(RT_CONCAT3(iemNativeEmit_,a_InsNm,_r_i_efl)IEM_TEMPL_ARG_2(32, 32), u32Dst, u32Imm, uEFlags); \
     
    50625062                    IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    50635063                        IEM_MC_LOCAL(uint64_t,      u64Dst); \
    5064                         IEM_MC_FETCH_MEM_U64(u64Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     5064                        IEM_MC_FETCH_MEM_SEG_U64(u64Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    50655065                        IEM_MC_LOCAL_EFLAGS(        uEFlags); \
    50665066                        IEM_MC_NATIVE_EMIT_3(RT_CONCAT3(iemNativeEmit_,a_InsNm,_r_i_efl)IEM_TEMPL_ARG_2(64, 32), u64Dst, u64Imm, uEFlags); \
     
    55555555                    IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    55565556                        IEM_MC_LOCAL(uint16_t,      u16Dst); \
    5557                         IEM_MC_FETCH_MEM_U16(u16Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     5557                        IEM_MC_FETCH_MEM_SEG_U16(u16Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    55585558                        IEM_MC_LOCAL_EFLAGS(        uEFlags); \
    55595559                        IEM_MC_NATIVE_EMIT_3(RT_CONCAT3(iemNativeEmit_,a_InsNm,_r_i_efl)IEM_TEMPL_ARG_2(16, 8), u16Dst, (uint16_t)(int16_t)(int8_t)u8Imm, uEFlags); \
     
    55815581                    IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    55825582                        IEM_MC_LOCAL(uint32_t,      u32Dst); \
    5583                         IEM_MC_FETCH_MEM_U32(u32Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     5583                        IEM_MC_FETCH_MEM_SEG_U32(u32Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    55845584                        IEM_MC_LOCAL_EFLAGS(        uEFlags); \
    55855585                        IEM_MC_NATIVE_EMIT_3(RT_CONCAT3(iemNativeEmit_,a_InsNm,_r_i_efl)IEM_TEMPL_ARG_2(32, 8), u32Dst, (uint32_t)(int32_t)(int8_t)u8Imm, uEFlags); \
     
    56075607                    IEM_MC_NATIVE_IF(a_fNativeArchs) { \
    56085608                        IEM_MC_LOCAL(uint64_t,      u64Dst); \
    5609                         IEM_MC_FETCH_MEM_U64(u64Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     5609                        IEM_MC_FETCH_MEM_SEG_U64(u64Dst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    56105610                        IEM_MC_LOCAL_EFLAGS(        uEFlags); \
    56115611                        IEM_MC_NATIVE_EMIT_3(RT_CONCAT3(iemNativeEmit_,a_InsNm,_r_i_efl)IEM_TEMPL_ARG_2(64, 8), u64Dst, (uint64_t)(int64_t)(int8_t)u8Imm, uEFlags); \
     
    62656265        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    62666266        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    6267         IEM_MC_FETCH_MEM_U8(u8Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     6267        IEM_MC_FETCH_MEM_SEG_U8(u8Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    62686268        IEM_MC_STORE_GREG_U8(IEM_GET_MODRM_REG(pVCpu, bRm), u8Value);
    62696269        IEM_MC_ADVANCE_PC_AND_FINISH();
     
    63356335                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    63366336                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    6337                 IEM_MC_FETCH_MEM_U16(u16Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     6337                IEM_MC_FETCH_MEM_SEG_U16(u16Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    63386338                IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16Value);
    63396339                IEM_MC_ADVANCE_PC_AND_FINISH();
     
    63476347                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    63486348                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    6349                 IEM_MC_FETCH_MEM_U32(u32Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     6349                IEM_MC_FETCH_MEM_SEG_U32(u32Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    63506350                IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Value);
    63516351                IEM_MC_ADVANCE_PC_AND_FINISH();
     
    63596359                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    63606360                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    6361                 IEM_MC_FETCH_MEM_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     6361                IEM_MC_FETCH_MEM_SEG_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    63626362                IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Value);
    63636363                IEM_MC_ADVANCE_PC_AND_FINISH();
     
    66086608            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \
    66096609            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    6610             IEM_MC_FETCH_MEM_U16(u16Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     6610            IEM_MC_FETCH_MEM_SEG_U16(u16Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    66116611            IEM_MC_CALL_CIMPL_2(a_fCImplFlags, \
    66126612                                  RT_BIT_64(kIemNativeGstReg_SegSelFirst    + iSegReg) \
     
    72527252    IEM_MC_LOCAL(uint8_t, u8Tmp);
    72537253    IEM_MC_LOCAL_CONST(RTGCPTR, GCPtrMemOff, GCPtrMemOffDecode);
    7254     IEM_MC_FETCH_MEM_U8(u8Tmp, pVCpu->iem.s.iEffSeg, GCPtrMemOff);
     7254    IEM_MC_FETCH_MEM_SEG_U8(u8Tmp, pVCpu->iem.s.iEffSeg, GCPtrMemOff);
    72557255    IEM_MC_STORE_GREG_U8(X86_GREG_xAX, u8Tmp);
    72567256    IEM_MC_ADVANCE_PC_AND_FINISH();
     
    72817281            IEM_MC_LOCAL(uint16_t, u16Tmp);
    72827282            IEM_MC_LOCAL_CONST(RTGCPTR, GCPtrMemOff, GCPtrMemOffDecode);
    7283             IEM_MC_FETCH_MEM_U16(u16Tmp, pVCpu->iem.s.iEffSeg, GCPtrMemOff);
     7283            IEM_MC_FETCH_MEM_SEG_U16(u16Tmp, pVCpu->iem.s.iEffSeg, GCPtrMemOff);
    72847284            IEM_MC_STORE_GREG_U16(X86_GREG_xAX, u16Tmp);
    72857285            IEM_MC_ADVANCE_PC_AND_FINISH();
     
    72927292            IEM_MC_LOCAL(uint32_t, u32Tmp);
    72937293            IEM_MC_LOCAL_CONST(RTGCPTR, GCPtrMemOff, GCPtrMemOffDecode);
    7294             IEM_MC_FETCH_MEM_U32(u32Tmp, pVCpu->iem.s.iEffSeg, GCPtrMemOff);
     7294            IEM_MC_FETCH_MEM_SEG_U32(u32Tmp, pVCpu->iem.s.iEffSeg, GCPtrMemOff);
    72957295            IEM_MC_STORE_GREG_U32(X86_GREG_xAX, u32Tmp);
    72967296            IEM_MC_ADVANCE_PC_AND_FINISH();
     
    73037303            IEM_MC_LOCAL(uint64_t, u64Tmp);
    73047304            IEM_MC_LOCAL_CONST(RTGCPTR, GCPtrMemOff, GCPtrMemOffDecode);
    7305             IEM_MC_FETCH_MEM_U64(u64Tmp, pVCpu->iem.s.iEffSeg, GCPtrMemOff);
     7305            IEM_MC_FETCH_MEM_SEG_U64(u64Tmp, pVCpu->iem.s.iEffSeg, GCPtrMemOff);
    73067306            IEM_MC_STORE_GREG_U64(X86_GREG_xAX, u64Tmp);
    73077307            IEM_MC_ADVANCE_PC_AND_FINISH();
     
    74017401        IEM_MC_LOCAL(RTGCPTR,           uAddr); \
    74027402        IEM_MC_FETCH_GREG_U##AddrBits##_ZX_U64(uAddr, X86_GREG_xSI); \
    7403         IEM_MC_FETCH_MEM_U##ValBits(uValue, pVCpu->iem.s.iEffSeg, uAddr); \
     7403        IEM_MC_FETCH_MEM_SEG_U##ValBits(uValue, pVCpu->iem.s.iEffSeg, uAddr); \
    74047404        IEM_MC_FETCH_GREG_U##AddrBits##_ZX_U64(uAddr, X86_GREG_xDI); \
    74057405        IEM_MC_STORE_MEM_U##ValBits(X86_SREG_ES, uAddr, uValue); \
     
    76007600        IEM_MC_FETCH_GREG_U##AddrBits##_ZX_U64(uAddr1, X86_GREG_xSI); \
    76017601        IEM_MC_LOCAL(uint##ValBits##_t, uValue1); \
    7602         IEM_MC_FETCH_MEM_U##ValBits(uValue1, pVCpu->iem.s.iEffSeg, uAddr1); \
     7602        IEM_MC_FETCH_MEM_SEG_U##ValBits(uValue1, pVCpu->iem.s.iEffSeg, uAddr1); \
    76037603        \
    76047604        IEM_MC_LOCAL(RTGCPTR,           uAddr2); \
    76057605        IEM_MC_FETCH_GREG_U##AddrBits##_ZX_U64(uAddr2, X86_GREG_xDI); \
    76067606        IEM_MC_ARG(uint##ValBits##_t,               uValue2,            2); \
    7607         IEM_MC_FETCH_MEM_U##ValBits(uValue2, X86_SREG_ES, uAddr2); \
     7607        IEM_MC_FETCH_MEM_SEG_U##ValBits(uValue2, X86_SREG_ES, uAddr2); \
    76087608        \
    76097609        IEM_MC_ARG_LOCAL_REF(uint##ValBits##_t *,   puValue1, uValue1,  1); \
     
    81168116        IEM_MC_LOCAL(RTGCPTR, uAddr); \
    81178117        IEM_MC_FETCH_GREG_U##AddrBits##_ZX_U64(uAddr, X86_GREG_xSI); \
    8118         IEM_MC_FETCH_MEM_U##ValBits(uValue, pVCpu->iem.s.iEffSeg, uAddr); \
     8118        IEM_MC_FETCH_MEM_SEG_U##ValBits(uValue, pVCpu->iem.s.iEffSeg, uAddr); \
    81198119        IEM_MC_STORE_GREG_U##ValBits(X86_GREG_xAX, uValue); \
    81208120        IEM_MC_IF_EFL_BIT_SET(X86_EFL_DF) { \
     
    83128312        \
    83138313        IEM_MC_ARG(uint##ValBits##_t,   uValue,     2); \
    8314         IEM_MC_FETCH_MEM_U##ValBits(uValue, X86_SREG_ES, uAddr); \
     8314        IEM_MC_FETCH_MEM_SEG_U##ValBits(uValue, X86_SREG_ES, uAddr); \
    83158315        IEM_MC_ARG(uint##ValBits##_t *, puRax,      1); \
    83168316        IEM_MC_REF_GREG_U##ValBits(puRax, X86_GREG_xAX); \
     
    1050610506            IEM_MC_FETCH_GREG_U8_ZX_U16(u16Addr, X86_GREG_xAX);
    1050710507            IEM_MC_ADD_GREG_U16_TO_LOCAL(u16Addr, X86_GREG_xBX);
    10508             IEM_MC_FETCH_MEM16_U8(u8Tmp, pVCpu->iem.s.iEffSeg, u16Addr);
     10508            IEM_MC_FETCH_MEM16_SEG_U8(u8Tmp, pVCpu->iem.s.iEffSeg, u16Addr);
    1050910509            IEM_MC_STORE_GREG_U8(X86_GREG_xAX, u8Tmp);
    1051010510            IEM_MC_ADVANCE_PC_AND_FINISH();
     
    1051910519            IEM_MC_FETCH_GREG_U8_ZX_U32(u32Addr, X86_GREG_xAX);
    1052010520            IEM_MC_ADD_GREG_U32_TO_LOCAL(u32Addr, X86_GREG_xBX);
    10521             IEM_MC_FETCH_MEM32_U8(u8Tmp, pVCpu->iem.s.iEffSeg, u32Addr);
     10521            IEM_MC_FETCH_MEM32_SEG_U8(u8Tmp, pVCpu->iem.s.iEffSeg, u32Addr);
    1052210522            IEM_MC_STORE_GREG_U8(X86_GREG_xAX, u8Tmp);
    1052310523            IEM_MC_ADVANCE_PC_AND_FINISH();
     
    1053210532            IEM_MC_FETCH_GREG_U8_ZX_U64(u64Addr, X86_GREG_xAX);
    1053310533            IEM_MC_ADD_GREG_U64_TO_LOCAL(u64Addr, X86_GREG_xBX);
    10534             IEM_MC_FETCH_MEM_U8(u8Tmp, pVCpu->iem.s.iEffSeg, u64Addr);
     10534            IEM_MC_FETCH_MEM_SEG_U8(u8Tmp, pVCpu->iem.s.iEffSeg, u64Addr);
    1053510535            IEM_MC_STORE_GREG_U8(X86_GREG_xAX, u8Tmp);
    1053610536            IEM_MC_ADVANCE_PC_AND_FINISH();
     
    1072210722    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1072310723    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    10724     IEM_MC_FETCH_MEM_R32(r32Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     10724    IEM_MC_FETCH_MEM_SEG_R32(r32Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1072510725
    1072610726    IEM_MC_PREPARE_FPU_USAGE();
     
    1077110771    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1077210772    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    10773     IEM_MC_FETCH_MEM_R32(r32Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     10773    IEM_MC_FETCH_MEM_SEG_R32(r32Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1077410774
    1077510775    IEM_MC_PREPARE_FPU_USAGE();
     
    1080410804    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1080510805    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    10806     IEM_MC_FETCH_MEM_R32(r32Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     10806    IEM_MC_FETCH_MEM_SEG_R32(r32Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1080710807
    1080810808    IEM_MC_PREPARE_FPU_USAGE();
     
    1091010910    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1091110911    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    10912     IEM_MC_FETCH_MEM_R32(r32Val, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     10912    IEM_MC_FETCH_MEM_SEG_R32(r32Val, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1091310913    IEM_MC_PREPARE_FPU_USAGE();
    1091410914    IEM_MC_IF_FPUREG_IS_EMPTY(7) {
     
    1103511035
    1103611036    IEM_MC_ARG(uint16_t,                u16Fsw,                                         0);
    11037     IEM_MC_FETCH_MEM_U16(u16Fsw, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     11037    IEM_MC_FETCH_MEM_SEG_U16(u16Fsw, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1103811038
    1103911039    IEM_MC_CALL_CIMPL_1(IEM_CIMPL_F_FPU, RT_BIT_64(kIemNativeGstReg_FpuFcw),
     
    1184811848    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1184911849    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    11850     IEM_MC_FETCH_MEM_I32(i32Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     11850    IEM_MC_FETCH_MEM_SEG_I32(i32Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1185111851
    1185211852    IEM_MC_PREPARE_FPU_USAGE();
     
    1189711897    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1189811898    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    11899     IEM_MC_FETCH_MEM_I32(i32Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     11899    IEM_MC_FETCH_MEM_SEG_I32(i32Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1190011900
    1190111901    IEM_MC_PREPARE_FPU_USAGE();
     
    1193011930    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1193111931    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    11932     IEM_MC_FETCH_MEM_I32(i32Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     11932    IEM_MC_FETCH_MEM_SEG_I32(i32Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1193311933
    1193411934    IEM_MC_PREPARE_FPU_USAGE();
     
    1203712037    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1203812038    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    12039     IEM_MC_FETCH_MEM_I32(i32Val, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     12039    IEM_MC_FETCH_MEM_SEG_I32(i32Val, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1204012040
    1204112041    IEM_MC_PREPARE_FPU_USAGE();
     
    1218612186    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1218712187    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    12188     IEM_MC_FETCH_MEM_R80(r80Val, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     12188    IEM_MC_FETCH_MEM_SEG_R80(r80Val, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1218912189
    1219012190    IEM_MC_PREPARE_FPU_USAGE();
     
    1259612596    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    1259712597
    12598     IEM_MC_FETCH_MEM_R64(r64Factor2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     12598    IEM_MC_FETCH_MEM_SEG_R64(r64Factor2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1259912599    IEM_MC_PREPARE_FPU_USAGE();
    1260012600    IEM_MC_IF_FPUREG_NOT_EMPTY_REF_R80(pr80Factor1, 0) {
     
    1264412644    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1264512645    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    12646     IEM_MC_FETCH_MEM_R64(r64Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     12646    IEM_MC_FETCH_MEM_SEG_R64(r64Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1264712647
    1264812648    IEM_MC_PREPARE_FPU_USAGE();
     
    1267712677    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1267812678    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    12679     IEM_MC_FETCH_MEM_R64(r64Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     12679    IEM_MC_FETCH_MEM_SEG_R64(r64Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1268012680
    1268112681    IEM_MC_PREPARE_FPU_USAGE();
     
    1278212782    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    1278312783
    12784     IEM_MC_FETCH_MEM_R64(r64Val, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     12784    IEM_MC_FETCH_MEM_SEG_R64(r64Val, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1278512785    IEM_MC_PREPARE_FPU_USAGE();
    1278612786    IEM_MC_IF_FPUREG_IS_EMPTY(7) {
     
    1315813158    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1315913159    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    13160     IEM_MC_FETCH_MEM_I16(i16Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     13160    IEM_MC_FETCH_MEM_SEG_I16(i16Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1316113161
    1316213162    IEM_MC_PREPARE_FPU_USAGE();
     
    1320713207    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1320813208    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    13209     IEM_MC_FETCH_MEM_I16(i16Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     13209    IEM_MC_FETCH_MEM_SEG_I16(i16Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1321013210
    1321113211    IEM_MC_PREPARE_FPU_USAGE();
     
    1324013240    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1324113241    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    13242     IEM_MC_FETCH_MEM_I16(i16Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     13242    IEM_MC_FETCH_MEM_SEG_I16(i16Val2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1324313243
    1324413244    IEM_MC_PREPARE_FPU_USAGE();
     
    1340313403    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1340413404    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    13405     IEM_MC_FETCH_MEM_I16(i16Val, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     13405    IEM_MC_FETCH_MEM_SEG_I16(i16Val, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1340613406
    1340713407    IEM_MC_PREPARE_FPU_USAGE();
     
    1355213552    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1355313553    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    13554     IEM_MC_FETCH_MEM_D80(d80Val, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     13554    IEM_MC_FETCH_MEM_SEG_D80(d80Val, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1355513555
    1355613556    IEM_MC_PREPARE_FPU_USAGE();
     
    1358413584    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1358513585    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    13586     IEM_MC_FETCH_MEM_I64(i64Val, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     13586    IEM_MC_FETCH_MEM_SEG_I64(i64Val, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1358713587
    1358813588    IEM_MC_PREPARE_FPU_USAGE();
     
    1458514585        \
    1458614586        IEM_MC_ARG(uint8_t,         u8Value,    1); \
    14587         IEM_MC_FETCH_MEM_U8(u8Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     14587        IEM_MC_FETCH_MEM_SEG_U8(u8Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    1458814588        IEM_MC_ARG(uint16_t *,      pu16AX,     0); \
    1458914589        IEM_MC_REF_GREG_U16(pu16AX, X86_GREG_xAX); \
     
    1467714677                \
    1467814678                IEM_MC_ARG(uint16_t,        u16Value,   2); \
    14679                 IEM_MC_FETCH_MEM_U16(u16Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     14679                IEM_MC_FETCH_MEM_SEG_U16(u16Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    1468014680                IEM_MC_ARG(uint16_t *,      pu16AX,     0); \
    1468114681                IEM_MC_REF_GREG_U16(pu16AX, X86_GREG_xAX); \
     
    1469814698                \
    1469914699                IEM_MC_ARG(uint32_t,        u32Value,   2); \
    14700                 IEM_MC_FETCH_MEM_U32(u32Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     14700                IEM_MC_FETCH_MEM_SEG_U32(u32Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    1470114701                IEM_MC_ARG(uint32_t *,      pu32AX,     0); \
    1470214702                IEM_MC_REF_GREG_U32(pu32AX, X86_GREG_xAX); \
     
    1472114721                \
    1472214722                IEM_MC_ARG(uint64_t,        u64Value,   2); \
    14723                 IEM_MC_FETCH_MEM_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     14723                IEM_MC_FETCH_MEM_SEG_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    1472414724                IEM_MC_ARG(uint64_t *,      pu64AX,     0); \
    1472514725                IEM_MC_REF_GREG_U64(pu64AX, X86_GREG_xAX); \
     
    1516415164                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1516515165                IEM_MC_LOCAL(uint16_t,  u16Target);
    15166                 IEM_MC_FETCH_MEM_U16(u16Target, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     15166                IEM_MC_FETCH_MEM_SEG_U16(u16Target, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1516715167                IEM_MC_IND_CALL_U16_AND_FINISH(u16Target);
    1516815168                IEM_MC_END();
     
    1517515175                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1517615176                IEM_MC_LOCAL(uint32_t,  u32Target);
    15177                 IEM_MC_FETCH_MEM_U32(u32Target, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     15177                IEM_MC_FETCH_MEM_SEG_U32(u32Target, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1517815178                IEM_MC_IND_CALL_U32_AND_FINISH(u32Target);
    1517915179                IEM_MC_END();
     
    1518615186                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1518715187                IEM_MC_LOCAL(uint64_t,  u64Target);
    15188                 IEM_MC_FETCH_MEM_U64(u64Target, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     15188                IEM_MC_FETCH_MEM_SEG_U64(u64Target, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1518915189                IEM_MC_IND_CALL_U64_AND_FINISH(u64Target);
    1519015190                IEM_MC_END();
     
    1522115221            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, a_bRm, 0); \
    1522215222            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    15223             IEM_MC_FETCH_MEM_U16(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    15224             IEM_MC_FETCH_MEM_U16_DISP(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc, 2); \
     15223            IEM_MC_FETCH_MEM_SEG_U16(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     15224            IEM_MC_FETCH_MEM_SEG_U16_DISP(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc, 2); \
    1522515225            IEM_MC_CALL_CIMPL_3(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_FAR | (a_fCImplExtra) \
    1522615226                                | IEM_CIMPL_F_MODE | IEM_CIMPL_F_RFLAGS | IEM_CIMPL_F_VMEXIT, 0, \
     
    1523715237            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, a_bRm, 0); \
    1523815238            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    15239             IEM_MC_FETCH_MEM_U32(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    15240             IEM_MC_FETCH_MEM_U16_DISP(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc, 4); \
     15239            IEM_MC_FETCH_MEM_SEG_U32(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     15240            IEM_MC_FETCH_MEM_SEG_U16_DISP(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc, 4); \
    1524115241            IEM_MC_CALL_CIMPL_3(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_FAR | (a_fCImplExtra) \
    1524215242                                | IEM_CIMPL_F_MODE | IEM_CIMPL_F_RFLAGS | IEM_CIMPL_F_VMEXIT, 0, \
     
    1525415254            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, a_bRm, 0); \
    1525515255            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    15256             IEM_MC_FETCH_MEM_U64(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    15257             IEM_MC_FETCH_MEM_U16_DISP(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc, 8); \
     15256            IEM_MC_FETCH_MEM_SEG_U64(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     15257            IEM_MC_FETCH_MEM_SEG_U16_DISP(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc, 8); \
    1525815258            IEM_MC_CALL_CIMPL_3(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_FAR | (a_fCImplExtra) \
    1525915259                                | IEM_CIMPL_F_MODE /* no gates */, 0, \
     
    1533215332                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    1533315333                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    15334                 IEM_MC_FETCH_MEM_U16(u16Target, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     15334                IEM_MC_FETCH_MEM_SEG_U16(u16Target, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1533515335                IEM_MC_IND_JMP_U16_AND_FINISH(u16Target);
    1533615336                IEM_MC_END();
     
    1534315343                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    1534415344                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    15345                 IEM_MC_FETCH_MEM_U32(u32Target, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     15345                IEM_MC_FETCH_MEM_SEG_U32(u32Target, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1534615346                IEM_MC_IND_JMP_U32_AND_FINISH(u32Target);
    1534715347                IEM_MC_END();
     
    1535415354                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    1535515355                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    15356                 IEM_MC_FETCH_MEM_U64(u64Target, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     15356                IEM_MC_FETCH_MEM_SEG_U64(u64Target, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1535715357                IEM_MC_IND_JMP_U64_AND_FINISH(u64Target);
    1535815358                IEM_MC_END();
     
    1539815398            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    1539915399            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    15400             IEM_MC_FETCH_MEM_U16(u16Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     15400            IEM_MC_FETCH_MEM_SEG_U16(u16Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1540115401            IEM_MC_PUSH_U16(u16Src);
    1540215402            IEM_MC_ADVANCE_PC_AND_FINISH();
     
    1541015410            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    1541115411            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    15412             IEM_MC_FETCH_MEM_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     15412            IEM_MC_FETCH_MEM_SEG_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1541315413            IEM_MC_PUSH_U32(u32Src);
    1541415414            IEM_MC_ADVANCE_PC_AND_FINISH();
     
    1542215422            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    1542315423            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    15424             IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     15424            IEM_MC_FETCH_MEM_SEG_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1542515425            IEM_MC_PUSH_U64(u64Src);
    1542615426            IEM_MC_ADVANCE_PC_AND_FINISH();
  • trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllInstThree0f38-x86.cpp.h

    r108267 r108288  
    8181        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSsse3);
    8282        IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT();
    83         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     83        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    8484
    8585        IEM_MC_PREPARE_FPU_USAGE();
     
    141141        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSsse3);
    142142        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    143         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     143        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    144144
    145145        IEM_MC_PREPARE_SSE_USAGE();
     
    199199        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    200200        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    201         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     201        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    202202
    203203        IEM_MC_PREPARE_SSE_USAGE();
     
    255255        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse42);
    256256        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    257         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     257        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    258258
    259259        IEM_MC_PREPARE_SSE_USAGE();
     
    314314        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fAesNi);
    315315        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    316         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     316        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    317317
    318318        IEM_MC_PREPARE_SSE_USAGE();
     
    374374        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSha);
    375375        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    376         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     376        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    377377
    378378        IEM_MC_PREPARE_SSE_USAGE();
     
    668668        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT(); \
    669669        IEM_MC_PREPARE_SSE_USAGE(); \
    670         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     670        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    671671        IEM_MC_REF_XREG_U128(puDst, IEM_GET_MODRM_REG(pVCpu, bRm)); \
    672672        IEM_MC_REF_XREG_U128_CONST(puMask, 0); \
     
    768768        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    769769        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    770         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     770        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    771771
    772772        IEM_MC_PREPARE_SSE_USAGE();
     
    892892        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT(); \
    893893        IEM_MC_PREPARE_SSE_USAGE(); \
    894         IEM_MC_FETCH_MEM_U## a_SrcWidth (uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     894        IEM_MC_FETCH_MEM_SEG_U## a_SrcWidth (uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    895895        IEM_MC_NATIVE_IF(a_fMemNativeArchs) { \
    896896            IEM_MC_NATIVE_EMIT_2(RT_CONCAT3(iemNativeEmit_,a_Instr,_rv_u128), IEM_GET_MODRM_REG(pVCpu, bRm), uSrc); \
     
    10101010        IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
    10111011
    1012         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1012        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    10131013        IEM_MC_STORE_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    10141014
     
    15631563        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSha);
    15641564        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    1565         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1565        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    15661566
    15671567        IEM_MC_PREPARE_SSE_USAGE();
     
    17041704                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    17051705                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1706                 IEM_MC_FETCH_MEM_U16(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1706                IEM_MC_FETCH_MEM_SEG_U16(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    17071707
    17081708                IEM_MC_BSWAP_LOCAL_U16(uSrc);
     
    17201720                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    17211721                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1722                 IEM_MC_FETCH_MEM_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1722                IEM_MC_FETCH_MEM_SEG_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    17231723
    17241724                IEM_MC_BSWAP_LOCAL_U32(uSrc);
     
    17361736                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    17371737                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1738                 IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1738                IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    17391739
    17401740                IEM_MC_BSWAP_LOCAL_U64(uSrc);
     
    17951795        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    17961796        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1797         IEM_MC_FETCH_MEM_U8(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1797        IEM_MC_FETCH_MEM_SEG_U8(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    17981798
    17991799        IEM_MC_REF_GREG_U32(puDst, IEM_GET_MODRM_REG(pVCpu, bRm));
     
    19501950                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    19511951                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1952                 IEM_MC_FETCH_MEM_U16(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1952                IEM_MC_FETCH_MEM_SEG_U16(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    19531953
    19541954                IEM_MC_REF_GREG_U32(puDst, IEM_GET_MODRM_REG(pVCpu, bRm));
     
    19691969                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    19701970                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1971                 IEM_MC_FETCH_MEM_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1971                IEM_MC_FETCH_MEM_SEG_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    19721972
    19731973                IEM_MC_REF_GREG_U32(puDst, IEM_GET_MODRM_REG(pVCpu, bRm));
     
    19881988                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    19891989                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1990                 IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1990                IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    19911991
    19921992                IEM_MC_REF_GREG_U32(puDst, IEM_GET_MODRM_REG(pVCpu, bRm));
     
    20592059                \
    20602060                IEM_MC_ARG(uint64_t,    u64Src,     2); \
    2061                 IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     2061                IEM_MC_FETCH_MEM_SEG_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    20622062                IEM_MC_ARG(uint64_t *,  pu64Dst,    1); \
    20632063                IEM_MC_REF_GREG_U64(pu64Dst, IEM_GET_MODRM_REG(pVCpu, bRm)); \
     
    20972097                \
    20982098                IEM_MC_ARG(uint32_t,    u32Src,     2); \
    2099                 IEM_MC_FETCH_MEM_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     2099                IEM_MC_FETCH_MEM_SEG_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    21002100                IEM_MC_ARG(uint32_t *,  pu32Dst,    1); \
    21012101                IEM_MC_REF_GREG_U32(pu32Dst, IEM_GET_MODRM_REG(pVCpu, bRm)); \
  • trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllInstThree0f3a-x86.cpp.h

    r108267 r108288  
    8181        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSsse3);
    8282        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    83         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     83        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    8484
    8585        IEM_MC_PREPARE_SSE_USAGE();
     
    140140        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    141141        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    142         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     142        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    143143
    144144        IEM_MC_PREPARE_SSE_USAGE();
     
    207207        IEM_MC_PREPARE_SSE_USAGE();
    208208
    209         IEM_MC_FETCH_MEM_XMM_ALIGN_SSE_AND_XREG_XMM(Src, IEM_GET_MODRM_REG(pVCpu, bRm), pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     209        IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE_AND_XREG_XMM(Src, IEM_GET_MODRM_REG(pVCpu, bRm), pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    210210        IEM_MC_CALL_SSE_AIMPL_3(pfnU128, pDst, pSrc, bImmArg);
    211211        IEM_MC_STORE_XREG_XMM(IEM_GET_MODRM_REG(pVCpu, bRm), Dst);
     
    264264        IEM_MC_PREPARE_SSE_USAGE();
    265265        IEM_MC_LOCAL(X86XMMREG,                     uSrc);
    266         IEM_MC_FETCH_MEM_XMM_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     266        IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    267267        IEM_MC_LOCAL(X86XMMREG,                     uDst);
    268268        IEM_MC_ARG_LOCAL_REF(PX86XMMREG,            puDst,          uDst,    0);
     
    324324        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fAesNi);
    325325        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    326         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     326        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    327327
    328328        IEM_MC_PREPARE_SSE_USAGE();
     
    410410        IEM_MC_PREPARE_SSE_USAGE();
    411411
    412         IEM_MC_FETCH_MEM_XMM_U32_AND_XREG_XMM(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
     412        IEM_MC_FETCH_MEM_SEG_XMM_U32_AND_XREG_XMM(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
    413413                                              0 /*a_iDword*/, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    414414        IEM_MC_CALL_SSE_AIMPL_3(iemAImpl_roundss_u128, pDst, pSrc, bImmArg);
     
    468468        IEM_MC_PREPARE_SSE_USAGE();
    469469
    470         IEM_MC_FETCH_MEM_XMM_U64_AND_XREG_XMM(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
     470        IEM_MC_FETCH_MEM_SEG_XMM_U64_AND_XREG_XMM(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
    471471                                              0 /*a_iQword */, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    472472        IEM_MC_CALL_SSE_AIMPL_3(iemAImpl_roundsd_u128, pDst, pSrc, bImmArg);
     
    550550        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSsse3);
    551551        IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT();
    552         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     552        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    553553
    554554        IEM_MC_PREPARE_FPU_USAGE();
     
    855855        IEM_MC_PREPARE_SSE_USAGE();
    856856
    857         IEM_MC_FETCH_MEM_U8(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     857        IEM_MC_FETCH_MEM_SEG_U8(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    858858        IEM_MC_STORE_XREG_U8(IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 15 /*a_iByte*/, uSrc);
    859859        IEM_MC_ADVANCE_PC_AND_FINISH();
     
    901901
    902902        IEM_MC_LOCAL(uint32_t,  uSrc);
    903         IEM_MC_FETCH_MEM_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     903        IEM_MC_FETCH_MEM_SEG_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    904904        IEM_MC_STORE_XREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), (bImm >> 4) & 3, uSrc);
    905905        IEM_MC_CLEAR_XREG_U32_MASK(IEM_GET_MODRM_REG(pVCpu, bRm), bImm);
     
    952952            IEM_MC_PREPARE_SSE_USAGE();
    953953
    954             IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     954            IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    955955            IEM_MC_STORE_XREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 1 /*a_iQword*/, uSrc);
    956956            IEM_MC_ADVANCE_PC_AND_FINISH();
     
    999999            IEM_MC_PREPARE_SSE_USAGE();
    10001000
    1001             IEM_MC_FETCH_MEM_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1001            IEM_MC_FETCH_MEM_SEG_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    10021002            IEM_MC_STORE_XREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 3 /*a_iDword*/, uSrc);
    10031003            IEM_MC_ADVANCE_PC_AND_FINISH();
     
    11151115        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fPclMul);
    11161116        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    1117         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1117        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    11181118
    11191119        IEM_MC_PREPARE_SSE_USAGE();
     
    12181218            IEM_MC_PREPARE_SSE_USAGE();
    12191219
    1220             IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_RAX_RDX_U64(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
     1220            IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_RAX_RDX_U64(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
    12211221                                                                pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    12221222            IEM_MC_REF_XREG_U128(puDst, 0 /*xmm0*/);
     
    12761276            IEM_MC_PREPARE_SSE_USAGE();
    12771277
    1278             IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
     1278            IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
    12791279                                                                       pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    12801280            IEM_MC_REF_XREG_U128(puDst, 0 /*xmm0*/);
     
    13501350            IEM_MC_PREPARE_SSE_USAGE();
    13511351
    1352             IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_RAX_RDX_U64(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
     1352            IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_RAX_RDX_U64(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
    13531353                                                                pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    13541354            IEM_MC_REF_GREG_U32(pu32Ecx, X86_GREG_xCX);
     
    14121412            IEM_MC_PREPARE_SSE_USAGE();
    14131413
    1414             IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
     1414            IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
    14151415                                                                       pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    14161416            IEM_MC_REF_GREG_U32(pu32Ecx, X86_GREG_xCX);
     
    14841484        IEM_MC_PREPARE_SSE_USAGE();
    14851485
    1486         IEM_MC_FETCH_MEM_U128_AND_XREG_U128(Src, IEM_GET_MODRM_REG(pVCpu, bRm), pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1486        IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128(Src, IEM_GET_MODRM_REG(pVCpu, bRm), pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    14871487        IEM_MC_REF_XREG_U128(puDst, 0 /*xmm0*/);
    14881488        IEM_MC_REF_EFLAGS(pEFlags);
     
    15561556        IEM_MC_PREPARE_SSE_USAGE();
    15571557
    1558         IEM_MC_FETCH_MEM_U128(Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1558        IEM_MC_FETCH_MEM_SEG_U128(Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    15591559        IEM_MC_REF_XREG_U128_CONST(pSrc1, IEM_GET_MODRM_REG(pVCpu, bRm));
    15601560        IEM_MC_REF_EFLAGS(pEFlags);
     
    16471647        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSha);
    16481648        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    1649         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1649        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    16501650
    16511651        IEM_MC_PREPARE_SSE_USAGE();
  • trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllInstTwoByte0f-x86.cpp.h

    r108287 r108288  
    8282        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fMmx);
    8383        IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT();
    84         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     84        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    8585
    8686        IEM_MC_PREPARE_FPU_USAGE();
     
    144144        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX_2_OR(fSse, fAmdMmxExts);
    145145        IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT();
    146         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     146        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    147147
    148148        IEM_MC_PREPARE_FPU_USAGE();
     
    204204        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    205205        IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT();
    206         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     206        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    207207
    208208        IEM_MC_PREPARE_FPU_USAGE();
     
    264264        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    265265        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    266         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     266        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    267267
    268268        IEM_MC_PREPARE_SSE_USAGE();
     
    321321        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    322322        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    323         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     323        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    324324
    325325        IEM_MC_PREPARE_SSE_USAGE();
     
    372372            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2); \
    373373            IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT(); \
    374             IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     374            IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    375375            IEM_MC_PREPARE_SSE_USAGE(); \
    376376            IEM_MC_NATIVE_IF(a_fRegNativeArchs) { \
     
    432432        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fMmx);
    433433        IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT();
    434         IEM_MC_FETCH_MEM_U32_ZX_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     434        IEM_MC_FETCH_MEM_SEG_U32_ZX_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    435435
    436436        IEM_MC_PREPARE_FPU_USAGE();
     
    495495         *        CPUs actually does and whether it will do a TLB load for the high
    496496         *        part or skip any associated \#PF. Ditto for segmentation \#GPs. */
    497         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     497        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    498498
    499499        IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
     
    555555         *        CPUs actually does and whether it will do a TLB load for the high
    556556         *        part or skip any associated \#PF. Ditto for segmentation \#GPs. */
    557         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     557        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    558558
    559559        IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
     
    614614        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fMmx);
    615615        IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT();
    616         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); /* intel docs this to be full 64-bit read */
     616        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); /* intel docs this to be full 64-bit read */
    617617
    618618        IEM_MC_PREPARE_FPU_USAGE();
     
    677677         *        CPUs actually does and whether it will do a TLB load for the lower
    678678         *        part or skip any associated \#PF. */
    679         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     679        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    680680
    681681        IEM_MC_PREPARE_SSE_USAGE();
     
    738738        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    739739        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    740         IEM_MC_FETCH_MEM_XMM_ALIGN_SSE(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     740        IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    741741
    742742        IEM_MC_PREPARE_SSE_USAGE();
     
    794794            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse); \
    795795            IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT(); \
    796             IEM_MC_FETCH_MEM_XMM_ALIGN_SSE(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     796            IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    797797            IEM_MC_PREPARE_SSE_USAGE(); \
    798798            IEM_MC_NATIVE_IF(a_fRegNativeArchs) { \
     
    862862        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    863863        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    864         IEM_MC_FETCH_MEM_R32(r32Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     864        IEM_MC_FETCH_MEM_SEG_R32(r32Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    865865
    866866        IEM_MC_PREPARE_SSE_USAGE();
     
    924924        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    925925        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    926         IEM_MC_FETCH_MEM_XMM_ALIGN_SSE(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     926        IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    927927
    928928        IEM_MC_PREPARE_SSE_USAGE();
     
    986986        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    987987        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    988         IEM_MC_FETCH_MEM_R64(r64Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     988        IEM_MC_FETCH_MEM_SEG_R64(r64Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    989989
    990990        IEM_MC_PREPARE_SSE_USAGE();
     
    10471047         *        CPUs actually does and whether it will do a TLB load for the lower
    10481048         *        part or skip any associated \#PF. */
    1049         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1049        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    10501050
    10511051        IEM_MC_PREPARE_SSE_USAGE();
     
    11081108        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse3);
    11091109        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    1110         IEM_MC_FETCH_MEM_XMM_ALIGN_SSE(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1110        IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    11111111
    11121112        IEM_MC_PREPARE_SSE_USAGE();
     
    11961196        IEMOP_HLP_DECODED_NL_1(OP_LLDT, IEMOPFORM_M_MEM, OP_PARM_Ew, DISOPTYPE_DANGEROUS);
    11971197        IEM_MC_RAISE_GP0_IF_CPL_NOT_ZERO(); /** @todo test order */
    1198         IEM_MC_FETCH_MEM_U16(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1198        IEM_MC_FETCH_MEM_SEG_U16(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    11991199        IEM_MC_CALL_CIMPL_1(IEM_CIMPL_F_VMEXIT, 0, iemCImpl_lldt, u16Sel);
    12001200        IEM_MC_END();
     
    12271227        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    12281228        IEM_MC_RAISE_GP0_IF_CPL_NOT_ZERO(); /** @todo test order */
    1229         IEM_MC_FETCH_MEM_U16(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1229        IEM_MC_FETCH_MEM_SEG_U16(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    12301230        IEM_MC_CALL_CIMPL_1(IEM_CIMPL_F_VMEXIT, 0, iemCImpl_ltr, u16Sel);
    12311231        IEM_MC_END();
     
    12571257            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); \
    12581258            IEMOP_HLP_DECODED_NL_1(fWrite ? OP_VERW : OP_VERR, IEMOPFORM_M_MEM, OP_PARM_Ew, DISOPTYPE_DANGEROUS | DISOPTYPE_PRIVILEGED_NOTRAP); \
    1259             IEM_MC_FETCH_MEM_U16(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     1259            IEM_MC_FETCH_MEM_SEG_U16(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    12601260            IEM_MC_CALL_CIMPL_2(IEM_CIMPL_F_STATUS_FLAGS, 0, iemCImpl_VerX, u16Sel, fWriteArg); \
    12611261            IEM_MC_END(); \
     
    16611661        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    16621662        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1663         IEM_MC_FETCH_MEM_U16(u16Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     1663        IEM_MC_FETCH_MEM_SEG_U16(u16Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    16641664        IEM_MC_CALL_CIMPL_2(IEM_CIMPL_F_MODE | IEM_CIMPL_F_VMEXIT, RT_BIT_64(kIemNativeGstReg_Cr0),
    16651665                            iemCImpl_lmsw, u16Tmp, GCPtrEffDst);
     
    18491849                IEMOP_HLP_DECODED_NL_2(fIsLar ? OP_LAR : OP_LSL, IEMOPFORM_RM_MEM, OP_PARM_Gv, OP_PARM_Ew, DISOPTYPE_DANGEROUS | DISOPTYPE_PRIVILEGED_NOTRAP);
    18501850
    1851                 IEM_MC_FETCH_MEM_U16(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1851                IEM_MC_FETCH_MEM_SEG_U16(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    18521852                IEM_MC_REF_GREG_U16(pu16Dst, IEM_GET_MODRM_REG(pVCpu, bRm));
    18531853                IEM_MC_CALL_CIMPL_3(IEM_CIMPL_F_STATUS_FLAGS, RT_BIT_64(kIemNativeGstReg_GprFirst + IEM_GET_MODRM_REG(pVCpu, bRm)),
     
    18691869/** @todo testcase: make sure it's a 16-bit read. */
    18701870
    1871                 IEM_MC_FETCH_MEM_U16(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1871                IEM_MC_FETCH_MEM_SEG_U16(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    18721872                IEM_MC_REF_GREG_U64(pu64Dst, IEM_GET_MODRM_REG(pVCpu, bRm));
    18731873                IEM_MC_CALL_CIMPL_3(IEM_CIMPL_F_STATUS_FLAGS, RT_BIT_64(kIemNativeGstReg_GprFirst + IEM_GET_MODRM_REG(pVCpu, bRm)),
     
    20922092        IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
    20932093
    2094         IEM_MC_FETCH_MEM_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2094        IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    20952095        IEM_MC_STORE_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    20962096
     
    21432143        IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
    21442144
    2145         IEM_MC_FETCH_MEM_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2145        IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    21462146        IEM_MC_STORE_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    21472147
     
    21962196        IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
    21972197
    2198         IEM_MC_FETCH_MEM_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2198        IEM_MC_FETCH_MEM_SEG_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    21992199        IEM_MC_STORE_XREG_U32_ZX_U128(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    22002200
     
    22492249        IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
    22502250
    2251         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2251        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    22522252        IEM_MC_STORE_XREG_U64_ZX_U128(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    22532253
     
    25182518        IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
    25192519
    2520         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2520        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    25212521        IEM_MC_STORE_XREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), 0 /* a_iQword*/, uSrc);
    25222522
     
    25532553        IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
    25542554
    2555         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2555        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    25562556        IEM_MC_STORE_XREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), 0 /* a_iQword*/, uSrc);
    25572557
     
    26232623        IEM_MC_PREPARE_SSE_USAGE();
    26242624
    2625         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2625        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    26262626        IEM_MC_STORE_XREG_U32_U128(IEM_GET_MODRM_REG(pVCpu, bRm), 0, uSrc, 0);
    26272627        IEM_MC_STORE_XREG_U32_U128(IEM_GET_MODRM_REG(pVCpu, bRm), 1, uSrc, 0);
     
    26812681        IEM_MC_PREPARE_SSE_USAGE();
    26822682
    2683         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2683        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    26842684        IEM_MC_STORE_XREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), 0 /* a_iQword*/, uSrc);
    26852685        IEM_MC_STORE_XREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), 1 /* a_iQword*/, uSrc);
     
    29382938        IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
    29392939
    2940         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2940        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    29412941        IEM_MC_STORE_XREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), 1 /*a_iQword*/, uSrc);
    29422942
     
    29732973        IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
    29742974
    2975         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2975        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    29762976        IEM_MC_STORE_XREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), 1 /*a_iQword*/, uSrc);
    29772977
     
    30433043        IEM_MC_PREPARE_SSE_USAGE();
    30443044
    3045         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3045        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    30463046        IEM_MC_STORE_XREG_U32_U128(IEM_GET_MODRM_REG(pVCpu, bRm), 0, uSrc, 1);
    30473047        IEM_MC_STORE_XREG_U32_U128(IEM_GET_MODRM_REG(pVCpu, bRm), 1, uSrc, 1);
     
    34163416        IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
    34173417
    3418         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3418        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    34193419        IEM_MC_STORE_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    34203420
     
    34653465        IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
    34663466
    3467         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3467        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    34683468        IEM_MC_STORE_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    34693469
     
    36243624        IEM_MC_PREPARE_FPU_USAGE();
    36253625
    3626         IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3626        IEM_MC_FETCH_MEM_SEG_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    36273627        IEM_MC_FETCH_XREG_XMM(Dst, IEM_GET_MODRM_REG(pVCpu, bRm)); /* Need it because the high quadword remains unchanged. */
    36283628
     
    36793679        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    36803680        IEM_MC_MAYBE_RAISE_FPU_XCPT();
    3681         IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3681        IEM_MC_FETCH_MEM_SEG_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    36823682
    36833683        /* Doesn't cause a transition to MMX mode. */
     
    37353735            IEM_MC_PREPARE_SSE_USAGE(); /** @todo: This is superfluous because IEM_MC_CALL_SSE_AIMPL_2() is calling this but the tstIEMCheckMc testcase depends on it. */
    37363736
    3737             IEM_MC_FETCH_MEM_I64(i64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3737            IEM_MC_FETCH_MEM_SEG_I64(i64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    37383738            IEM_MC_CALL_SSE_AIMPL_2(iemAImpl_cvtsi2ss_r32_i64, pr32Dst, pi64Src);
    37393739            IEM_MC_STORE_XREG_R32(IEM_GET_MODRM_REG(pVCpu, bRm), r32Dst);
     
    37793779            IEM_MC_PREPARE_SSE_USAGE(); /** @todo This is superfluous because IEM_MC_CALL_SSE_AIMPL_2() is calling this but the tstIEMCheckMc testcase depends on it. */
    37803780
    3781             IEM_MC_FETCH_MEM_I32(i32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3781            IEM_MC_FETCH_MEM_SEG_I32(i32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    37823782            IEM_MC_CALL_SSE_AIMPL_2(iemAImpl_cvtsi2ss_r32_i32, pr32Dst, pi32Src);
    37833783            IEM_MC_STORE_XREG_R32(IEM_GET_MODRM_REG(pVCpu, bRm), r32Dst);
     
    38323832            IEM_MC_PREPARE_SSE_USAGE(); /** @todo This is superfluous because IEM_MC_CALL_SSE_AIMPL_2() is calling this but the tstIEMCheckMc testcase depends on it. */
    38333833
    3834             IEM_MC_FETCH_MEM_I64(i64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3834            IEM_MC_FETCH_MEM_SEG_I64(i64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    38353835            IEM_MC_CALL_SSE_AIMPL_2(iemAImpl_cvtsi2sd_r64_i64, pr64Dst, pi64Src);
    38363836            IEM_MC_STORE_XREG_R64(IEM_GET_MODRM_REG(pVCpu, bRm), r64Dst);
     
    38763876            IEM_MC_PREPARE_SSE_USAGE(); /** @todo: This is superfluous because IEM_MC_CALL_SSE_AIMPL_2() is calling this but the tstIEMCheckMc testcase depends on it. */
    38773877
    3878             IEM_MC_FETCH_MEM_I32(i32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3878            IEM_MC_FETCH_MEM_SEG_I32(i32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    38793879            IEM_MC_CALL_SSE_AIMPL_2(iemAImpl_cvtsi2sd_r64_i32, pr64Dst, pi32Src);
    38803880            IEM_MC_STORE_XREG_R64(IEM_GET_MODRM_REG(pVCpu, bRm), r64Dst);
     
    40114011        IEM_MC_MAYBE_RAISE_FPU_XCPT();
    40124012        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    4013         IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4013        IEM_MC_FETCH_MEM_SEG_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    40144014
    40154015        IEM_MC_PREPARE_FPU_USAGE();
     
    40694069        IEM_MC_MAYBE_RAISE_FPU_XCPT();
    40704070        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    4071         IEM_MC_FETCH_MEM_XMM_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4071        IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    40724072
    40734073        IEM_MC_PREPARE_FPU_USAGE();
     
    41254125            IEM_MC_PREPARE_SSE_USAGE(); /** @todo: This is superfluous because IEM_MC_CALL_SSE_AIMPL_2() is calling this but the tstIEMCheckMc testcase depends on it. */
    41264126
    4127             IEM_MC_FETCH_MEM_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4127            IEM_MC_FETCH_MEM_SEG_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    41284128            IEM_MC_CALL_SSE_AIMPL_2(iemAImpl_cvttss2si_i64_r32, pi64Dst, pu32Src);
    41294129            IEM_MC_STORE_GREG_I64(IEM_GET_MODRM_REG(pVCpu, bRm), i64Dst);
     
    41694169            IEM_MC_PREPARE_SSE_USAGE(); /** @todo: This is superfluous because IEM_MC_CALL_SSE_AIMPL_2() is calling this but the tstIEMCheckMc testcase depends on it. */
    41704170
    4171             IEM_MC_FETCH_MEM_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4171            IEM_MC_FETCH_MEM_SEG_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    41724172            IEM_MC_CALL_SSE_AIMPL_2(iemAImpl_cvttss2si_i32_r32, pi32Dst, pu32Src);
    41734173            IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), i32Dst);
     
    42224222            IEM_MC_PREPARE_SSE_USAGE(); /** @todo: This is superfluous because IEM_MC_CALL_SSE_AIMPL_2() is calling this but the tstIEMCheckMc testcase depends on it. */
    42234223
    4224             IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4224            IEM_MC_FETCH_MEM_SEG_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    42254225            IEM_MC_CALL_SSE_AIMPL_2(iemAImpl_cvttsd2si_i64_r64, pi64Dst, pu64Src);
    42264226            IEM_MC_STORE_GREG_I64(IEM_GET_MODRM_REG(pVCpu, bRm), i64Dst);
     
    42664266            IEM_MC_PREPARE_SSE_USAGE(); /** @todo: This is superfluous because IEM_MC_CALL_SSE_AIMPL_2() is calling this but the tstIEMCheckMc testcase depends on it. */
    42674267
    4268             IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4268            IEM_MC_FETCH_MEM_SEG_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    42694269            IEM_MC_CALL_SSE_AIMPL_2(iemAImpl_cvttsd2si_i32_r64, pi32Dst, pu64Src);
    42704270            IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), i32Dst);
     
    43214321        IEM_MC_MAYBE_RAISE_FPU_XCPT();
    43224322        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    4323         IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4323        IEM_MC_FETCH_MEM_SEG_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    43244324
    43254325        IEM_MC_PREPARE_FPU_USAGE();
     
    43804380        IEM_MC_MAYBE_RAISE_FPU_XCPT();
    43814381        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    4382         IEM_MC_FETCH_MEM_XMM_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4382        IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    43834383
    43844384        IEM_MC_PREPARE_FPU_USAGE();
     
    44364436            IEM_MC_PREPARE_SSE_USAGE(); /** @todo: This is superfluous because IEM_MC_CALL_SSE_AIMPL_2() is calling this but the tstIEMCheckMc testcase depends on it. */
    44374437
    4438             IEM_MC_FETCH_MEM_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4438            IEM_MC_FETCH_MEM_SEG_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    44394439            IEM_MC_CALL_SSE_AIMPL_2(iemAImpl_cvtss2si_i64_r32, pi64Dst, pu32Src);
    44404440            IEM_MC_STORE_GREG_I64(IEM_GET_MODRM_REG(pVCpu, bRm), i64Dst);
     
    44804480            IEM_MC_PREPARE_SSE_USAGE(); /** @todo: This is superfluous because IEM_MC_CALL_SSE_AIMPL_2() is calling this but the tstIEMCheckMc testcase depends on it. */
    44814481
    4482             IEM_MC_FETCH_MEM_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4482            IEM_MC_FETCH_MEM_SEG_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    44834483            IEM_MC_CALL_SSE_AIMPL_2(iemAImpl_cvtss2si_i32_r32, pi32Dst, pu32Src);
    44844484            IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), i32Dst);
     
    45334533            IEM_MC_PREPARE_SSE_USAGE(); /** @todo: This is superfluous because IEM_MC_CALL_SSE_AIMPL_3() is calling this but the tstIEMCheckMc testcase depends on it. */
    45344534
    4535             IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4535            IEM_MC_FETCH_MEM_SEG_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    45364536            IEM_MC_CALL_SSE_AIMPL_2(iemAImpl_cvtsd2si_i64_r64, pi64Dst, pu64Src);
    45374537            IEM_MC_STORE_GREG_I64(IEM_GET_MODRM_REG(pVCpu, bRm), i64Dst);
     
    45774577            IEM_MC_PREPARE_SSE_USAGE(); /** @todo: This is superfluous because IEM_MC_CALL_SSE_AIMPL_2() is calling this but the tstIEMCheckMc testcase depends on it. */
    45784578
    4579             IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4579            IEM_MC_FETCH_MEM_SEG_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    45804580            IEM_MC_CALL_SSE_AIMPL_2(iemAImpl_cvtsd2si_i32_r64, pi32Dst, pu64Src);
    45814581            IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), i32Dst);
     
    46354635        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    46364636        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    4637         IEM_MC_FETCH_MEM_R32(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4637        IEM_MC_FETCH_MEM_SEG_R32(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    46384638
    46394639        IEM_MC_PREPARE_SSE_USAGE();
     
    46964696        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    46974697        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    4698         IEM_MC_FETCH_MEM_R64(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4698        IEM_MC_FETCH_MEM_SEG_R64(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    46994699
    47004700        IEM_MC_PREPARE_SSE_USAGE();
     
    47614761        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    47624762        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    4763         IEM_MC_FETCH_MEM_R32(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4763        IEM_MC_FETCH_MEM_SEG_R32(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    47644764
    47654765        IEM_MC_PREPARE_SSE_USAGE();
     
    48224822        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    48234823        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    4824         IEM_MC_FETCH_MEM_R64(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4824        IEM_MC_FETCH_MEM_SEG_R64(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    48254825
    48264826        IEM_MC_PREPARE_SSE_USAGE();
     
    49994999                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); \
    50005000                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    5001                 IEM_MC_FETCH_MEM_U16(u16Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     5001                IEM_MC_FETCH_MEM_SEG_U16(u16Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    50025002                a_Cnd { \
    50035003                    IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16Tmp); \
     
    50135013                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); \
    50145014                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    5015                 IEM_MC_FETCH_MEM_U32(u32Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     5015                IEM_MC_FETCH_MEM_SEG_U32(u32Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    50165016                a_Cnd { \
    50175017                    IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Tmp); \
     
    50295029                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); \
    50305030                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    5031                 IEM_MC_FETCH_MEM_U64(u64Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     5031                IEM_MC_FETCH_MEM_SEG_U64(u64Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    50325032                a_Cnd { \
    50335033                    IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Tmp); \
     
    55405540        IEM_MC_LOCAL(uint64_t,              u64Src);
    55415541        IEM_MC_ARG_LOCAL_REF(uint64_t const *, pu64Src, u64Src,         1); /* (see comment above wrt type) */
    5542         IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     5542        IEM_MC_FETCH_MEM_SEG_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    55435543
    55445544        IEM_MC_PREPARE_SSE_USAGE();
     
    60516051            IEM_MC_ACTUALIZE_FPU_STATE_FOR_CHANGE();
    60526052
    6053             IEM_MC_FETCH_MEM_U64(u64Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     6053            IEM_MC_FETCH_MEM_SEG_U64(u64Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    60546054            IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Tmp);
    60556055            IEM_MC_FPU_TO_MMX_MODE();
     
    61036103            IEM_MC_ACTUALIZE_FPU_STATE_FOR_CHANGE();
    61046104
    6105             IEM_MC_FETCH_MEM_U32(u32Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     6105            IEM_MC_FETCH_MEM_SEG_U32(u32Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    61066106            IEM_MC_STORE_MREG_U32_ZX_U64(IEM_GET_MODRM_REG_8(bRm), u32Tmp);
    61076107            IEM_MC_FPU_TO_MMX_MODE();
     
    61576157            IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
    61586158
    6159             IEM_MC_FETCH_MEM_U64(u64Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     6159            IEM_MC_FETCH_MEM_SEG_U64(u64Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    61606160            IEM_MC_STORE_XREG_U64_ZX_U128(IEM_GET_MODRM_REG(pVCpu, bRm), u64Tmp);
    61616161
     
    62076207            IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
    62086208
    6209             IEM_MC_FETCH_MEM_U32(u32Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     6209            IEM_MC_FETCH_MEM_SEG_U32(u32Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    62106210            IEM_MC_STORE_XREG_U32_ZX_U128(IEM_GET_MODRM_REG(pVCpu, bRm), u32Tmp);
    62116211
     
    62656265        IEM_MC_ACTUALIZE_FPU_STATE_FOR_CHANGE();
    62666266
    6267         IEM_MC_FETCH_MEM_U64(u64Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     6267        IEM_MC_FETCH_MEM_SEG_U64(u64Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    62686268        IEM_MC_FPU_TO_MMX_MODE();
    62696269
     
    63186318        IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
    63196319
    6320         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(u128Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     6320        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(u128Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    63216321        IEM_MC_STORE_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm), u128Tmp);
    63226322
     
    63666366        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    63676367        IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
    6368         IEM_MC_FETCH_MEM_U128_NO_AC(u128Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     6368        IEM_MC_FETCH_MEM_SEG_U128_NO_AC(u128Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    63696369        IEM_MC_STORE_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm), u128Tmp);
    63706370
     
    64196419        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX_2_OR(fSse, fAmdMmxExts);
    64206420        IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT();
    6421         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     6421        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    64226422
    64236423        IEM_MC_PREPARE_FPU_USAGE();
     
    64826482        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    64836483
    6484         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     6484        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    64856485        IEM_MC_PREPARE_SSE_USAGE();
    64866486        IEM_MC_REF_XREG_U128(puDst, IEM_GET_MODRM_REG(pVCpu, bRm));
     
    74207420        IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
    74217421
    7422         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     7422        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    74237423        IEM_MC_STORE_XREG_U64_ZX_U128(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    74247424
     
    1053710537                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    1053810538                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    10539                 IEM_MC_FETCH_MEM_U8_ZX_U16(u16Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     10539                IEM_MC_FETCH_MEM_SEG_U8_ZX_U16(u16Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1054010540                IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16Value);
    1054110541                IEM_MC_ADVANCE_PC_AND_FINISH();
     
    1054910549                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    1055010550                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    10551                 IEM_MC_FETCH_MEM_U8_ZX_U32(u32Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     10551                IEM_MC_FETCH_MEM_SEG_U8_ZX_U32(u32Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1055210552                IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Value);
    1055310553                IEM_MC_ADVANCE_PC_AND_FINISH();
     
    1056110561                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    1056210562                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    10563                 IEM_MC_FETCH_MEM_U8_ZX_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     10563                IEM_MC_FETCH_MEM_SEG_U8_ZX_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1056410564                IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Value);
    1056510565                IEM_MC_ADVANCE_PC_AND_FINISH();
     
    1062610626            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    1062710627            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    10628             IEM_MC_FETCH_MEM_U16_ZX_U32(u32Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     10628            IEM_MC_FETCH_MEM_SEG_U16_ZX_U32(u32Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1062910629            IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Value);
    1063010630            IEM_MC_ADVANCE_PC_AND_FINISH();
     
    1063810638            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    1063910639            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    10640             IEM_MC_FETCH_MEM_U16_ZX_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     10640            IEM_MC_FETCH_MEM_SEG_U16_ZX_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1064110641            IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Value);
    1064210642            IEM_MC_ADVANCE_PC_AND_FINISH();
     
    1122611226                \
    1122711227                IEM_MC_ARG(uint16_t,    u16Src,     2); \
    11228                 IEM_MC_FETCH_MEM_U16(u16Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     11228                IEM_MC_FETCH_MEM_SEG_U16(u16Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    1122911229                IEM_MC_ARG(uint16_t *,  pu16Dst,    1); \
    1123011230                IEM_MC_REF_GREG_U16(pu16Dst, IEM_GET_MODRM_REG(pVCpu, bRm)); \
     
    1124411244                \
    1124511245                IEM_MC_ARG(uint32_t,    u32Src,     2); \
    11246                 IEM_MC_FETCH_MEM_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     11246                IEM_MC_FETCH_MEM_SEG_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    1124711247                IEM_MC_ARG(uint32_t *,  pu32Dst,    1); \
    1124811248                IEM_MC_REF_GREG_U32(pu32Dst, IEM_GET_MODRM_REG(pVCpu, bRm)); \
     
    1126511265                \
    1126611266                IEM_MC_ARG(uint64_t,    u64Src,     2); \
    11267                 IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     11267                IEM_MC_FETCH_MEM_SEG_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    1126811268                IEM_MC_ARG(uint64_t *,  pu64Dst,    1); \
    1126911269                IEM_MC_REF_GREG_U64(pu64Dst, IEM_GET_MODRM_REG(pVCpu, bRm)); \
     
    1145311453                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    1145411454                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    11455                 IEM_MC_FETCH_MEM_U8_SX_U16(u16Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     11455                IEM_MC_FETCH_MEM_SEG_U8_SX_U16(u16Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1145611456                IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16Value);
    1145711457                IEM_MC_ADVANCE_PC_AND_FINISH();
     
    1146511465                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    1146611466                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    11467                 IEM_MC_FETCH_MEM_U8_SX_U32(u32Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     11467                IEM_MC_FETCH_MEM_SEG_U8_SX_U32(u32Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1146811468                IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Value);
    1146911469                IEM_MC_ADVANCE_PC_AND_FINISH();
     
    1147711477                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    1147811478                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    11479                 IEM_MC_FETCH_MEM_U8_SX_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     11479                IEM_MC_FETCH_MEM_SEG_U8_SX_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1148011480                IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Value);
    1148111481                IEM_MC_ADVANCE_PC_AND_FINISH();
     
    1153811538            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    1153911539            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    11540             IEM_MC_FETCH_MEM_U16_SX_U32(u32Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     11540            IEM_MC_FETCH_MEM_SEG_U16_SX_U32(u32Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1154111541            IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Value);
    1154211542            IEM_MC_ADVANCE_PC_AND_FINISH();
     
    1155011550            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    1155111551            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    11552             IEM_MC_FETCH_MEM_U16_SX_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     11552            IEM_MC_FETCH_MEM_SEG_U16_SX_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1155311553            IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Value);
    1155411554            IEM_MC_ADVANCE_PC_AND_FINISH();
     
    1184111841        IEM_MC_PREPARE_SSE_USAGE();
    1184211842
    11843         IEM_MC_FETCH_MEM_XMM_ALIGN_SSE_AND_XREG_XMM(Src, IEM_GET_MODRM_REG(pVCpu, bRm), pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     11843        IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE_AND_XREG_XMM(Src, IEM_GET_MODRM_REG(pVCpu, bRm), pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1184411844        IEM_MC_CALL_SSE_AIMPL_3(iemAImpl_cmpps_u128, pDst, pSrc, bImmArg);
    1184511845        IEM_MC_STORE_XREG_XMM(IEM_GET_MODRM_REG(pVCpu, bRm), Dst);
     
    1189811898        IEM_MC_PREPARE_SSE_USAGE();
    1189911899
    11900         IEM_MC_FETCH_MEM_XMM_ALIGN_SSE_AND_XREG_XMM(Src, IEM_GET_MODRM_REG(pVCpu, bRm), pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     11900        IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE_AND_XREG_XMM(Src, IEM_GET_MODRM_REG(pVCpu, bRm), pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1190111901        IEM_MC_CALL_SSE_AIMPL_3(iemAImpl_cmppd_u128, pDst, pSrc, bImmArg);
    1190211902        IEM_MC_STORE_XREG_XMM(IEM_GET_MODRM_REG(pVCpu, bRm), Dst);
     
    1195511955        IEM_MC_PREPARE_SSE_USAGE();
    1195611956
    11957         IEM_MC_FETCH_MEM_XMM_U32_AND_XREG_XMM(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
     11957        IEM_MC_FETCH_MEM_SEG_XMM_U32_AND_XREG_XMM(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
    1195811958                                              0 /*a_iDword*/, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1195911959        IEM_MC_CALL_SSE_AIMPL_3(iemAImpl_cmpss_u128, pDst, pSrc, bImmArg);
     
    1201312013        IEM_MC_PREPARE_SSE_USAGE();
    1201412014
    12015         IEM_MC_FETCH_MEM_XMM_U64_AND_XREG_XMM(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
     12015        IEM_MC_FETCH_MEM_SEG_XMM_U64_AND_XREG_XMM(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
    1201612016                                              0 /*a_iQword */, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1201712017        IEM_MC_CALL_SSE_AIMPL_3(iemAImpl_cmpsd_u128, pDst, pSrc, bImmArg);
     
    1212112121        IEM_MC_PREPARE_FPU_USAGE();
    1212212122
    12123         IEM_MC_FETCH_MEM_U16(uValue, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     12123        IEM_MC_FETCH_MEM_SEG_U16(uValue, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1212412124        IEM_MC_FPU_TO_MMX_MODE();
    1212512125        IEM_MC_STORE_MREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 3, uValue);
     
    1216912169        IEM_MC_PREPARE_SSE_USAGE();
    1217012170
    12171         IEM_MC_FETCH_MEM_U16(uValue, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     12171        IEM_MC_FETCH_MEM_SEG_U16(uValue, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1217212172        IEM_MC_STORE_XREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 7, uValue);
    1217312173        IEM_MC_ADVANCE_PC_AND_FINISH();
     
    1228012280        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    1228112281        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    12282         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     12282        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1228312283
    1228412284        IEM_MC_PREPARE_SSE_USAGE();
     
    1233212332        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    1233312333        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    12334         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     12334        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1233512335
    1233612336        IEM_MC_PREPARE_SSE_USAGE();
     
    1373213732        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    1373313733        IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
    13734         IEM_MC_FETCH_MEM_U128_NO_AC(u128Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     13734        IEM_MC_FETCH_MEM_SEG_U128_NO_AC(u128Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1373513735        IEM_MC_STORE_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm), u128Tmp);
    1373613736
     
    1386913869
    1387013870        IEM_MC_FETCH_GREG_U64(u64EffAddr, X86_GREG_xDI);
    13871         IEM_MC_FETCH_MEM_U64(u64Mem, pVCpu->iem.s.iEffSeg, u64EffAddr);
     13871        IEM_MC_FETCH_MEM_SEG_U64(u64Mem, pVCpu->iem.s.iEffSeg, u64EffAddr);
    1387213872        IEM_MC_REF_MREG_U64_CONST(puSrc,  IEM_GET_MODRM_REG_8(bRm));
    1387313873        IEM_MC_REF_MREG_U64_CONST(puMsk,  IEM_GET_MODRM_RM_8(bRm));
     
    1390713907
    1390813908        IEM_MC_FETCH_GREG_U64(u64EffAddr, X86_GREG_xDI);
    13909         IEM_MC_FETCH_MEM_U128(u128Mem, pVCpu->iem.s.iEffSeg, u64EffAddr);
     13909        IEM_MC_FETCH_MEM_SEG_U128(u128Mem, pVCpu->iem.s.iEffSeg, u64EffAddr);
    1391013910        IEM_MC_REF_XREG_U128_CONST(puSrc, IEM_GET_MODRM_REG(pVCpu, bRm));
    1391113911        IEM_MC_REF_XREG_U128_CONST(puMsk, IEM_GET_MODRM_RM(pVCpu, bRm));
  • trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllInstVexMap1-x86.cpp.h

    r108267 r108288  
    105105            IEM_MC_LOCAL(X86YMMREG,             uSrc2);
    106106            IEM_MC_ARG_LOCAL_REF(PCX86YMMREG,   puSrc2, uSrc2, 2);
    107             IEM_MC_FETCH_MEM_YMM_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     107            IEM_MC_FETCH_MEM_SEG_YMM_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    108108            IEM_MC_LOCAL(X86YMMREG,             uSrc1);
    109109            IEM_MC_ARG_LOCAL_REF(PCX86YMMREG,   puSrc1, uSrc1, 1);
     
    129129            IEM_MC_LOCAL(X86XMMREG,             uSrc2);
    130130            IEM_MC_ARG_LOCAL_REF(PCX86XMMREG,   puSrc2, uSrc2, 2);
    131             IEM_MC_FETCH_MEM_XMM_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     131            IEM_MC_FETCH_MEM_SEG_XMM_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    132132            IEM_MC_ARG(PCX86XMMREG,             puSrc1,        1);
    133133            IEM_MC_REF_XREG_XMM_CONST(puSrc1,   IEM_GET_EFFECTIVE_VVVV(pVCpu));
     
    192192        IEM_MC_LOCAL(RTFLOAT32U,            r32Src2);
    193193        IEM_MC_ARG_LOCAL_REF(PCRTFLOAT32U,  pr32Src2, r32Src2,  2);
    194         IEM_MC_FETCH_MEM_R32(r32Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     194        IEM_MC_FETCH_MEM_SEG_R32(r32Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    195195        IEM_MC_LOCAL(X86XMMREG,             uDst);
    196196        IEM_MC_ARG_LOCAL_REF(PX86XMMREG,    puDst,    uDst,     0);
     
    255255        IEM_MC_LOCAL(RTFLOAT64U,            r64Src2);
    256256        IEM_MC_ARG_LOCAL_REF(PCRTFLOAT64U,  pr64Src2, r64Src2,  2);
    257         IEM_MC_FETCH_MEM_R64(r64Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     257        IEM_MC_FETCH_MEM_SEG_R64(r64Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    258258        IEM_MC_LOCAL(X86XMMREG,             uDst);
    259259        IEM_MC_ARG_LOCAL_REF(PX86XMMREG,    puDst,    uDst,     0);
     
    344344            IEM_MC_PREPARE_AVX_USAGE();
    345345
    346             IEM_MC_FETCH_MEM_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     346            IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    347347            IEM_MC_FETCH_YREG_U256(uSrc1,      IEM_GET_EFFECTIVE_VVVV(pVCpu));
    348348            IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnU256, puDst, puSrc1, puSrc2);
     
    366366            IEM_MC_PREPARE_AVX_USAGE();
    367367
    368             IEM_MC_FETCH_MEM_U128_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     368            IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    369369            IEM_MC_REF_XREG_U128(puDst,         IEM_GET_MODRM_REG(pVCpu, bRm));
    370370            IEM_MC_REF_XREG_U128_CONST(puSrc1,  IEM_GET_EFFECTIVE_VVVV(pVCpu));
     
    479479            IEM_MC_PREPARE_AVX_USAGE();
    480480
    481             IEM_MC_FETCH_MEM_U256_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     481            IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    482482            IEM_MC_CALL_VOID_AIMPL_2(pImpl->pfnU256, puDst, puSrc);
    483483            IEM_MC_STORE_YREG_U256_ZX_VLMAX(   IEM_GET_MODRM_REG(pVCpu, bRm), uDst);
     
    499499            IEM_MC_PREPARE_AVX_USAGE();
    500500
    501             IEM_MC_FETCH_MEM_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     501            IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    502502            IEM_MC_REF_XREG_U128(puDst,         IEM_GET_MODRM_REG(pVCpu, bRm));
    503503            IEM_MC_CALL_VOID_AIMPL_2(pImpl->pfnU128, puDst, puSrc);
     
    577577            IEM_MC_LOCAL(X86YMMREG,             uSrc);
    578578            IEM_MC_ARG_LOCAL_REF(PCX86YMMREG,   puSrc, uSrc,  1);
    579             IEM_MC_FETCH_MEM_YMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     579            IEM_MC_FETCH_MEM_SEG_YMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    580580            IEM_MC_LOCAL(X86YMMREG,             uDst);
    581581            IEM_MC_ARG_LOCAL_REF(PX86YMMREG,    puDst,  uDst, 0);
     
    598598            IEM_MC_LOCAL(X86XMMREG,             uSrc);
    599599            IEM_MC_ARG_LOCAL_REF(PCX86XMMREG,   puSrc, uSrc, 1);
    600             IEM_MC_FETCH_MEM_XMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     600            IEM_MC_FETCH_MEM_SEG_XMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    601601            IEM_MC_CALL_AVX_AIMPL_2(pImpl->pfnU128, puDst, puSrc);
    602602            IEM_MC_STORE_XREG_XMM(             IEM_GET_MODRM_REG(pVCpu, bRm), uDst);
     
    681681        IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    682682
    683         IEM_MC_FETCH_MEM_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     683        IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    684684        IEM_MC_STORE_YREG_U128_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    685685
     
    701701        IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    702702
    703         IEM_MC_FETCH_MEM_U256_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     703        IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    704704        IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    705705
     
    756756        IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    757757
    758         IEM_MC_FETCH_MEM_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     758        IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    759759        IEM_MC_STORE_YREG_U128_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    760760
     
    776776        IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    777777
    778         IEM_MC_FETCH_MEM_U256_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     778        IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    779779        IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    780780
     
    839839        IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    840840
    841         IEM_MC_FETCH_MEM_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     841        IEM_MC_FETCH_MEM_SEG_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    842842        IEM_MC_STORE_YREG_U32_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    843843
     
    903903        IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    904904
    905         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     905        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    906906        IEM_MC_STORE_YREG_U64_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    907907
     
    12471247        IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    12481248
    1249         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1249        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    12501250        IEM_MC_MERGE_YREG_U64LOCAL_U64HI_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm),
    12511251                                                  uSrc,
     
    12861286        IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    12871287
    1288         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1288        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    12891289        IEM_MC_MERGE_YREG_U64LOCAL_U64HI_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm),
    12901290                                                  uSrc,
     
    13901390            IEM_MC_PREPARE_AVX_USAGE();
    13911391
    1392             IEM_MC_FETCH_MEM_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1392            IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    13931393            IEM_MC_STORE_XREG_U32_U128(IEM_GET_MODRM_REG(pVCpu, bRm), 0, uSrc, 0);
    13941394            IEM_MC_STORE_XREG_U32_U128(IEM_GET_MODRM_REG(pVCpu, bRm), 1, uSrc, 0);
     
    14101410
    14111411            IEM_MC_LOCAL(RTUINT256U,            uSrc);
    1412             IEM_MC_FETCH_MEM_U256_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1412            IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    14131413
    14141414            IEM_MC_STORE_YREG_U32_U256(IEM_GET_MODRM_REG(pVCpu, bRm), 0, uSrc, 0);
     
    15041504            IEM_MC_PREPARE_AVX_USAGE();
    15051505
    1506             IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1506            IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    15071507            IEM_MC_STORE_XREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), 0 /* a_iQword*/, uSrc);
    15081508            IEM_MC_STORE_XREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), 1 /* a_iQword*/, uSrc);
     
    15231523
    15241524            IEM_MC_LOCAL(RTUINT256U,            uSrc);
    1525             IEM_MC_FETCH_MEM_U256(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1525            IEM_MC_FETCH_MEM_SEG_U256(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    15261526
    15271527            IEM_MC_STORE_YREG_U64_U256(IEM_GET_MODRM_REG(pVCpu, bRm), 0 /*a_iQwDst*/, uSrc, 0 /*a_iQwSrc*/);
     
    17291729        IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    17301730
    1731         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1731        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    17321732        IEM_MC_MERGE_YREG_U64LO_U64LOCAL_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm),
    17331733                                                  IEM_GET_EFFECTIVE_VVVV(pVCpu) /*Hq*/,
     
    17641764        IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    17651765
    1766         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1766        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    17671767        IEM_MC_MERGE_YREG_U64LO_U64LOCAL_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm),
    17681768                                                  IEM_GET_EFFECTIVE_VVVV(pVCpu) /*Hq*/,
     
    18641864            IEM_MC_PREPARE_AVX_USAGE();
    18651865
    1866             IEM_MC_FETCH_MEM_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1866            IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    18671867            IEM_MC_STORE_XREG_U32_U128(IEM_GET_MODRM_REG(pVCpu, bRm), 0, uSrc, 1);
    18681868            IEM_MC_STORE_XREG_U32_U128(IEM_GET_MODRM_REG(pVCpu, bRm), 1, uSrc, 1);
     
    18841884
    18851885            IEM_MC_LOCAL(RTUINT256U,            uSrc);
    1886             IEM_MC_FETCH_MEM_U256_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1886            IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    18871887
    18881888            IEM_MC_STORE_YREG_U32_U256(IEM_GET_MODRM_REG(pVCpu, bRm), 0, uSrc, 1);
     
    20702070            IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    20712071
    2072             IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2072            IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    20732073            IEM_MC_STORE_YREG_U128_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    20742074
     
    20872087            IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    20882088
    2089             IEM_MC_FETCH_MEM_U256_ALIGN_AVX(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2089            IEM_MC_FETCH_MEM_SEG_U256_ALIGN_AVX(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    20902090            IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    20912091
     
    21472147            IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    21482148
    2149             IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2149            IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    21502150            IEM_MC_STORE_YREG_U128_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    21512151
     
    21642164            IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    21652165
    2166             IEM_MC_FETCH_MEM_U256_ALIGN_AVX(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2166            IEM_MC_FETCH_MEM_SEG_U256_ALIGN_AVX(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    21672167            IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    21682168
     
    24162416            IEM_MC_LOCAL(int64_t,    i64Src2);
    24172417            IEM_MC_ARG_LOCAL_REF(const int64_t *,   pi64Src2, i64Src2, 2);
    2418             IEM_MC_FETCH_MEM_I64(i64Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2418            IEM_MC_FETCH_MEM_SEG_I64(i64Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    24192419            IEM_MC_CALL_AVX_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vcvtsi2ss_u128_i64, iemAImpl_vcvtsi2ss_u128_i64_fallback),
    24202420                                    puDst, puSrc1, pi64Src2);
     
    24642464            IEM_MC_LOCAL(int32_t,    i32Src2);
    24652465            IEM_MC_ARG_LOCAL_REF(const int32_t *,   pi32Src2, i32Src2, 2);
    2466             IEM_MC_FETCH_MEM_I32(i32Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2466            IEM_MC_FETCH_MEM_SEG_I32(i32Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    24672467            IEM_MC_CALL_AVX_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vcvtsi2ss_u128_i32, iemAImpl_vcvtsi2ss_u128_i32_fallback),
    24682468                                    puDst, puSrc1, pi32Src2);
     
    25212521            IEM_MC_LOCAL(int64_t,    i64Src2);
    25222522            IEM_MC_ARG_LOCAL_REF(const int64_t *,   pi64Src2, i64Src2, 2);
    2523             IEM_MC_FETCH_MEM_I64(i64Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2523            IEM_MC_FETCH_MEM_SEG_I64(i64Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    25242524            IEM_MC_CALL_AVX_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vcvtsi2sd_u128_i64, iemAImpl_vcvtsi2sd_u128_i64_fallback),
    25252525                                    puDst, puSrc1, pi64Src2);
     
    25692569            IEM_MC_LOCAL(int32_t,    i32Src2);
    25702570            IEM_MC_ARG_LOCAL_REF(const int32_t *,   pi32Src2, i32Src2, 2);
    2571             IEM_MC_FETCH_MEM_I32(i32Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2571            IEM_MC_FETCH_MEM_SEG_I32(i32Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    25722572            IEM_MC_CALL_AVX_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vcvtsi2sd_u128_i32, iemAImpl_vcvtsi2sd_u128_i32_fallback),
    25732573                                    puDst, puSrc1, pi32Src2);
     
    27622762            IEM_MC_LOCAL(RTFLOAT32U, r32Src); \
    27632763            IEM_MC_ARG_LOCAL_REF(PCRTFLOAT32U, pr32Src, r32Src,     1); \
    2764             IEM_MC_FETCH_MEM_R32(r32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     2764            IEM_MC_FETCH_MEM_SEG_R32(r32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    27652765            IEM_MC_LOCAL(        int64_t,      i64Dst); \
    27662766            IEM_MC_ARG_LOCAL_REF(int64_t *,    pi64Dst, i64Dst,     0); \
     
    28062806            IEM_MC_LOCAL(RTFLOAT32U, r32Src); \
    28072807            IEM_MC_ARG_LOCAL_REF(PCRTFLOAT32U, pr32Src, r32Src,     1); \
    2808             IEM_MC_FETCH_MEM_R32(r32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     2808            IEM_MC_FETCH_MEM_SEG_R32(r32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    28092809            IEM_MC_LOCAL(        int32_t,      i32Dst); \
    28102810            IEM_MC_ARG_LOCAL_REF(int32_t *,    pi32Dst, i32Dst,     0); \
     
    28562856            IEM_MC_LOCAL(RTFLOAT64U, r64Src); \
    28572857            IEM_MC_ARG_LOCAL_REF(PCRTFLOAT64U, pr64Src, r64Src,     1); \
    2858             IEM_MC_FETCH_MEM_R64(r64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     2858            IEM_MC_FETCH_MEM_SEG_R64(r64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    28592859            IEM_MC_LOCAL(        int64_t,      i64Dst); \
    28602860            IEM_MC_ARG_LOCAL_REF(int64_t *,    pi64Dst, i64Dst,     0); \
     
    29002900            IEM_MC_LOCAL(RTFLOAT64U, r64Src); \
    29012901            IEM_MC_ARG_LOCAL_REF(PCRTFLOAT64U, pr64Src, r64Src,     1); \
    2902             IEM_MC_FETCH_MEM_R64(r64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     2902            IEM_MC_FETCH_MEM_SEG_R64(r64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    29032903            IEM_MC_LOCAL(        int32_t,      i32Dst); \
    29042904            IEM_MC_ARG_LOCAL_REF(int32_t *,    pi32Dst, i32Dst,     0); \
     
    30003000        IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX(fAvx);
    30013001        IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    3002         IEM_MC_FETCH_MEM_R32(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3002        IEM_MC_FETCH_MEM_SEG_R32(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    30033003
    30043004        IEM_MC_PREPARE_AVX_USAGE();
     
    30633063        IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX(fAvx);
    30643064        IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    3065         IEM_MC_FETCH_MEM_R64(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3065        IEM_MC_FETCH_MEM_SEG_R64(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    30663066
    30673067        IEM_MC_PREPARE_AVX_USAGE();
     
    31293129        IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX(fAvx);
    31303130        IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    3131         IEM_MC_FETCH_MEM_R32(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3131        IEM_MC_FETCH_MEM_SEG_R32(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    31323132
    31333133        IEM_MC_PREPARE_AVX_USAGE();
     
    31923192        IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX(fAvx);
    31933193        IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    3194         IEM_MC_FETCH_MEM_R64(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3194        IEM_MC_FETCH_MEM_SEG_R64(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    31953195
    31963196        IEM_MC_PREPARE_AVX_USAGE();
     
    36583658            IEM_MC_LOCAL(X86XMMREG,             uSrc);
    36593659            IEM_MC_ARG_LOCAL_REF(PCX86XMMREG,   puSrc, uSrc, 1);
    3660             IEM_MC_FETCH_MEM_XMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3660            IEM_MC_FETCH_MEM_SEG_XMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    36613661            IEM_MC_LOCAL(X86YMMREG,             uDst);
    36623662            IEM_MC_ARG_LOCAL_REF(PX86YMMREG,    puDst,  uDst,  0);
     
    36803680            IEM_MC_LOCAL(        uint64_t,                  u64Src);
    36813681            IEM_MC_ARG_LOCAL_REF(const uint64_t *, pu64Src, u64Src, 1);
    3682             IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3682            IEM_MC_FETCH_MEM_SEG_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    36833683            IEM_MC_LOCAL(        X86XMMREG,     uDst);
    36843684            IEM_MC_ARG_LOCAL_REF(PX86XMMREG,    puDst, uDst, 0);
     
    37643764            IEM_MC_LOCAL(        X86YMMREG,            uSrc);
    37653765            IEM_MC_ARG_LOCAL_REF(PCX86YMMREG,   puSrc, uSrc, 1);
    3766             IEM_MC_FETCH_MEM_YMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3766            IEM_MC_FETCH_MEM_SEG_YMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    37673767            IEM_MC_LOCAL(        X86XMMREG,            uDst);
    37683768            IEM_MC_ARG_LOCAL_REF(PX86XMMREG,    puDst, uDst, 0);
     
    37873787            IEM_MC_LOCAL(X86XMMREG,             uSrc);
    37883788            IEM_MC_ARG_LOCAL_REF(PCX86XMMREG,   puSrc, uSrc, 1);
    3789             IEM_MC_FETCH_MEM_XMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3789            IEM_MC_FETCH_MEM_SEG_XMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    37903790            IEM_MC_LOCAL(        X86XMMREG,     uDst);
    37913791            IEM_MC_ARG_LOCAL_REF(PX86XMMREG,    puDst, uDst, 0);
     
    41554155//        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    41564156//        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    4157 //        IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); /* Most CPUs probably only right high qword */
     4157//        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); /* Most CPUs probably only right high qword */
    41584158//
    41594159//        IEM_MC_PREPARE_SSE_USAGE();
     
    43054305            IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    43064306
    4307             IEM_MC_FETCH_MEM_U64(u64Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4307            IEM_MC_FETCH_MEM_SEG_U64(u64Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    43084308            IEM_MC_STORE_YREG_U64_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u64Tmp);
    43094309
     
    43554355            IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    43564356
    4357             IEM_MC_FETCH_MEM_U32(u32Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4357            IEM_MC_FETCH_MEM_SEG_U32(u32Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    43584358            IEM_MC_STORE_YREG_U32_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u32Tmp);
    43594359
     
    44174417        IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    44184418
    4419         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(u128Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4419        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(u128Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    44204420        IEM_MC_STORE_YREG_U128_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u128Tmp);
    44214421
     
    44374437        IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    44384438
    4439         IEM_MC_FETCH_MEM_U256_ALIGN_AVX(u256Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4439        IEM_MC_FETCH_MEM_SEG_U256_ALIGN_AVX(u256Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    44404440        IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u256Tmp);
    44414441
     
    44924492        IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    44934493
    4494         IEM_MC_FETCH_MEM_U128_NO_AC(u128Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4494        IEM_MC_FETCH_MEM_SEG_U128_NO_AC(u128Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    44954495        IEM_MC_STORE_YREG_U128_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u128Tmp);
    44964496
     
    45124512        IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    45134513
    4514         IEM_MC_FETCH_MEM_U256_NO_AC(u256Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4514        IEM_MC_FETCH_MEM_SEG_U256_NO_AC(u256Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    45154515        IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u256Tmp);
    45164516
     
    45954595            IEM_MC_PREPARE_AVX_USAGE();
    45964596
    4597             IEM_MC_FETCH_MEM_U256_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4597            IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    45984598            IEM_MC_CALL_VOID_AIMPL_3(pfnU256, puDst, puSrc, bImmArg);
    45994599            IEM_MC_STORE_YREG_U256_ZX_VLMAX(    IEM_GET_MODRM_REG(pVCpu, bRm), uDst);
     
    46174617            IEM_MC_PREPARE_AVX_USAGE();
    46184618
    4619             IEM_MC_FETCH_MEM_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     4619            IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    46204620            IEM_MC_REF_XREG_U128(puDst,         IEM_GET_MODRM_REG(pVCpu, bRm));
    46214621            IEM_MC_CALL_VOID_AIMPL_3(pfnU128, puDst, puSrc, bImmArg);
     
    53345334        IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    53355335
    5336         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     5336        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    53375337        IEM_MC_STORE_YREG_U64_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    53385338
     
    57815781            IEM_MC_ARG_LOCAL_REF(PCIEMMEDIAF2YMMSRC,    puSrc,         uSrc,    1); \
    57825782            IEM_MC_ARG_CONST(uint8_t,                   bImmArg, /*=*/ bImm,    2); \
    5783             IEM_MC_FETCH_MEM_YMM_NO_AC_AND_YREG_YMM(uSrc, IEM_GET_EFFECTIVE_VVVV(pVCpu), pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     5783            IEM_MC_FETCH_MEM_SEG_YMM_NO_AC_AND_YREG_YMM(uSrc, IEM_GET_EFFECTIVE_VVVV(pVCpu), pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    57845784            IEM_MC_CALL_AVX_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(fAvx, \
    57855785                                                                RT_CONCAT3(iemAImpl_,a_Instr,_u256), \
     
    58045804            IEM_MC_ARG_LOCAL_REF(PCIEMMEDIAF2XMMSRC,    puSrc,         uSrc,    1); \
    58055805            IEM_MC_ARG_CONST(uint8_t,                   bImmArg, /*=*/ bImm,    2); \
    5806             IEM_MC_FETCH_MEM_XMM_NO_AC_AND_XREG_XMM(uSrc, IEM_GET_EFFECTIVE_VVVV(pVCpu), pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     5806            IEM_MC_FETCH_MEM_SEG_XMM_NO_AC_AND_XREG_XMM(uSrc, IEM_GET_EFFECTIVE_VVVV(pVCpu), pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    58075807            IEM_MC_CALL_AVX_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(fAvx, \
    58085808                                                                RT_CONCAT3(iemAImpl_,a_Instr,_u128), \
     
    58795879        IEM_MC_LOCAL(IEMMEDIAF2XMMSRC,              uSrc);
    58805880        IEM_MC_ARG_LOCAL_REF(PCIEMMEDIAF2XMMSRC,    puSrc,         uSrc,    1);
    5881         IEM_MC_FETCH_MEM_XMM_U32_AND_XREG_XMM(uSrc, IEM_GET_EFFECTIVE_VVVV(pVCpu),
     5881        IEM_MC_FETCH_MEM_SEG_XMM_U32_AND_XREG_XMM(uSrc, IEM_GET_EFFECTIVE_VVVV(pVCpu),
    58825882                                              0 /*a_iDword*/, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    58835883        IEM_MC_LOCAL(X86XMMREG,                     uDst);
     
    59395939        IEM_MC_LOCAL(IEMMEDIAF2XMMSRC,              uSrc);
    59405940        IEM_MC_ARG_LOCAL_REF(PCIEMMEDIAF2XMMSRC,    puSrc,         uSrc,    1);
    5941         IEM_MC_FETCH_MEM_XMM_U64_AND_XREG_XMM(uSrc, IEM_GET_EFFECTIVE_VVVV(pVCpu),
     5941        IEM_MC_FETCH_MEM_SEG_XMM_U64_AND_XREG_XMM(uSrc, IEM_GET_EFFECTIVE_VVVV(pVCpu),
    59425942                                              0 /*a_iQword*/, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    59435943        IEM_MC_LOCAL(X86XMMREG,                     uDst);
     
    60056005
    60066006        IEM_MC_FETCH_XREG_U128(uSrc1,  IEM_GET_EFFECTIVE_VVVV(pVCpu));
    6007         IEM_MC_FETCH_MEM_U16(uValue,   pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     6007        IEM_MC_FETCH_MEM_SEG_U16(uValue,   pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    60086008        IEM_MC_STORE_XREG_U128(        IEM_GET_MODRM_REG(pVCpu, bRm), uSrc1);
    60096009        IEM_MC_STORE_XREG_U16(         IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 7, uValue);
     
    61226122            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); \
    61236123            IEM_MC_PREPARE_AVX_USAGE(); \
    6124             IEM_MC_FETCH_MEM_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     6124            IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    61256125            IEM_MC_FETCH_YREG_U256(uSrc1,      IEM_GET_EFFECTIVE_VVVV(pVCpu)); \
    61266126            IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fAvx2, iemAImpl_ ## a_Instr ## _u256, \
     
    61446144            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); \
    61456145            IEM_MC_PREPARE_AVX_USAGE(); \
    6146             IEM_MC_FETCH_MEM_U128_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     6146            IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    61476147            IEM_MC_REF_XREG_U128(puDst,         IEM_GET_MODRM_REG(pVCpu, bRm)); \
    61486148            IEM_MC_REF_XREG_U128_CONST(puSrc1,  IEM_GET_EFFECTIVE_VVVV(pVCpu)); \
     
    66656665            IEM_MC_LOCAL(        X86YMMREG,            uSrc);
    66666666            IEM_MC_ARG_LOCAL_REF(PCX86YMMREG,   puSrc, uSrc, 1);
    6667             IEM_MC_FETCH_MEM_YMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     6667            IEM_MC_FETCH_MEM_SEG_YMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    66686668            IEM_MC_LOCAL(        X86XMMREG,            uDst);
    66696669            IEM_MC_ARG_LOCAL_REF(PX86XMMREG,    puDst, uDst, 0);
     
    66886688            IEM_MC_LOCAL(X86XMMREG,             uSrc);
    66896689            IEM_MC_ARG_LOCAL_REF(PCX86XMMREG,   puSrc, uSrc, 1);
    6690             IEM_MC_FETCH_MEM_XMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     6690            IEM_MC_FETCH_MEM_SEG_XMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    66916691            IEM_MC_LOCAL(        X86XMMREG,     uDst);
    66926692            IEM_MC_ARG_LOCAL_REF(PX86XMMREG,    puDst, uDst, 0);
     
    67706770            IEM_MC_LOCAL(X86XMMREG,             uSrc);
    67716771            IEM_MC_ARG_LOCAL_REF(PCX86XMMREG,   puSrc, uSrc, 1);
    6772             IEM_MC_FETCH_MEM_XMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     6772            IEM_MC_FETCH_MEM_SEG_XMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    67736773            IEM_MC_LOCAL(X86YMMREG,             uDst);
    67746774            IEM_MC_ARG_LOCAL_REF(PX86YMMREG,    puDst,  uDst,  0);
     
    67926792            IEM_MC_LOCAL(        uint64_t,                  u64Src);
    67936793            IEM_MC_ARG_LOCAL_REF(const uint64_t *, pu64Src, u64Src, 1);
    6794             IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     6794            IEM_MC_FETCH_MEM_SEG_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    67956795            IEM_MC_LOCAL(        X86XMMREG,     uDst);
    67966796            IEM_MC_ARG_LOCAL_REF(PX86XMMREG,    puDst, uDst, 0);
     
    68766876            IEM_MC_LOCAL(        X86YMMREG,            uSrc);
    68776877            IEM_MC_ARG_LOCAL_REF(PCX86YMMREG,   puSrc, uSrc, 1);
    6878             IEM_MC_FETCH_MEM_YMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     6878            IEM_MC_FETCH_MEM_SEG_YMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    68796879            IEM_MC_LOCAL(        X86XMMREG,            uDst);
    68806880            IEM_MC_ARG_LOCAL_REF(PX86XMMREG,    puDst, uDst, 0);
     
    68996899            IEM_MC_LOCAL(X86XMMREG,             uSrc);
    69006900            IEM_MC_ARG_LOCAL_REF(PCX86XMMREG,   puSrc, uSrc, 1);
    6901             IEM_MC_FETCH_MEM_XMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     6901            IEM_MC_FETCH_MEM_SEG_XMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    69026902            IEM_MC_LOCAL(        X86XMMREG,     uDst);
    69036903            IEM_MC_ARG_LOCAL_REF(PX86XMMREG,    puDst, uDst, 0);
     
    71467146        IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    71477147
    7148         IEM_MC_FETCH_MEM_U128_NO_AC(u128Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     7148        IEM_MC_FETCH_MEM_SEG_U128_NO_AC(u128Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    71497149        IEM_MC_STORE_YREG_U128_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u128Tmp);
    71507150
     
    71667166        IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    71677167
    7168         IEM_MC_FETCH_MEM_U256_NO_AC(u256Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     7168        IEM_MC_FETCH_MEM_SEG_U256_NO_AC(u256Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    71697169        IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u256Tmp);
    71707170
     
    72727272
    72737273        IEM_MC_FETCH_GREG_U64(u64EffAddr, X86_GREG_xDI);
    7274         IEM_MC_FETCH_MEM_U128(u128Mem, pVCpu->iem.s.iEffSeg, u64EffAddr);
     7274        IEM_MC_FETCH_MEM_SEG_U128(u128Mem, pVCpu->iem.s.iEffSeg, u64EffAddr);
    72757275        IEM_MC_REF_XREG_U128_CONST(puSrc, IEM_GET_MODRM_REG(pVCpu, bRm));
    72767276        IEM_MC_REF_XREG_U128_CONST(puMsk, IEM_GET_MODRM_RM(pVCpu, bRm));
  • trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllInstVexMap2-x86.cpp.h

    r108267 r108288  
    8181        IEM_MC_LOCAL(RTUINT128U,            uSrc2);
    8282        IEM_MC_ARG_LOCAL_REF(PCRTUINT128U,  puSrc2, uSrc2, 2);
    83         IEM_MC_FETCH_MEM_U128_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     83        IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    8484        IEM_MC_ARG(PCRTUINT128U,            puSrc1,        1);
    8585        IEM_MC_REF_XREG_U128_CONST(puSrc1,  IEM_GET_EFFECTIVE_VVVV(pVCpu));
     
    338338            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); \
    339339            IEM_MC_PREPARE_AVX_USAGE(); \
    340             IEM_MC_FETCH_MEM_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     340            IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    341341            IEM_MC_FETCH_YREG_U256(uSrc1,      IEM_GET_MODRM_REG(pVCpu, bRm)); \
    342342            IEM_MC_REF_EFLAGS(pEFlags); \
     
    359359            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); \
    360360            IEM_MC_PREPARE_AVX_USAGE(); \
    361             IEM_MC_FETCH_MEM_U128_NO_AC(uSrc2,  pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     361            IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc2,  pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    362362            IEM_MC_REF_XREG_U128_CONST(puSrc1,  IEM_GET_MODRM_REG(pVCpu, bRm)); \
    363363            IEM_MC_REF_EFLAGS(pEFlags); \
     
    464464        IEM_MC_LOCAL(RTUINT256U,            uSrc2);
    465465        IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc2, uSrc2, 2);
    466         IEM_MC_FETCH_MEM_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     466        IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    467467        IEM_MC_LOCAL(RTUINT256U,            uSrc1);
    468468        IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc1, uSrc1, 1);
     
    552552            IEM_MC_PREPARE_AVX_USAGE();
    553553
    554             IEM_MC_FETCH_MEM_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     554            IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    555555            IEM_MC_FETCH_YREG_U256(uSrc1,      IEM_GET_MODRM_REG(pVCpu, bRm));
    556556            IEM_MC_REF_EFLAGS(pEFlags);
     
    575575            IEM_MC_PREPARE_AVX_USAGE();
    576576
    577             IEM_MC_FETCH_MEM_U128_NO_AC(uSrc2,  pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     577            IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc2,  pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    578578            IEM_MC_REF_XREG_U128_CONST(puSrc1,  IEM_GET_MODRM_REG(pVCpu, bRm));
    579579            IEM_MC_REF_EFLAGS(pEFlags);
     
    646646            IEM_MC_PREPARE_AVX_USAGE();
    647647
    648             IEM_MC_FETCH_MEM_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     648            IEM_MC_FETCH_MEM_SEG_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    649649            IEM_MC_BROADCAST_YREG_U32_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    650650
     
    663663            IEM_MC_PREPARE_AVX_USAGE();
    664664
    665             IEM_MC_FETCH_MEM_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     665            IEM_MC_FETCH_MEM_SEG_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    666666            IEM_MC_BROADCAST_XREG_U32_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    667667
     
    730730        IEM_MC_PREPARE_AVX_USAGE();
    731731
    732         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     732        IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    733733        IEM_MC_BROADCAST_YREG_U64_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    734734
     
    768768        IEM_MC_PREPARE_AVX_USAGE();
    769769
    770         IEM_MC_FETCH_MEM_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     770        IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    771771        IEM_MC_BROADCAST_YREG_U128_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    772772
     
    896896            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); \
    897897            IEM_MC_PREPARE_AVX_USAGE(); \
    898             IEM_MC_FETCH_MEM_U ## a_SrcWidth (uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     898            IEM_MC_FETCH_MEM_SEG_U ## a_SrcWidth (uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    899899            IEM_MC_REF_XREG_U128(puDst,  IEM_GET_MODRM_REG(pVCpu, bRm)); \
    900900            IEM_MC_CALL_VOID_AIMPL_2(IEM_SELECT_HOST_OR_FALLBACK(fAvx2, iemAImpl_ ## a_Instr ## _u128, \
     
    913913     /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */
    914914    IEMOP_MNEMONIC2(VEX_RM, VPMOVSXBW, vpmovsxbw, Vx, Wq, DISOPTYPE_HARMLESS, 0);
    915     IEMOP_BODY_VPMOV_S_Z(vpmovsxbw, 64, IEM_MC_FETCH_MEM_U128_NO_AC);
     915    IEMOP_BODY_VPMOV_S_Z(vpmovsxbw, 64, IEM_MC_FETCH_MEM_SEG_U128_NO_AC);
    916916}
    917917
     
    922922     /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */
    923923    IEMOP_MNEMONIC2(VEX_RM, VPMOVSXBD, vpmovsxbd, Vx, Wq, DISOPTYPE_HARMLESS, 0);
    924     IEMOP_BODY_VPMOV_S_Z(vpmovsxbd, 32, IEM_MC_FETCH_MEM_U128);
     924    IEMOP_BODY_VPMOV_S_Z(vpmovsxbd, 32, IEM_MC_FETCH_MEM_SEG_U128);
    925925}
    926926
     
    931931     /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */
    932932    IEMOP_MNEMONIC2(VEX_RM, VPMOVSXBQ, vpmovsxbq, Vx, Wq, DISOPTYPE_HARMLESS, 0);
    933     IEMOP_BODY_VPMOV_S_Z(vpmovsxbq, 16, IEM_MC_FETCH_MEM_U128);
     933    IEMOP_BODY_VPMOV_S_Z(vpmovsxbq, 16, IEM_MC_FETCH_MEM_SEG_U128);
    934934}
    935935
     
    940940     /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */
    941941    IEMOP_MNEMONIC2(VEX_RM, VPMOVSXWD, vpmovsxwd, Vx, Wq, DISOPTYPE_HARMLESS, 0);
    942     IEMOP_BODY_VPMOV_S_Z(vpmovsxwd, 64, IEM_MC_FETCH_MEM_U128_NO_AC);
     942    IEMOP_BODY_VPMOV_S_Z(vpmovsxwd, 64, IEM_MC_FETCH_MEM_SEG_U128_NO_AC);
    943943}
    944944
     
    949949     /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */
    950950    IEMOP_MNEMONIC2(VEX_RM, VPMOVSXWQ, vpmovsxwq, Vx, Wq, DISOPTYPE_HARMLESS, 0);
    951     IEMOP_BODY_VPMOV_S_Z(vpmovsxwq, 32, IEM_MC_FETCH_MEM_U128);
     951    IEMOP_BODY_VPMOV_S_Z(vpmovsxwq, 32, IEM_MC_FETCH_MEM_SEG_U128);
    952952}
    953953
     
    958958     /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */
    959959    IEMOP_MNEMONIC2(VEX_RM, VPMOVSXDQ, vpmovsxdq, Vx, Wq, DISOPTYPE_HARMLESS, 0);
    960     IEMOP_BODY_VPMOV_S_Z(vpmovsxdq, 64, IEM_MC_FETCH_MEM_U128_NO_AC);
     960    IEMOP_BODY_VPMOV_S_Z(vpmovsxdq, 64, IEM_MC_FETCH_MEM_SEG_U128_NO_AC);
    961961}
    962962
     
    10141014            IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    10151015
    1016             IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1016            IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    10171017            IEM_MC_STORE_YREG_U128_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    10181018
     
    10451045            IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    10461046
    1047             IEM_MC_FETCH_MEM_U256_ALIGN_AVX(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1047            IEM_MC_FETCH_MEM_SEG_U256_ALIGN_AVX(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    10481048            IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    10491049
     
    13101310     /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */
    13111311    IEMOP_MNEMONIC2(VEX_RM, VPMOVZXBW, vpmovzxbw, Vx, Wq, DISOPTYPE_HARMLESS, 0);
    1312     IEMOP_BODY_VPMOV_S_Z(vpmovzxbw, 64, IEM_MC_FETCH_MEM_U128_NO_AC);
     1312    IEMOP_BODY_VPMOV_S_Z(vpmovzxbw, 64, IEM_MC_FETCH_MEM_SEG_U128_NO_AC);
    13131313}
    13141314
     
    13191319     /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */
    13201320    IEMOP_MNEMONIC2(VEX_RM, VPMOVZXBD, vpmovzxbd, Vx, Wq, DISOPTYPE_HARMLESS, 0);
    1321     IEMOP_BODY_VPMOV_S_Z(vpmovzxbd, 32, IEM_MC_FETCH_MEM_U128);
     1321    IEMOP_BODY_VPMOV_S_Z(vpmovzxbd, 32, IEM_MC_FETCH_MEM_SEG_U128);
    13221322}
    13231323
     
    13281328     /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */
    13291329    IEMOP_MNEMONIC2(VEX_RM, VPMOVZXBQ, vpmovzxbq, Vx, Wq, DISOPTYPE_HARMLESS, 0);
    1330     IEMOP_BODY_VPMOV_S_Z(vpmovzxbq, 16, IEM_MC_FETCH_MEM_U128);
     1330    IEMOP_BODY_VPMOV_S_Z(vpmovzxbq, 16, IEM_MC_FETCH_MEM_SEG_U128);
    13311331}
    13321332
     
    13371337     /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */
    13381338    IEMOP_MNEMONIC2(VEX_RM, VPMOVZXWD, vpmovzxwd, Vx, Wq, DISOPTYPE_HARMLESS, 0);
    1339     IEMOP_BODY_VPMOV_S_Z(vpmovzxwd, 64, IEM_MC_FETCH_MEM_U128_NO_AC);
     1339    IEMOP_BODY_VPMOV_S_Z(vpmovzxwd, 64, IEM_MC_FETCH_MEM_SEG_U128_NO_AC);
    13401340}
    13411341
     
    13461346     /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */
    13471347    IEMOP_MNEMONIC2(VEX_RM, VPMOVZXWQ, vpmovzxwq, Vx, Wq, DISOPTYPE_HARMLESS, 0);
    1348     IEMOP_BODY_VPMOV_S_Z(vpmovzxwq, 32, IEM_MC_FETCH_MEM_U128);
     1348    IEMOP_BODY_VPMOV_S_Z(vpmovzxwq, 32, IEM_MC_FETCH_MEM_SEG_U128);
    13491349}
    13501350
     
    13551355     /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */
    13561356    IEMOP_MNEMONIC2(VEX_RM, VPMOVZXDQ, vpmovzxdq, Vx, Wq, DISOPTYPE_HARMLESS, 0);
    1357     IEMOP_BODY_VPMOV_S_Z(vpmovzxdq, 64, IEM_MC_FETCH_MEM_U128_NO_AC);
     1357    IEMOP_BODY_VPMOV_S_Z(vpmovzxdq, 64, IEM_MC_FETCH_MEM_SEG_U128_NO_AC);
    13581358}
    13591359
     
    13991399        IEM_MC_LOCAL(RTUINT256U,            uSrc2);
    14001400        IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc2, uSrc2, 2);
    1401         IEM_MC_FETCH_MEM_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1401        IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    14021402        IEM_MC_LOCAL(RTUINT256U,            uSrc1);
    14031403        IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc1, uSrc1, 1);
     
    15441544        IEM_MC_PREPARE_AVX_USAGE();
    15451545
    1546         IEM_MC_FETCH_MEM_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1546        IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    15471547        IEM_MC_REF_XREG_U128(puDst,         IEM_GET_MODRM_REG(pVCpu, bRm));
    15481548        IEM_MC_CALL_VOID_AIMPL_2(IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vphminposuw_u128, iemAImpl_vphminposuw_u128_fallback),
     
    16871687            IEM_MC_PREPARE_AVX_USAGE();
    16881688
    1689             IEM_MC_FETCH_MEM_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1689            IEM_MC_FETCH_MEM_SEG_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    16901690            IEM_MC_BROADCAST_YREG_U32_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    16911691
     
    17041704            IEM_MC_PREPARE_AVX_USAGE();
    17051705
    1706             IEM_MC_FETCH_MEM_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1706            IEM_MC_FETCH_MEM_SEG_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    17071707            IEM_MC_BROADCAST_XREG_U32_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    17081708
     
    17701770            IEM_MC_PREPARE_AVX_USAGE();
    17711771
    1772             IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1772            IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    17731773            IEM_MC_BROADCAST_YREG_U64_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    17741774
     
    17871787            IEM_MC_PREPARE_AVX_USAGE();
    17881788
    1789             IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1789            IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    17901790            IEM_MC_BROADCAST_XREG_U64_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    17911791
     
    18231823        IEM_MC_PREPARE_AVX_USAGE();
    18241824
    1825         IEM_MC_FETCH_MEM_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1825        IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    18261826        IEM_MC_BROADCAST_YREG_U128_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    18271827
     
    19211921            IEM_MC_PREPARE_AVX_USAGE();
    19221922
    1923             IEM_MC_FETCH_MEM_U8(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1923            IEM_MC_FETCH_MEM_SEG_U8(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    19241924            IEM_MC_BROADCAST_YREG_U8_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    19251925
     
    19381938            IEM_MC_PREPARE_AVX_USAGE();
    19391939
    1940             IEM_MC_FETCH_MEM_U8(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1940            IEM_MC_FETCH_MEM_SEG_U8(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    19411941            IEM_MC_BROADCAST_XREG_U8_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    19421942
     
    20042004            IEM_MC_PREPARE_AVX_USAGE();
    20052005
    2006             IEM_MC_FETCH_MEM_U16(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2006            IEM_MC_FETCH_MEM_SEG_U16(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    20072007            IEM_MC_BROADCAST_YREG_U16_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    20082008
     
    20212021            IEM_MC_PREPARE_AVX_USAGE();
    20222022
    2023             IEM_MC_FETCH_MEM_U16(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2023            IEM_MC_FETCH_MEM_SEG_U16(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    20242024            IEM_MC_BROADCAST_XREG_U16_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    20252025
     
    25322532        IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX_2(fAvx, fAesNi);
    25332533        IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    2534         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2534        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    25352535
    25362536        IEM_MC_PREPARE_AVX_USAGE();
     
    26782678            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    26792679            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(fBmi1);
    2680             IEM_MC_FETCH_MEM_U64(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2680            IEM_MC_FETCH_MEM_SEG_U64(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    26812681            IEM_MC_FETCH_GREG_U64(uSrc1, IEM_GET_EFFECTIVE_VVVV(pVCpu));
    26822682            IEM_MC_REF_GREG_U64(pDst,    IEM_GET_MODRM_REG(pVCpu, bRm));
     
    26972697            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    26982698            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(fBmi1);
    2699             IEM_MC_FETCH_MEM_U32(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2699            IEM_MC_FETCH_MEM_SEG_U32(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    27002700            IEM_MC_FETCH_GREG_U32(uSrc1, IEM_GET_EFFECTIVE_VVVV(pVCpu));
    27012701            IEM_MC_REF_GREG_U32(pDst,    IEM_GET_MODRM_REG(pVCpu, bRm));
     
    27762776            \
    27772777            IEM_MC_ARG(uint64_t,            uSrc,       2); \
    2778             IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     2778            IEM_MC_FETCH_MEM_SEG_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    27792779            IEM_MC_ARG(uint64_t *,          pDst,       1); \
    27802780            IEM_MC_REF_GREG_U64(pDst,  IEM_GET_EFFECTIVE_VVVV(pVCpu)); \
     
    27952795            \
    27962796            IEM_MC_ARG(uint32_t,            uSrc,       2); \
    2797             IEM_MC_FETCH_MEM_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     2797            IEM_MC_FETCH_MEM_SEG_U32(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    27982798            IEM_MC_ARG(uint32_t *,          pDst,       1); \
    27992799            IEM_MC_REF_GREG_U32(pDst,  IEM_GET_EFFECTIVE_VVVV(pVCpu)); \
     
    29522952            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); \
    29532953            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(a_fFeatureMember); \
    2954             IEM_MC_FETCH_MEM_U64(uSrc1, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     2954            IEM_MC_FETCH_MEM_SEG_U64(uSrc1, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    29552955            IEM_MC_FETCH_GREG_U64(uSrc2, IEM_GET_EFFECTIVE_VVVV(pVCpu)); \
    29562956            IEM_MC_REF_GREG_U64(pDst,    IEM_GET_MODRM_REG(pVCpu, bRm)); \
     
    29722972            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); \
    29732973            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(a_fFeatureMember); \
    2974             IEM_MC_FETCH_MEM_U32(uSrc1, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     2974            IEM_MC_FETCH_MEM_SEG_U32(uSrc1, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    29752975            IEM_MC_FETCH_GREG_U32(uSrc2, IEM_GET_EFFECTIVE_VVVV(pVCpu)); \
    29762976            IEM_MC_REF_GREG_U32(pDst,    IEM_GET_MODRM_REG(pVCpu, bRm)); \
     
    30413041            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); \
    30423042            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(a_fFeatureMember); \
    3043             IEM_MC_FETCH_MEM_U64(uSrc1, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     3043            IEM_MC_FETCH_MEM_SEG_U64(uSrc1, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    30443044            IEM_MC_FETCH_GREG_U64(uSrc2, IEM_GET_EFFECTIVE_VVVV(pVCpu)); \
    30453045            IEM_MC_REF_GREG_U64(pDst,    IEM_GET_MODRM_REG(pVCpu, bRm)); \
     
    30583058            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); \
    30593059            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(a_fFeatureMember); \
    3060             IEM_MC_FETCH_MEM_U32(uSrc1, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     3060            IEM_MC_FETCH_MEM_SEG_U32(uSrc1, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    30613061            IEM_MC_FETCH_GREG_U32(uSrc2, IEM_GET_EFFECTIVE_VVVV(pVCpu)); \
    30623062            IEM_MC_REF_GREG_U32(pDst,    IEM_GET_MODRM_REG(pVCpu, bRm)); \
     
    31433143            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); \
    31443144            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(a_fFeatureMember); \
    3145             IEM_MC_FETCH_MEM_U64(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     3145            IEM_MC_FETCH_MEM_SEG_U64(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    31463146            IEM_MC_FETCH_GREG_U64(uSrc1, IEM_GET_EFFECTIVE_VVVV(pVCpu)); \
    31473147            IEM_MC_REF_GREG_U64(pDst,    IEM_GET_MODRM_REG(pVCpu, bRm)); \
     
    31613161            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); \
    31623162            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(a_fFeatureMember); \
    3163             IEM_MC_FETCH_MEM_U32(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     3163            IEM_MC_FETCH_MEM_SEG_U32(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
    31643164            IEM_MC_FETCH_GREG_U32(uSrc1, IEM_GET_EFFECTIVE_VVVV(pVCpu)); \
    31653165            IEM_MC_REF_GREG_U32(pDst,    IEM_GET_MODRM_REG(pVCpu, bRm)); \
     
    32633263            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    32643264            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(fBmi2);
    3265             IEM_MC_FETCH_MEM_U64(uSrc2,  pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3265            IEM_MC_FETCH_MEM_SEG_U64(uSrc2,  pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    32663266            IEM_MC_FETCH_GREG_U64(uSrc1, X86_GREG_xDX);
    32673267            IEM_MC_REF_GREG_U64(pDst2,   IEM_GET_EFFECTIVE_VVVV(pVCpu));
     
    32823282            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    32833283            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(fBmi2);
    3284             IEM_MC_FETCH_MEM_U32(uSrc2,  pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     3284            IEM_MC_FETCH_MEM_SEG_U32(uSrc2,  pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    32853285            IEM_MC_FETCH_GREG_U32(uSrc1, X86_GREG_xDX);
    32863286            IEM_MC_REF_GREG_U32(pDst2,   IEM_GET_EFFECTIVE_VVVV(pVCpu));
  • trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllInstVexMap3-x86.cpp.h

    r108267 r108288  
    116116            IEM_MC_PREPARE_AVX_USAGE();
    117117
    118             IEM_MC_FETCH_MEM_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     118            IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    119119            IEM_MC_FETCH_YREG_U256(uSrc1,      IEM_GET_EFFECTIVE_VVVV(pVCpu));
    120120            IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnU256, puDst, puSrc1, puSrc2, bImmArg);
     
    140140            IEM_MC_PREPARE_AVX_USAGE();
    141141
    142             IEM_MC_FETCH_MEM_U128_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     142            IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    143143            IEM_MC_REF_XREG_U128(puDst,         IEM_GET_MODRM_REG(pVCpu, bRm));
    144144            IEM_MC_REF_XREG_U128_CONST(puSrc1,  IEM_GET_EFFECTIVE_VVVV(pVCpu));
     
    223223            IEM_MC_ARG_LOCAL_REF(PCX86YMMREG,   puSrc,          uSrc, 1);
    224224            IEM_MC_ARG_CONST(uint8_t,           bImmArg, /*=*/ bImm,  2);
    225             IEM_MC_FETCH_MEM_YMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     225            IEM_MC_FETCH_MEM_SEG_YMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    226226            IEM_MC_CALL_AVX_AIMPL_3(pImpl->pfnU256, puDst, puSrc, bImmArg);
    227227            IEM_MC_STORE_YREG_YMM_ZX_VLMAX(    IEM_GET_MODRM_REG(pVCpu, bRm), uDst);
     
    243243            IEM_MC_ARG_LOCAL_REF(PCX86XMMREG,   puSrc, uSrc,          1);
    244244            IEM_MC_ARG_CONST(uint8_t,           bImmArg, /*=*/ bImm,  2);
    245             IEM_MC_FETCH_MEM_XMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     245            IEM_MC_FETCH_MEM_SEG_XMM_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    246246            IEM_MC_CALL_AVX_AIMPL_3(pImpl->pfnU128, puDst, puSrc, bImmArg);
    247247            IEM_MC_STORE_XREG_XMM(             IEM_GET_MODRM_REG(pVCpu, bRm), uDst);
     
    327327            IEM_MC_PREPARE_AVX_USAGE();
    328328
    329             IEM_MC_FETCH_MEM_U256_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     329            IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    330330            IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnU256, puDst, puSrc, bImmArg);
    331331            IEM_MC_STORE_YREG_U256_ZX_VLMAX(    IEM_GET_MODRM_REG(pVCpu, bRm), uDst);
     
    349349            IEM_MC_PREPARE_AVX_USAGE();
    350350
    351             IEM_MC_FETCH_MEM_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     351            IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    352352            IEM_MC_REF_XREG_U128(puDst,         IEM_GET_MODRM_REG(pVCpu, bRm));
    353353            IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnU128, puDst, puSrc, bImmArg);
     
    441441            IEM_MC_PREPARE_AVX_USAGE();
    442442
    443             IEM_MC_FETCH_MEM_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     443            IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    444444            IEM_MC_FETCH_YREG_U256(uSrc1,      IEM_GET_EFFECTIVE_VVVV(pVCpu));
    445445            IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnU256, puDst, puSrc1, puSrc2, bImmArg);
     
    465465            IEM_MC_PREPARE_AVX_USAGE();
    466466
    467             IEM_MC_FETCH_MEM_U128_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     467            IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    468468            IEM_MC_REF_XREG_U128(puDst,         IEM_GET_MODRM_REG(pVCpu, bRm));
    469469            IEM_MC_REF_XREG_U128_CONST(puSrc1,  IEM_GET_EFFECTIVE_VVVV(pVCpu));
     
    519519        IEM_MC_LOCAL(RTUINT256U,            uSrc);
    520520        IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc, uSrc,         1);
    521         IEM_MC_FETCH_MEM_U256_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     521        IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    522522        IEM_MC_LOCAL(RTUINT256U,            uDst);
    523523        IEM_MC_ARG_LOCAL_REF(PRTUINT256U,   puDst, uDst,         0);
     
    573573        IEM_MC_LOCAL(RTUINT256U,            uSrc);
    574574        IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc, uSrc,         1);
    575         IEM_MC_FETCH_MEM_U256_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     575        IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    576576        IEM_MC_LOCAL(RTUINT256U,            uDst);
    577577        IEM_MC_ARG_LOCAL_REF(PRTUINT256U,   puDst, uDst,         0);
     
    671671
    672672        IEM_MC_FETCH_YREG_U256(uSrc1, IEM_GET_EFFECTIVE_VVVV(pVCpu));
    673         IEM_MC_FETCH_MEM_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     673        IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    674674        IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vperm2f128_u256, iemAImpl_vperm2f128_u256_fallback),
    675675                                                             puDst, puSrc1, puSrc2, bImmArg);
     
    746746        IEM_MC_ARG_LOCAL_REF(PCIEMMEDIAF2XMMSRC,    pSrc,           Src,    1);
    747747        IEM_MC_ARG_CONST(uint8_t,                   bImmArg, /*=*/ bImm,    2);
    748         IEM_MC_FETCH_MEM_XMM_U32_AND_XREG_XMM(Src, IEM_GET_EFFECTIVE_VVVV(pVCpu),
     748        IEM_MC_FETCH_MEM_SEG_XMM_U32_AND_XREG_XMM(Src, IEM_GET_EFFECTIVE_VVVV(pVCpu),
    749749                                              0 /*a_iDword*/, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    750750        IEM_MC_LOCAL(X86XMMREG,                     uDst);
     
    803803        IEM_MC_ARG_LOCAL_REF(PCIEMMEDIAF2XMMSRC,    pSrc,           Src,    1);
    804804        IEM_MC_ARG_CONST(uint8_t,                   bImmArg, /*=*/ bImm,    2);
    805         IEM_MC_FETCH_MEM_XMM_U64_AND_XREG_XMM(Src, IEM_GET_EFFECTIVE_VVVV(pVCpu),
     805        IEM_MC_FETCH_MEM_SEG_XMM_U64_AND_XREG_XMM(Src, IEM_GET_EFFECTIVE_VVVV(pVCpu),
    806806                                              0 /*a_iQword*/, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    807807        IEM_MC_LOCAL(X86XMMREG,                     uDst);
     
    11381138        IEM_MC_PREPARE_AVX_USAGE();
    11391139
    1140         IEM_MC_FETCH_MEM_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1140        IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    11411141        IEM_MC_COPY_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), IEM_GET_EFFECTIVE_VVVV(pVCpu));
    11421142        IEM_MC_STORE_YREG_U128(        IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 1, uSrc);
     
    12481248
    12491249        IEM_MC_FETCH_XREG_U128(uSrc1,  IEM_GET_EFFECTIVE_VVVV(pVCpu));
    1250         IEM_MC_FETCH_MEM_U8(uValue,    pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1250        IEM_MC_FETCH_MEM_SEG_U8(uValue,    pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    12511251        IEM_MC_STORE_XREG_U128(        IEM_GET_MODRM_REG(pVCpu, bRm), uSrc1);
    12521252        IEM_MC_STORE_XREG_U8(          IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 15, uValue);
     
    13011301
    13021302        IEM_MC_FETCH_XREG_U128(uSrc1, IEM_GET_EFFECTIVE_VVVV(pVCpu));
    1303         IEM_MC_FETCH_MEM_U32(uSrc2,   pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1303        IEM_MC_FETCH_MEM_SEG_U32(uSrc2,   pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    13041304        IEM_MC_STORE_XREG_U128(       IEM_GET_MODRM_REG(pVCpu, bRm), uSrc1);
    13051305        IEM_MC_STORE_XREG_U32(        IEM_GET_MODRM_REG(pVCpu, bRm), (bImm >> 4) & 3, uSrc2);
     
    13561356
    13571357            IEM_MC_FETCH_XREG_U128(uSrc1,  IEM_GET_EFFECTIVE_VVVV(pVCpu));
    1358             IEM_MC_FETCH_MEM_U64(uValue,   pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1358            IEM_MC_FETCH_MEM_SEG_U64(uValue,   pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    13591359            IEM_MC_STORE_XREG_U128(        IEM_GET_MODRM_REG(pVCpu, bRm), uSrc1);
    13601360            IEM_MC_STORE_XREG_U64(         IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 1, uValue);
     
    14041404
    14051405            IEM_MC_FETCH_XREG_U128(uSrc1,  IEM_GET_EFFECTIVE_VVVV(pVCpu));
    1406             IEM_MC_FETCH_MEM_U32(uValue,   pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1406            IEM_MC_FETCH_MEM_SEG_U32(uValue,   pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    14071407            IEM_MC_STORE_XREG_U128(        IEM_GET_MODRM_REG(pVCpu, bRm), uSrc1);
    14081408            IEM_MC_STORE_XREG_U32(         IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 3, uValue);
     
    14791479        IEM_MC_PREPARE_AVX_USAGE();
    14801480
    1481         IEM_MC_FETCH_MEM_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1481        IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    14821482        IEM_MC_COPY_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), IEM_GET_EFFECTIVE_VVVV(pVCpu));
    14831483        IEM_MC_STORE_YREG_U128(        IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 1, uSrc);
     
    16121612            IEM_MC_ARG_LOCAL_REF(PCIEMMEDIAF2YMMSRC,    puSrc,         uSrc,    1);
    16131613            IEM_MC_ARG_CONST(uint8_t,                   bImmArg, /*=*/ bImm,    2);
    1614             IEM_MC_FETCH_MEM_YMM_NO_AC_AND_YREG_YMM(uSrc, IEM_GET_EFFECTIVE_VVVV(pVCpu),
     1614            IEM_MC_FETCH_MEM_SEG_YMM_NO_AC_AND_YREG_YMM(uSrc, IEM_GET_EFFECTIVE_VVVV(pVCpu),
    16151615                                                        pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    16161616            IEM_MC_LOCAL(X86YMMREG,                     uDst);
     
    16341634            IEM_MC_ARG_LOCAL_REF(PCIEMMEDIAF2XMMSRC,    puSrc,         uSrc,    1);
    16351635            IEM_MC_ARG_CONST(uint8_t,                   bImmArg, /*=*/ bImm,    2);
    1636             IEM_MC_FETCH_MEM_XMM_NO_AC_AND_XREG_XMM(uSrc, IEM_GET_EFFECTIVE_VVVV(pVCpu),
     1636            IEM_MC_FETCH_MEM_SEG_XMM_NO_AC_AND_XREG_XMM(uSrc, IEM_GET_EFFECTIVE_VVVV(pVCpu),
    16371637                                                        pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    16381638            IEM_MC_LOCAL(X86XMMREG,                     uDst);
     
    16921692        IEM_MC_ARG_LOCAL_REF(PCIEMMEDIAF2XMMSRC,    puSrc,         uSrc,    1);
    16931693        IEM_MC_ARG_CONST(uint8_t,                   bImmArg, /*=*/ bImm,    2);
    1694         IEM_MC_FETCH_MEM_XMM_NO_AC_AND_XREG_XMM(uSrc, IEM_GET_EFFECTIVE_VVVV(pVCpu),
     1694        IEM_MC_FETCH_MEM_SEG_XMM_NO_AC_AND_XREG_XMM(uSrc, IEM_GET_EFFECTIVE_VVVV(pVCpu),
    16951695                                                    pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    16961696        IEM_MC_LOCAL(X86XMMREG,                     uDst);
     
    17651765        IEM_MC_PREPARE_AVX_USAGE();
    17661766
    1767         IEM_MC_FETCH_MEM_U128_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1767        IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    17681768        IEM_MC_REF_XREG_U128(puDst,         IEM_GET_MODRM_REG(pVCpu, bRm));
    17691769        IEM_MC_REF_XREG_U128_CONST(puSrc1,  IEM_GET_EFFECTIVE_VVVV(pVCpu));
     
    18331833
    18341834        IEM_MC_FETCH_YREG_U256(uSrc1, IEM_GET_EFFECTIVE_VVVV(pVCpu));
    1835         IEM_MC_FETCH_MEM_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1835        IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    18361836        IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fAvx2, iemAImpl_vperm2i128_u256, iemAImpl_vperm2i128_u256_fallback),
    18371837                                                             puDst, puSrc1, puSrc2, bImmArg);
     
    19271927            IEM_MC_LOCAL(RTUINT256U,            uSrc2);
    19281928            IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc2, uSrc2, 2);
    1929             IEM_MC_FETCH_MEM_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1929            IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    19301930
    19311931            IEM_MC_LOCAL(RTUINT256U,            uSrc1);
     
    19551955            IEM_MC_LOCAL(RTUINT128U,                uSrc2);
    19561956            IEM_MC_ARG_LOCAL_REF(PCRTUINT128U,      puSrc2, uSrc2, 2);
    1957             IEM_MC_FETCH_MEM_U128_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     1957            IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    19581958
    19591959            IEM_MC_ARG(PRTUINT128U,                 puDst,         0);
     
    20772077            IEM_MC_LOCAL(RTUINT256U,            uSrc2);
    20782078            IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc2, uSrc2, 2);
    2079             IEM_MC_FETCH_MEM_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2079            IEM_MC_FETCH_MEM_SEG_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    20802080
    20812081            IEM_MC_LOCAL(RTUINT256U,            uSrc1);
     
    21092109            IEM_MC_LOCAL(RTUINT128U,            uSrc2);
    21102110            IEM_MC_ARG_LOCAL_REF(PCRTUINT128U,  puSrc2, uSrc2, 2);
    2111             IEM_MC_FETCH_MEM_U128_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2111            IEM_MC_FETCH_MEM_SEG_U128_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    21122112
    21132113            IEM_MC_ARG(PRTUINT128U,             puDst,         0);
     
    22232223            IEM_MC_PREPARE_SSE_USAGE();
    22242224
    2225             IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_RAX_RDX_U64(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
     2225            IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_RAX_RDX_U64(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
    22262226                                                                pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    22272227            IEM_MC_REF_XREG_U128(puDst, 0 /*xmm0*/);
     
    22812281            IEM_MC_PREPARE_SSE_USAGE();
    22822282
    2283             IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
     2283            IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
    22842284                                                                       pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    22852285            IEM_MC_REF_XREG_U128(puDst, 0 /*xmm0*/);
     
    23552355            IEM_MC_PREPARE_SSE_USAGE();
    23562356
    2357             IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_RAX_RDX_U64(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
     2357            IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_RAX_RDX_U64(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
    23582358                                                                pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    23592359            IEM_MC_REF_GREG_U32(pu32Ecx, X86_GREG_xCX);
     
    24172417            IEM_MC_PREPARE_SSE_USAGE();
    24182418
    2419             IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
     2419            IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64(Src, IEM_GET_MODRM_REG(pVCpu, bRm),
    24202420                                                                       pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    24212421            IEM_MC_REF_GREG_U32(pu32Ecx, X86_GREG_xCX);
     
    24892489        IEM_MC_PREPARE_SSE_USAGE();
    24902490
    2491         IEM_MC_FETCH_MEM_U128_AND_XREG_U128(Src, IEM_GET_MODRM_REG(pVCpu, bRm), pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2491        IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128(Src, IEM_GET_MODRM_REG(pVCpu, bRm), pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    24922492        IEM_MC_REF_XREG_U128(puDst, 0 /*xmm0*/);
    24932493        IEM_MC_REF_EFLAGS(pEFlags);
     
    25612561        IEM_MC_PREPARE_SSE_USAGE();
    25622562
    2563         IEM_MC_FETCH_MEM_U128(Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2563        IEM_MC_FETCH_MEM_SEG_U128(Src2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    25642564        IEM_MC_REF_XREG_U128_CONST(pSrc1, IEM_GET_MODRM_REG(pVCpu, bRm));
    25652565        IEM_MC_REF_EFLAGS(pEFlags);
     
    27042704        IEM_MC_LOCAL(RTUINT128U,                uSrc);
    27052705        IEM_MC_ARG_LOCAL_REF(PCRTUINT128U,      puSrc, uSrc,         1);
    2706         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2706        IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    27072707        IEM_MC_CALL_VOID_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(fAesNi, iemAImpl_vaeskeygenassist_u128, iemAImpl_vaeskeygenassist_u128_fallback),
    27082708                                 puDst, puSrc, bImmArg);
     
    27722772            IEM_MC_ARG_CONST(uint64_t,      uSrc2,   bImm8, 2);
    27732773            IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX(fBmi2);
    2774             IEM_MC_FETCH_MEM_U64(uSrc1, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2774            IEM_MC_FETCH_MEM_SEG_U64(uSrc1, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    27752775            IEM_MC_REF_GREG_U64(pDst, IEM_GET_MODRM_REG(pVCpu, bRm));
    27762776            IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_rorx_u64, pDst, uSrc1, uSrc2);
     
    27882788            IEM_MC_ARG_CONST(uint32_t,      uSrc2,   bImm8, 2);
    27892789            IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX(fBmi2);
    2790             IEM_MC_FETCH_MEM_U32(uSrc1, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     2790            IEM_MC_FETCH_MEM_SEG_U32(uSrc1, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    27912791            IEM_MC_REF_GREG_U32(pDst, IEM_GET_MODRM_REG(pVCpu, bRm));
    27922792            IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_rorx_u32, pDst, uSrc1, uSrc2);
  • trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllN8veLiveness-x86.h

    r108287 r108288  
    824824#define IEM_MC_CLEAR_ZREG_256_UP(a_iYReg)                                               NOP()
    825825
    826 #define IEM_MC_FETCH_MEM_U8(a_u8Dst, a_iSeg, a_GCPtrMem)                                        IEM_LIVENESS_MEM_SEG(a_iSeg)
    827 #define IEM_MC_FETCH_MEM16_U8(a_u8Dst, a_iSeg, a_GCPtrMem16)                                    IEM_LIVENESS_MEM_SEG(a_iSeg)
    828 #define IEM_MC_FETCH_MEM32_U8(a_u8Dst, a_iSeg, a_GCPtrMem32)                                    IEM_LIVENESS_MEM_SEG(a_iSeg)
     826#define IEM_MC_FETCH_MEM_SEG_U8(a_u8Dst, a_iSeg, a_GCPtrMem)                                    IEM_LIVENESS_MEM_SEG(a_iSeg)
     827#define IEM_MC_FETCH_MEM16_SEG_U8(a_u8Dst, a_iSeg, a_GCPtrMem16)                                IEM_LIVENESS_MEM_SEG(a_iSeg)
     828#define IEM_MC_FETCH_MEM32_SEG_U8(a_u8Dst, a_iSeg, a_GCPtrMem32)                                IEM_LIVENESS_MEM_SEG(a_iSeg)
    829829
    830830#define IEM_MC_FETCH_MEM_FLAT_U8(a_u8Dst, a_GCPtrMem)                                           IEM_LIVENESS_MEM_FLAT()
     
    832832#define IEM_MC_FETCH_MEM32_FLAT_U8(a_u8Dst, a_GCPtrMem32)                                       IEM_LIVENESS_MEM_FLAT()
    833833
    834 #define IEM_MC_FETCH_MEM_U16(a_u16Dst, a_iSeg, a_GCPtrMem)                                      IEM_LIVENESS_MEM_SEG(a_iSeg)
    835 #define IEM_MC_FETCH_MEM_U16_DISP(a_u16Dst, a_iSeg, a_GCPtrMem, a_offDisp)                      IEM_LIVENESS_MEM_SEG(a_iSeg)
    836 #define IEM_MC_FETCH_MEM_I16(a_i16Dst, a_iSeg, a_GCPtrMem)                                      IEM_LIVENESS_MEM_SEG(a_iSeg)
    837 #define IEM_MC_FETCH_MEM_I16_DISP(a_i16Dst, a_iSeg, a_GCPtrMem, a_offDisp)                      IEM_LIVENESS_MEM_SEG(a_iSeg)
     834#define IEM_MC_FETCH_MEM_SEG_U16(a_u16Dst, a_iSeg, a_GCPtrMem)                                  IEM_LIVENESS_MEM_SEG(a_iSeg)
     835#define IEM_MC_FETCH_MEM_SEG_U16_DISP(a_u16Dst, a_iSeg, a_GCPtrMem, a_offDisp)                  IEM_LIVENESS_MEM_SEG(a_iSeg)
     836#define IEM_MC_FETCH_MEM_SEG_I16(a_i16Dst, a_iSeg, a_GCPtrMem)                                  IEM_LIVENESS_MEM_SEG(a_iSeg)
     837#define IEM_MC_FETCH_MEM_SEG_I16_DISP(a_i16Dst, a_iSeg, a_GCPtrMem, a_offDisp)                  IEM_LIVENESS_MEM_SEG(a_iSeg)
    838838
    839839#define IEM_MC_FETCH_MEM_FLAT_U16(a_u16Dst, a_GCPtrMem)                                         IEM_LIVENESS_MEM_FLAT()
     
    842842#define IEM_MC_FETCH_MEM_FLAT_I16_DISP(a_i16Dst, a_GCPtrMem, a_offDisp)                         IEM_LIVENESS_MEM_FLAT()
    843843
    844 #define IEM_MC_FETCH_MEM_U32(a_u32Dst, a_iSeg, a_GCPtrMem)                                      IEM_LIVENESS_MEM_SEG(a_iSeg)
    845 #define IEM_MC_FETCH_MEM_U32_DISP(a_u32Dst, a_iSeg, a_GCPtrMem, a_offDisp)                      IEM_LIVENESS_MEM_SEG(a_iSeg)
    846 #define IEM_MC_FETCH_MEM_I32(a_i32Dst, a_iSeg, a_GCPtrMem)                                      IEM_LIVENESS_MEM_SEG(a_iSeg)
    847 #define IEM_MC_FETCH_MEM_I32_DISP(a_i32Dst, a_iSeg, a_GCPtrMem, a_offDisp)                      IEM_LIVENESS_MEM_SEG(a_iSeg)
     844#define IEM_MC_FETCH_MEM_SEG_U32(a_u32Dst, a_iSeg, a_GCPtrMem)                                  IEM_LIVENESS_MEM_SEG(a_iSeg)
     845#define IEM_MC_FETCH_MEM_SEG_U32_DISP(a_u32Dst, a_iSeg, a_GCPtrMem, a_offDisp)                  IEM_LIVENESS_MEM_SEG(a_iSeg)
     846#define IEM_MC_FETCH_MEM_SEG_I32(a_i32Dst, a_iSeg, a_GCPtrMem)                                  IEM_LIVENESS_MEM_SEG(a_iSeg)
     847#define IEM_MC_FETCH_MEM_SEG_I32_DISP(a_i32Dst, a_iSeg, a_GCPtrMem, a_offDisp)                  IEM_LIVENESS_MEM_SEG(a_iSeg)
    848848
    849849#define IEM_MC_FETCH_MEM_FLAT_U32(a_u32Dst, a_GCPtrMem)                                         IEM_LIVENESS_MEM_FLAT()
     
    852852#define IEM_MC_FETCH_MEM_FLAT_I32_DISP(a_i32Dst, a_GCPtrMem, a_offDisp)                         IEM_LIVENESS_MEM_FLAT()
    853853
    854 #define IEM_MC_FETCH_MEM_U64(a_u64Dst, a_iSeg, a_GCPtrMem)                                      IEM_LIVENESS_MEM_SEG(a_iSeg)
    855 #define IEM_MC_FETCH_MEM_U64_DISP(a_u64Dst, a_iSeg, a_GCPtrMem, a_offDisp)                      IEM_LIVENESS_MEM_SEG(a_iSeg)
    856 #define IEM_MC_FETCH_MEM_U64_ALIGN_U128(a_u64Dst, a_iSeg, a_GCPtrMem)                           IEM_LIVENESS_MEM_SEG(a_iSeg)
    857 #define IEM_MC_FETCH_MEM_I64(a_i64Dst, a_iSeg, a_GCPtrMem)                                      IEM_LIVENESS_MEM_SEG(a_iSeg)
     854#define IEM_MC_FETCH_MEM_SEG_U64(a_u64Dst, a_iSeg, a_GCPtrMem)                                  IEM_LIVENESS_MEM_SEG(a_iSeg)
     855#define IEM_MC_FETCH_MEM_SEG_U64_DISP(a_u64Dst, a_iSeg, a_GCPtrMem, a_offDisp)                  IEM_LIVENESS_MEM_SEG(a_iSeg)
     856#define IEM_MC_FETCH_MEM_SEG_U64_ALIGN_U128(a_u64Dst, a_iSeg, a_GCPtrMem)                       IEM_LIVENESS_MEM_SEG(a_iSeg)
     857#define IEM_MC_FETCH_MEM_SEG_I64(a_i64Dst, a_iSeg, a_GCPtrMem)                                  IEM_LIVENESS_MEM_SEG(a_iSeg)
    858858
    859859#define IEM_MC_FETCH_MEM_FLAT_U64(a_u64Dst, a_GCPtrMem)                                         IEM_LIVENESS_MEM_FLAT()
     
    862862#define IEM_MC_FETCH_MEM_FLAT_I64(a_i64Dst, a_GCPtrMem)                                         IEM_LIVENESS_MEM_FLAT()
    863863
    864 #define IEM_MC_FETCH_MEM_R32(a_r32Dst, a_iSeg, a_GCPtrMem)                                      IEM_LIVENESS_MEM_SEG(a_iSeg)
    865 #define IEM_MC_FETCH_MEM_R64(a_r64Dst, a_iSeg, a_GCPtrMem)                                      IEM_LIVENESS_MEM_SEG(a_iSeg)
    866 #define IEM_MC_FETCH_MEM_R80(a_r80Dst, a_iSeg, a_GCPtrMem)                                      IEM_LIVENESS_MEM_SEG(a_iSeg)
    867 #define IEM_MC_FETCH_MEM_D80(a_d80Dst, a_iSeg, a_GCPtrMem)                                      IEM_LIVENESS_MEM_SEG(a_iSeg)
     864#define IEM_MC_FETCH_MEM_SEG_R32(a_r32Dst, a_iSeg, a_GCPtrMem)                                  IEM_LIVENESS_MEM_SEG(a_iSeg)
     865#define IEM_MC_FETCH_MEM_SEG_R64(a_r64Dst, a_iSeg, a_GCPtrMem)                                  IEM_LIVENESS_MEM_SEG(a_iSeg)
     866#define IEM_MC_FETCH_MEM_SEG_R80(a_r80Dst, a_iSeg, a_GCPtrMem)                                  IEM_LIVENESS_MEM_SEG(a_iSeg)
     867#define IEM_MC_FETCH_MEM_SEG_D80(a_d80Dst, a_iSeg, a_GCPtrMem)                                  IEM_LIVENESS_MEM_SEG(a_iSeg)
    868868
    869869#define IEM_MC_FETCH_MEM_FLAT_R32(a_r32Dst, a_GCPtrMem)                                         IEM_LIVENESS_MEM_FLAT()
     
    872872#define IEM_MC_FETCH_MEM_FLAT_D80(a_d80Dst, a_GCPtrMem)                                         IEM_LIVENESS_MEM_FLAT()
    873873
    874 #define IEM_MC_FETCH_MEM_U128(a_u128Dst, a_iSeg, a_GCPtrMem)                                    IEM_LIVENESS_MEM_SEG(a_iSeg)
    875 #define IEM_MC_FETCH_MEM_U128_NO_AC(a_u128Dst, a_iSeg, a_GCPtrMem)                              IEM_LIVENESS_MEM_SEG(a_iSeg)
    876 #define IEM_MC_FETCH_MEM_U128_ALIGN_SSE(a_u128Dst, a_iSeg, a_GCPtrMem)                          IEM_LIVENESS_MEM_SEG(a_iSeg)
    877 
    878 #define IEM_MC_FETCH_MEM_XMM(a_XmmDst, a_iSeg, a_GCPtrMem)                                      IEM_LIVENESS_MEM_SEG(a_iSeg)
    879 #define IEM_MC_FETCH_MEM_XMM_NO_AC(a_XmmDst, a_iSeg, a_GCPtrMem)                                IEM_LIVENESS_MEM_SEG(a_iSeg)
    880 #define IEM_MC_FETCH_MEM_XMM_ALIGN_SSE(a_XmmDst, a_iSeg, a_GCPtrMem)                            IEM_LIVENESS_MEM_SEG(a_iSeg)
     874#define IEM_MC_FETCH_MEM_SEG_U128(a_u128Dst, a_iSeg, a_GCPtrMem)                                IEM_LIVENESS_MEM_SEG(a_iSeg)
     875#define IEM_MC_FETCH_MEM_SEG_U128_NO_AC(a_u128Dst, a_iSeg, a_GCPtrMem)                          IEM_LIVENESS_MEM_SEG(a_iSeg)
     876#define IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(a_u128Dst, a_iSeg, a_GCPtrMem)                      IEM_LIVENESS_MEM_SEG(a_iSeg)
     877
     878#define IEM_MC_FETCH_MEM_SEG_XMM(a_XmmDst, a_iSeg, a_GCPtrMem)                                  IEM_LIVENESS_MEM_SEG(a_iSeg)
     879#define IEM_MC_FETCH_MEM_SEG_XMM_NO_AC(a_XmmDst, a_iSeg, a_GCPtrMem)                            IEM_LIVENESS_MEM_SEG(a_iSeg)
     880#define IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE(a_XmmDst, a_iSeg, a_GCPtrMem)                        IEM_LIVENESS_MEM_SEG(a_iSeg)
    881881
    882882#define IEM_MC_FETCH_MEM_FLAT_U128(a_u128Dst, a_GCPtrMem)                                       IEM_LIVENESS_MEM_FLAT()
     
    888888#define IEM_MC_FETCH_MEM_FLAT_XMM_ALIGN_SSE(a_XmmDst, a_GCPtrMem)                               IEM_LIVENESS_MEM_FLAT()
    889889
    890 #define IEM_MC_FETCH_MEM_U128_AND_XREG_U128(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2)              IEM_LIVENESS_MEM_SEG(a_iSeg)
     890#define IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2)          IEM_LIVENESS_MEM_SEG(a_iSeg)
    891891#define IEM_MC_FETCH_MEM_FLAT_U128_AND_XREG_U128(a_Dst, a_iXReg1, a_GCPtrMem2)                  IEM_LIVENESS_MEM_FLAT()
    892892
    893 #define IEM_MC_FETCH_MEM_XMM_ALIGN_SSE_AND_XREG_XMM(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2)      IEM_LIVENESS_MEM_SEG(a_iSeg)
    894 #define IEM_MC_FETCH_MEM_XMM_NO_AC_AND_XREG_XMM(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2)          IEM_LIVENESS_MEM_SEG(a_iSeg)
     893#define IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE_AND_XREG_XMM(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2)  IEM_LIVENESS_MEM_SEG(a_iSeg)
     894#define IEM_MC_FETCH_MEM_SEG_XMM_NO_AC_AND_XREG_XMM(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2)      IEM_LIVENESS_MEM_SEG(a_iSeg)
    895895#define IEM_MC_FETCH_MEM_FLAT_XMM_ALIGN_SSE_AND_XREG_XMM(a_Dst, a_iXReg1, a_GCPtrMem2)          IEM_LIVENESS_MEM_FLAT()
    896896#define IEM_MC_FETCH_MEM_FLAT_XMM_NO_AC_AND_XREG_XMM(a_Dst, a_iXReg1, a_GCPtrMem2)              IEM_LIVENESS_MEM_FLAT()
    897 #define IEM_MC_FETCH_MEM_XMM_U32_AND_XREG_XMM(a_Dst, a_iXReg1, a_iDWord2, a_iSeg2, a_GCPtrMem2) IEM_LIVENESS_MEM_SEG(a_iSeg)
     897#define IEM_MC_FETCH_MEM_SEG_XMM_U32_AND_XREG_XMM(a_Dst, a_iXReg1, a_iDWord2, a_iSeg2, a_GCPtrMem2) IEM_LIVENESS_MEM_SEG(a_iSeg)
    898898#define IEM_MC_FETCH_MEM_FLAT_XMM_U32_AND_XREG_XMM(a_Dst, a_iXReg1, a_iDWord2, a_GCPtrMem2)     IEM_LIVENESS_MEM_FLAT()
    899 #define IEM_MC_FETCH_MEM_XMM_U64_AND_XREG_XMM(a_Dst, a_iXReg1, a_iQWord2, a_iSeg2, a_GCPtrMem2) IEM_LIVENESS_MEM_SEG(a_iSeg)
     899#define IEM_MC_FETCH_MEM_SEG_XMM_U64_AND_XREG_XMM(a_Dst, a_iXReg1, a_iQWord2, a_iSeg2, a_GCPtrMem2) IEM_LIVENESS_MEM_SEG(a_iSeg)
    900900#define IEM_MC_FETCH_MEM_FLAT_XMM_U64_AND_XREG_XMM(a_Dst, a_iXReg1, a_iQWord2, a_GCPtrMem2)     IEM_LIVENESS_MEM_FLAT()
    901901
    902 #define IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_RAX_RDX_U64(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) \
     902#define IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_RAX_RDX_U64(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) \
    903903    do { IEM_LIVENESS_MEM_SEG(a_iSeg2); IEM_LIVENESS_GPR_INPUT(X86_GREG_xAX); IEM_LIVENESS_GPR_INPUT(X86_GREG_xDX); } while (0)
    904 #define IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) \
     904#define IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) \
    905905    do { IEM_LIVENESS_MEM_SEG(a_iSeg2); IEM_LIVENESS_GPR_INPUT(X86_GREG_xAX); IEM_LIVENESS_GPR_INPUT(X86_GREG_xDX); } while (0)
    906906
     
    911911
    912912
    913 #define IEM_MC_FETCH_MEM_U256(a_u256Dst, a_iSeg, a_GCPtrMem)                                    IEM_LIVENESS_MEM_SEG(a_iSeg)
    914 #define IEM_MC_FETCH_MEM_U256_NO_AC(a_u256Dst, a_iSeg, a_GCPtrMem)                              IEM_LIVENESS_MEM_SEG(a_iSeg)
    915 #define IEM_MC_FETCH_MEM_U256_ALIGN_AVX(a_u256Dst, a_iSeg, a_GCPtrMem)                          IEM_LIVENESS_MEM_SEG(a_iSeg)
    916 
    917 #define IEM_MC_FETCH_MEM_YMM(a_YmmDst, a_iSeg, a_GCPtrMem)                                      IEM_LIVENESS_MEM_SEG(a_iSeg)
    918 #define IEM_MC_FETCH_MEM_YMM_NO_AC(a_YmmDst, a_iSeg, a_GCPtrMem)                                IEM_LIVENESS_MEM_SEG(a_iSeg)
    919 #define IEM_MC_FETCH_MEM_YMM_ALIGN_AVX(a_YmmDst, a_iSeg, a_GCPtrMem)                            IEM_LIVENESS_MEM_SEG(a_iSeg)
     913#define IEM_MC_FETCH_MEM_SEG_U256(a_u256Dst, a_iSeg, a_GCPtrMem)                                IEM_LIVENESS_MEM_SEG(a_iSeg)
     914#define IEM_MC_FETCH_MEM_SEG_U256_NO_AC(a_u256Dst, a_iSeg, a_GCPtrMem)                          IEM_LIVENESS_MEM_SEG(a_iSeg)
     915#define IEM_MC_FETCH_MEM_SEG_U256_ALIGN_AVX(a_u256Dst, a_iSeg, a_GCPtrMem)                      IEM_LIVENESS_MEM_SEG(a_iSeg)
     916
     917#define IEM_MC_FETCH_MEM_SEG_YMM(a_YmmDst, a_iSeg, a_GCPtrMem)                                  IEM_LIVENESS_MEM_SEG(a_iSeg)
     918#define IEM_MC_FETCH_MEM_SEG_YMM_NO_AC(a_YmmDst, a_iSeg, a_GCPtrMem)                            IEM_LIVENESS_MEM_SEG(a_iSeg)
     919#define IEM_MC_FETCH_MEM_SEG_YMM_ALIGN_AVX(a_YmmDst, a_iSeg, a_GCPtrMem)                        IEM_LIVENESS_MEM_SEG(a_iSeg)
    920920
    921921#define IEM_MC_FETCH_MEM_FLAT_U256(a_u256Dst, a_GCPtrMem)                                       IEM_LIVENESS_MEM_FLAT()
     
    927927#define IEM_MC_FETCH_MEM_FLAT_YMM_ALIGN_AVX(a_YmmDst, a_GCPtrMem)                               IEM_LIVENESS_MEM_FLAT()
    928928
    929 #define IEM_MC_FETCH_MEM_U8_ZX_U16(a_u16Dst, a_iSeg, a_GCPtrMem)                                IEM_LIVENESS_MEM_SEG(a_iSeg)
    930 #define IEM_MC_FETCH_MEM_U8_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem)                                IEM_LIVENESS_MEM_SEG(a_iSeg)
    931 #define IEM_MC_FETCH_MEM_U8_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)                                IEM_LIVENESS_MEM_SEG(a_iSeg)
    932 #define IEM_MC_FETCH_MEM_U16_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem)                               IEM_LIVENESS_MEM_SEG(a_iSeg)
    933 #define IEM_MC_FETCH_MEM_U16_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)                               IEM_LIVENESS_MEM_SEG(a_iSeg)
    934 #define IEM_MC_FETCH_MEM_U32_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)                               IEM_LIVENESS_MEM_SEG(a_iSeg)
     929#define IEM_MC_FETCH_MEM_SEG_U8_ZX_U16(a_u16Dst, a_iSeg, a_GCPtrMem)                            IEM_LIVENESS_MEM_SEG(a_iSeg)
     930#define IEM_MC_FETCH_MEM_SEG_U8_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem)                            IEM_LIVENESS_MEM_SEG(a_iSeg)
     931#define IEM_MC_FETCH_MEM_SEG_U8_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)                            IEM_LIVENESS_MEM_SEG(a_iSeg)
     932#define IEM_MC_FETCH_MEM_SEG_U16_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem)                           IEM_LIVENESS_MEM_SEG(a_iSeg)
     933#define IEM_MC_FETCH_MEM_SEG_U16_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)                           IEM_LIVENESS_MEM_SEG(a_iSeg)
     934#define IEM_MC_FETCH_MEM_SEG_U32_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)                           IEM_LIVENESS_MEM_SEG(a_iSeg)
    935935
    936936#define IEM_MC_FETCH_MEM_FLAT_U8_ZX_U16(a_u16Dst, a_GCPtrMem)                                   IEM_LIVENESS_MEM_FLAT()
     
    941941#define IEM_MC_FETCH_MEM_FLAT_U32_ZX_U64(a_u64Dst, a_GCPtrMem)                                  IEM_LIVENESS_MEM_FLAT()
    942942
    943 #define IEM_MC_FETCH_MEM_U8_SX_U16(a_u16Dst, a_iSeg, a_GCPtrMem)                                IEM_LIVENESS_MEM_SEG(a_iSeg)
    944 #define IEM_MC_FETCH_MEM_U8_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem)                                IEM_LIVENESS_MEM_SEG(a_iSeg)
    945 #define IEM_MC_FETCH_MEM_U8_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)                                IEM_LIVENESS_MEM_SEG(a_iSeg)
    946 #define IEM_MC_FETCH_MEM_U16_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem)                               IEM_LIVENESS_MEM_SEG(a_iSeg)
    947 #define IEM_MC_FETCH_MEM_U16_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)                               IEM_LIVENESS_MEM_SEG(a_iSeg)
    948 #define IEM_MC_FETCH_MEM_U32_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)                               IEM_LIVENESS_MEM_SEG(a_iSeg)
     943#define IEM_MC_FETCH_MEM_SEG_U8_SX_U16(a_u16Dst, a_iSeg, a_GCPtrMem)                            IEM_LIVENESS_MEM_SEG(a_iSeg)
     944#define IEM_MC_FETCH_MEM_SEG_U8_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem)                            IEM_LIVENESS_MEM_SEG(a_iSeg)
     945#define IEM_MC_FETCH_MEM_SEG_U8_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)                            IEM_LIVENESS_MEM_SEG(a_iSeg)
     946#define IEM_MC_FETCH_MEM_SEG_U16_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem)                           IEM_LIVENESS_MEM_SEG(a_iSeg)
     947#define IEM_MC_FETCH_MEM_SEG_U16_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)                           IEM_LIVENESS_MEM_SEG(a_iSeg)
     948#define IEM_MC_FETCH_MEM_SEG_U32_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)                           IEM_LIVENESS_MEM_SEG(a_iSeg)
    949949
    950950#define IEM_MC_FETCH_MEM_FLAT_U8_SX_U16(a_u16Dst, a_GCPtrMem)                                   IEM_LIVENESS_MEM_FLAT()
  • trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllN8veRecompFuncs-x86.h

    r108287 r108288  
    71247124} IEMNATIVEMITMEMOP;
    71257125
    7126 /** Emits code for IEM_MC_FETCH_MEM_U8/16/32/64 and IEM_MC_STORE_MEM_U8/16/32/64,
     7126/** Emits code for IEM_MC_FETCH_MEM_SEG_U8/16/32/64 and IEM_MC_STORE_MEM_U8/16/32/64,
    71277127 * and IEM_MC_FETCH_MEM_FLAT_U8/16/32/64 and IEM_MC_STORE_MEM_FLAT_U8/16/32/64
    71287128 * (with iSegReg = UINT8_MAX). */
     
    77157715
    77167716/* 8-bit segmented: */
    7717 #define IEM_MC_FETCH_MEM_U8(a_u8Dst, a_iSeg, a_GCPtrMem) \
     7717#define IEM_MC_FETCH_MEM_SEG_U8(a_u8Dst, a_iSeg, a_GCPtrMem) \
    77187718    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(uint8_t), 0 /*fAlignMaskAndCtl*/, kIemNativeEmitMemOp_Fetch>( \
    77197719            pReNative, off, a_u8Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU8, pCallEntry->idxInstr)
    77207720
    7721 #define IEM_MC_FETCH_MEM_U8_ZX_U16(a_u16Dst, a_iSeg, a_GCPtrMem) \
     7721#define IEM_MC_FETCH_MEM_SEG_U8_ZX_U16(a_u16Dst, a_iSeg, a_GCPtrMem) \
    77227722    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(uint8_t), 0 /*fAlignMaskAndCtl*/, kIemNativeEmitMemOp_Fetch_Zx_U16>( \
    77237723            pReNative, off, a_u16Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU8, pCallEntry->idxInstr)
    77247724
    7725 #define IEM_MC_FETCH_MEM_U8_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
     7725#define IEM_MC_FETCH_MEM_SEG_U8_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
    77267726    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(uint8_t), 0 /*fAlignMaskAndCtl*/, kIemNativeEmitMemOp_Fetch_Zx_U32>( \
    77277727            pReNative, off, a_u32Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU8, pCallEntry->idxInstr)
    77287728
    7729 #define IEM_MC_FETCH_MEM_U8_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
     7729#define IEM_MC_FETCH_MEM_SEG_U8_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
    77307730    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(uint8_t), 0 /*fAlignMaskAndCtl*/, kIemNativeEmitMemOp_Fetch_Zx_U64>( \
    77317731            pReNative, off, a_u64Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU8, pCallEntry->idxInstr)
    77327732
    7733 #define IEM_MC_FETCH_MEM_U8_SX_U16(a_u16Dst, a_iSeg, a_GCPtrMem) \
     7733#define IEM_MC_FETCH_MEM_SEG_U8_SX_U16(a_u16Dst, a_iSeg, a_GCPtrMem) \
    77347734    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(uint8_t), 0 /*fAlignMaskAndCtl*/, kIemNativeEmitMemOp_Fetch_Sx_U16>(\
    77357735            pReNative, off, a_u16Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU8_Sx_U16, pCallEntry->idxInstr)
    77367736
    7737 #define IEM_MC_FETCH_MEM_U8_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
     7737#define IEM_MC_FETCH_MEM_SEG_U8_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
    77387738    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(uint8_t), 0 /*fAlignMaskAndCtl*/, kIemNativeEmitMemOp_Fetch_Sx_U32>(\
    77397739            pReNative, off, a_u32Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU8_Sx_U32, pCallEntry->idxInstr)
    77407740
    7741 #define IEM_MC_FETCH_MEM_U8_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
     7741#define IEM_MC_FETCH_MEM_SEG_U8_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
    77427742    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(uint8_t), 0 /*fAlignMaskAndCtl*/, kIemNativeEmitMemOp_Fetch_Sx_U64>(\
    77437743            pReNative, off, a_u64Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU8_Sx_U64, pCallEntry->idxInstr)
    77447744
    77457745/* 16-bit segmented: */
    7746 #define IEM_MC_FETCH_MEM_U16(a_u16Dst, a_iSeg, a_GCPtrMem) \
     7746#define IEM_MC_FETCH_MEM_SEG_U16(a_u16Dst, a_iSeg, a_GCPtrMem) \
    77477747    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(uint16_t), sizeof(uint16_t) - 1, kIemNativeEmitMemOp_Fetch>(\
    77487748            pReNative, off, a_u16Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU16, pCallEntry->idxInstr)
    77497749
    7750 #define IEM_MC_FETCH_MEM_U16_DISP(a_u16Dst, a_iSeg, a_GCPtrMem, a_offDisp) \
     7750#define IEM_MC_FETCH_MEM_SEG_U16_DISP(a_u16Dst, a_iSeg, a_GCPtrMem, a_offDisp) \
    77517751    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(uint16_t), sizeof(uint16_t) - 1, kIemNativeEmitMemOp_Fetch>(\
    77527752            pReNative, off, a_u16Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU16, pCallEntry->idxInstr, a_offDisp)
    77537753
    7754 #define IEM_MC_FETCH_MEM_U16_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
     7754#define IEM_MC_FETCH_MEM_SEG_U16_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
    77557755    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(uint16_t), sizeof(uint16_t) - 1, kIemNativeEmitMemOp_Fetch_Zx_U32>(\
    77567756            pReNative, off, a_u32Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU16, pCallEntry->idxInstr)
    77577757
    7758 #define IEM_MC_FETCH_MEM_U16_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
     7758#define IEM_MC_FETCH_MEM_SEG_U16_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
    77597759    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(uint16_t), sizeof(uint16_t) - 1, kIemNativeEmitMemOp_Fetch_Zx_U64>(\
    77607760            pReNative, off, a_u64Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU16, pCallEntry->idxInstr)
    77617761
    7762 #define IEM_MC_FETCH_MEM_U16_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
     7762#define IEM_MC_FETCH_MEM_SEG_U16_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
    77637763    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(uint16_t), sizeof(uint16_t) - 1, kIemNativeEmitMemOp_Fetch_Sx_U32>(\
    77647764            pReNative, off, a_u32Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU16_Sx_U32, pCallEntry->idxInstr)
    77657765
    7766 #define IEM_MC_FETCH_MEM_U16_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
     7766#define IEM_MC_FETCH_MEM_SEG_U16_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
    77677767    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(uint16_t), sizeof(uint16_t) - 1, kIemNativeEmitMemOp_Fetch_Sx_U64>(\
    77687768            pReNative, off, a_u64Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU16_Sx_U64, pCallEntry->idxInstr)
     
    77707770
    77717771/* 32-bit segmented: */
    7772 #define IEM_MC_FETCH_MEM_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
     7772#define IEM_MC_FETCH_MEM_SEG_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
    77737773    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(uint32_t), sizeof(uint32_t) - 1, kIemNativeEmitMemOp_Fetch>(\
    77747774            pReNative, off, a_u32Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU32, pCallEntry->idxInstr)
    77757775
    7776 #define IEM_MC_FETCH_MEM_U32_DISP(a_u32Dst, a_iSeg, a_GCPtrMem, a_offDisp) \
     7776#define IEM_MC_FETCH_MEM_SEG_U32_DISP(a_u32Dst, a_iSeg, a_GCPtrMem, a_offDisp) \
    77777777    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(uint32_t), sizeof(uint32_t) - 1, kIemNativeEmitMemOp_Fetch>(\
    77787778            pReNative, off, a_u32Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU32, pCallEntry->idxInstr, a_offDisp)
    77797779
    7780 #define IEM_MC_FETCH_MEM_U32_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
     7780#define IEM_MC_FETCH_MEM_SEG_U32_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
    77817781    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(uint32_t), sizeof(uint32_t) - 1, kIemNativeEmitMemOp_Fetch_Zx_U64>(\
    77827782            pReNative, off, a_u64Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU32, pCallEntry->idxInstr)
    77837783
    7784 #define IEM_MC_FETCH_MEM_U32_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
     7784#define IEM_MC_FETCH_MEM_SEG_U32_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
    77857785    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(uint32_t), sizeof(uint32_t) - 1, kIemNativeEmitMemOp_Fetch_Sx_U64>(\
    77867786            pReNative, off, a_u64Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU32_Sx_U64, pCallEntry->idxInstr)
    77877787
    7788 #define IEM_MC_FETCH_MEM_I16(a_i16Dst, a_iSeg, a_GCPtrMem) \
     7788#define IEM_MC_FETCH_MEM_SEG_I16(a_i16Dst, a_iSeg, a_GCPtrMem) \
    77897789    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(int16_t), sizeof(int16_t) - 1, kIemNativeEmitMemOp_Fetch_Sx_U32>(\
    77907790            pReNative, off, a_i16Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU16_Sx_U32, pCallEntry->idxInstr)
    77917791
    7792 #define IEM_MC_FETCH_MEM_I16_DISP(a_i16Dst, a_iSeg, a_GCPtrMem, a_offDisp) \
     7792#define IEM_MC_FETCH_MEM_SEG_I16_DISP(a_i16Dst, a_iSeg, a_GCPtrMem, a_offDisp) \
    77937793    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(int16_t), sizeof(int16_t) - 1, kIemNativeEmitMemOp_Fetch_Sx_U32>(\
    77947794            pReNative, off, a_i16Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU16_Sx_U32, pCallEntry->idxInstr, \
    77957795            a_offDisp)
    77967796
    7797 #define IEM_MC_FETCH_MEM_I32(a_i32Dst, a_iSeg, a_GCPtrMem) \
     7797#define IEM_MC_FETCH_MEM_SEG_I32(a_i32Dst, a_iSeg, a_GCPtrMem) \
    77987798    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(int32_t), sizeof(int32_t) - 1, kIemNativeEmitMemOp_Fetch>(\
    77997799            pReNative, off, a_i32Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU32, pCallEntry->idxInstr)
    78007800
    7801 #define IEM_MC_FETCH_MEM_I32_DISP(a_i32Dst, a_iSeg, a_GCPtrMem, a_offDisp) \
     7801#define IEM_MC_FETCH_MEM_SEG_I32_DISP(a_i32Dst, a_iSeg, a_GCPtrMem, a_offDisp) \
    78027802    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(int32_t), sizeof(int32_t) - 1, kIemNativeEmitMemOp_Fetch>(\
    78037803            pReNative, off, a_i32Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU32, pCallEntry->idxInstr, a_offDisp)
    78047804
    7805 #define IEM_MC_FETCH_MEM_I64(a_i64Dst, a_iSeg, a_GCPtrMem) \
     7805#define IEM_MC_FETCH_MEM_SEG_I64(a_i64Dst, a_iSeg, a_GCPtrMem) \
    78067806    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(int64_t), sizeof(int64_t) - 1, kIemNativeEmitMemOp_Fetch>(\
    78077807            pReNative, off, a_i64Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU64, pCallEntry->idxInstr)
    78087808
    78097809AssertCompileSize(RTFLOAT32U, sizeof(uint32_t));
    7810 #define IEM_MC_FETCH_MEM_R32(a_r32Dst, a_iSeg, a_GCPtrMem) \
     7810#define IEM_MC_FETCH_MEM_SEG_R32(a_r32Dst, a_iSeg, a_GCPtrMem) \
    78117811    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(RTFLOAT32U), sizeof(RTFLOAT32U) - 1, kIemNativeEmitMemOp_Fetch>(\
    78127812            pReNative, off, a_r32Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU32, pCallEntry->idxInstr)
     
    78147814
    78157815/* 64-bit segmented: */
    7816 #define IEM_MC_FETCH_MEM_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
     7816#define IEM_MC_FETCH_MEM_SEG_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
    78177817    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(uint64_t), sizeof(uint64_t) - 1, kIemNativeEmitMemOp_Fetch>(\
    78187818            pReNative, off, a_u64Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU64, pCallEntry->idxInstr)
    78197819
    78207820AssertCompileSize(RTFLOAT64U, sizeof(uint64_t));
    7821 #define IEM_MC_FETCH_MEM_R64(a_r64Dst, a_iSeg, a_GCPtrMem) \
     7821#define IEM_MC_FETCH_MEM_SEG_R64(a_r64Dst, a_iSeg, a_GCPtrMem) \
    78227822    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(RTFLOAT64U), sizeof(RTFLOAT64U) - 1, kIemNativeEmitMemOp_Fetch>(\
    78237823            pReNative, off, a_r64Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU64, pCallEntry->idxInstr)
     
    79327932
    79337933/* 128-bit segmented: */
    7934 #define IEM_MC_FETCH_MEM_U128(a_u128Dst, a_iSeg, a_GCPtrMem) \
     7934#define IEM_MC_FETCH_MEM_SEG_U128(a_u128Dst, a_iSeg, a_GCPtrMem) \
    79357935    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(RTUINT128U), sizeof(RTUINT128U) - 1, kIemNativeEmitMemOp_Fetch>(\
    79367936            pReNative, off, a_u128Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU128, pCallEntry->idxInstr)
    79377937
    7938 #define IEM_MC_FETCH_MEM_U128_ALIGN_SSE(a_u128Dst, a_iSeg, a_GCPtrMem) \
     7938#define IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(a_u128Dst, a_iSeg, a_GCPtrMem) \
    79397939    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(RTUINT128U), \
    79407940                                               (sizeof(RTUINT128U) - 1U) | IEM_MEMMAP_F_ALIGN_GP | IEM_MEMMAP_F_ALIGN_SSE, \
     
    79437943
    79447944AssertCompileSize(X86XMMREG, sizeof(RTUINT128U));
    7945 #define IEM_MC_FETCH_MEM_XMM_ALIGN_SSE(a_uXmmDst, a_iSeg, a_GCPtrMem) \
     7945#define IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE(a_uXmmDst, a_iSeg, a_GCPtrMem) \
    79467946    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(X86XMMREG), \
    79477947                                               (sizeof(X86XMMREG) - 1U) | IEM_MEMMAP_F_ALIGN_GP | IEM_MEMMAP_F_ALIGN_SSE, \
     
    79497949            pReNative, off, a_uXmmDst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU128AlignedSse, pCallEntry->idxInstr)
    79507950
    7951 #define IEM_MC_FETCH_MEM_U128_NO_AC(a_u128Dst, a_iSeg, a_GCPtrMem) \
     7951#define IEM_MC_FETCH_MEM_SEG_U128_NO_AC(a_u128Dst, a_iSeg, a_GCPtrMem) \
    79527952    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(RTUINT128U), sizeof(RTUINT128U) - 1, kIemNativeEmitMemOp_Fetch>(\
    79537953            pReNative, off, a_u128Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU128NoAc, pCallEntry->idxInstr)
    79547954
    7955 #define IEM_MC_FETCH_MEM_XMM_NO_AC(a_u128Dst, a_iSeg, a_GCPtrMem) \
     7955#define IEM_MC_FETCH_MEM_SEG_XMM_NO_AC(a_u128Dst, a_iSeg, a_GCPtrMem) \
    79567956    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(X86XMMREG), sizeof(X86XMMREG) - 1, kIemNativeEmitMemOp_Fetch>(\
    79577957            pReNative, off, a_u128Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU128NoAc, pCallEntry->idxInstr)
     
    79847984
    79857985/* 256-bit segmented: */
    7986 #define IEM_MC_FETCH_MEM_U256(a_u256Dst, a_iSeg, a_GCPtrMem) \
     7986#define IEM_MC_FETCH_MEM_SEG_U256(a_u256Dst, a_iSeg, a_GCPtrMem) \
    79877987    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(RTUINT256U), sizeof(RTUINT256U) - 1, kIemNativeEmitMemOp_Fetch>(\
    79887988            pReNative, off, a_u256Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU256NoAc, pCallEntry->idxInstr)
    79897989
    7990 #define IEM_MC_FETCH_MEM_U256_NO_AC(a_u256Dst, a_iSeg, a_GCPtrMem) \
     7990#define IEM_MC_FETCH_MEM_SEG_U256_NO_AC(a_u256Dst, a_iSeg, a_GCPtrMem) \
    79917991    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(RTUINT256U), sizeof(RTUINT256U) - 1, kIemNativeEmitMemOp_Fetch>(\
    79927992            pReNative, off, a_u256Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU256NoAc, pCallEntry->idxInstr)
    79937993
    7994 #define IEM_MC_FETCH_MEM_U256_ALIGN_AVX(a_u256Dst, a_iSeg, a_GCPtrMem) \
     7994#define IEM_MC_FETCH_MEM_SEG_U256_ALIGN_AVX(a_u256Dst, a_iSeg, a_GCPtrMem) \
    79957995    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(RTUINT256U), \
    79967996                                               (sizeof(RTUINT256U) - 1U) | IEM_MEMMAP_F_ALIGN_GP, \
     
    79987998            pReNative, off, a_u256Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU256AlignedAvx, pCallEntry->idxInstr)
    79997999
    8000 #define IEM_MC_FETCH_MEM_YMM_NO_AC(a_u256Dst, a_iSeg, a_GCPtrMem) \
     8000#define IEM_MC_FETCH_MEM_SEG_YMM_NO_AC(a_u256Dst, a_iSeg, a_GCPtrMem) \
    80018001    off = iemNativeEmitMemFetchStoreDataCommon<sizeof(X86YMMREG), sizeof(X86YMMREG) - 1, kIemNativeEmitMemOp_Fetch>(\
    80028002            pReNative, off, a_u256Dst, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemFetchDataU256NoAc, pCallEntry->idxInstr)
  • trunk/src/VBox/VMM/include/IEMMc.h

    r108287 r108288  
    970970    do { IEM_MC_INT_CLEAR_ZMM_256_UP(a_iYReg); } while (0)
    971971
    972 #define IEM_MC_FETCH_MEM_U8(a_u8Dst, a_iSeg, a_GCPtrMem) \
     972#define IEM_MC_FETCH_MEM_SEG_U8(a_u8Dst, a_iSeg, a_GCPtrMem) \
    973973    ((a_u8Dst) = iemMemFetchDataU8Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    974 #define IEM_MC_FETCH_MEM16_U8(a_u8Dst, a_iSeg, a_GCPtrMem16) \
     974#define IEM_MC_FETCH_MEM16_SEG_U8(a_u8Dst, a_iSeg, a_GCPtrMem16) \
    975975    ((a_u8Dst) = iemMemFetchDataU8Jmp(pVCpu, (a_iSeg), (a_GCPtrMem16)))
    976 #define IEM_MC_FETCH_MEM32_U8(a_u8Dst, a_iSeg, a_GCPtrMem32) \
     976#define IEM_MC_FETCH_MEM32_SEG_U8(a_u8Dst, a_iSeg, a_GCPtrMem32) \
    977977    ((a_u8Dst) = iemMemFetchDataU8Jmp(pVCpu, (a_iSeg), (a_GCPtrMem32)))
    978978
     
    984984    ((a_u8Dst) = iemMemFlatFetchDataU8Jmp(pVCpu, (a_GCPtrMem32)))
    985985
    986 #define IEM_MC_FETCH_MEM_U16(a_u16Dst, a_iSeg, a_GCPtrMem) \
     986#define IEM_MC_FETCH_MEM_SEG_U16(a_u16Dst, a_iSeg, a_GCPtrMem) \
    987987    ((a_u16Dst) = iemMemFetchDataU16Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    988 #define IEM_MC_FETCH_MEM_U16_DISP(a_u16Dst, a_iSeg, a_GCPtrMem, a_offDisp) \
     988#define IEM_MC_FETCH_MEM_SEG_U16_DISP(a_u16Dst, a_iSeg, a_GCPtrMem, a_offDisp) \
    989989    ((a_u16Dst) = iemMemFetchDataU16Jmp(pVCpu, (a_iSeg), (a_GCPtrMem) + (a_offDisp)))
    990 #define IEM_MC_FETCH_MEM_I16(a_i16Dst, a_iSeg, a_GCPtrMem) \
     990#define IEM_MC_FETCH_MEM_SEG_I16(a_i16Dst, a_iSeg, a_GCPtrMem) \
    991991    ((a_i16Dst) = (int16_t)iemMemFetchDataU16Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    992 #define IEM_MC_FETCH_MEM_I16_DISP(a_i16Dst, a_iSeg, a_GCPtrMem, a_offDisp) \
     992#define IEM_MC_FETCH_MEM_SEG_I16_DISP(a_i16Dst, a_iSeg, a_GCPtrMem, a_offDisp) \
    993993    ((a_i16Dst) = (int16_t)iemMemFetchDataU16Jmp(pVCpu, (a_iSeg), (a_GCPtrMem) + (a_offDisp)))
    994994
     
    10021002    ((a_i16Dst) = (int16_t)iemMemFlatFetchDataU16Jmp(pVCpu, (a_GCPtrMem) + (a_offDisp)))
    10031003
    1004 #define IEM_MC_FETCH_MEM_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
     1004#define IEM_MC_FETCH_MEM_SEG_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
    10051005    ((a_u32Dst) = iemMemFetchDataU32Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    1006 #define IEM_MC_FETCH_MEM_U32_DISP(a_u32Dst, a_iSeg, a_GCPtrMem, a_offDisp) \
     1006#define IEM_MC_FETCH_MEM_SEG_U32_DISP(a_u32Dst, a_iSeg, a_GCPtrMem, a_offDisp) \
    10071007    ((a_u32Dst) = iemMemFetchDataU32Jmp(pVCpu, (a_iSeg), (a_GCPtrMem) + (a_offDisp)))
    1008 #define IEM_MC_FETCH_MEM_I32(a_i32Dst, a_iSeg, a_GCPtrMem) \
     1008#define IEM_MC_FETCH_MEM_SEG_I32(a_i32Dst, a_iSeg, a_GCPtrMem) \
    10091009    ((a_i32Dst) = (int32_t)iemMemFetchDataU32Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    1010 #define IEM_MC_FETCH_MEM_I32_DISP(a_i32Dst, a_iSeg, a_GCPtrMem, a_offDisp) \
     1010#define IEM_MC_FETCH_MEM_SEG_I32_DISP(a_i32Dst, a_iSeg, a_GCPtrMem, a_offDisp) \
    10111011    ((a_i32Dst) = (int32_t)iemMemFetchDataU32Jmp(pVCpu, (a_iSeg), (a_GCPtrMem) + (a_offDisp)))
    10121012
     
    10201020    ((a_i32Dst) = (int32_t)iemMemFlatFetchDataU32Jmp(pVCpu, (a_GCPtrMem) + (a_offDisp)))
    10211021
    1022 #define IEM_MC_FETCH_MEM_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
     1022#define IEM_MC_FETCH_MEM_SEG_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
    10231023    ((a_u64Dst) = iemMemFetchDataU64Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    1024 #define IEM_MC_FETCH_MEM_U64_DISP(a_u64Dst, a_iSeg, a_GCPtrMem, a_offDisp) \
     1024#define IEM_MC_FETCH_MEM_SEG_U64_DISP(a_u64Dst, a_iSeg, a_GCPtrMem, a_offDisp) \
    10251025    ((a_u64Dst) = iemMemFetchDataU64Jmp(pVCpu, (a_iSeg), (a_GCPtrMem) + (a_offDisp)))
    1026 #define IEM_MC_FETCH_MEM_U64_ALIGN_U128(a_u64Dst, a_iSeg, a_GCPtrMem) \
     1026#define IEM_MC_FETCH_MEM_SEG_U64_ALIGN_U128(a_u64Dst, a_iSeg, a_GCPtrMem) \
    10271027    ((a_u64Dst) = iemMemFetchDataU64AlignedU128Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    1028 #define IEM_MC_FETCH_MEM_I64(a_i64Dst, a_iSeg, a_GCPtrMem) \
     1028#define IEM_MC_FETCH_MEM_SEG_I64(a_i64Dst, a_iSeg, a_GCPtrMem) \
    10291029    ((a_i64Dst) = (int64_t)iemMemFetchDataU64Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    10301030
     
    10381038    ((a_i64Dst) = (int64_t)iemMemFlatFetchDataU64Jmp(pVCpu, (a_GCPtrMem)))
    10391039
    1040 #define IEM_MC_FETCH_MEM_R32(a_r32Dst, a_iSeg, a_GCPtrMem) \
     1040#define IEM_MC_FETCH_MEM_SEG_R32(a_r32Dst, a_iSeg, a_GCPtrMem) \
    10411041    ((a_r32Dst).u = iemMemFetchDataU32Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    1042 #define IEM_MC_FETCH_MEM_R64(a_r64Dst, a_iSeg, a_GCPtrMem) \
     1042#define IEM_MC_FETCH_MEM_SEG_R64(a_r64Dst, a_iSeg, a_GCPtrMem) \
    10431043    ((a_r64Dst).u = iemMemFetchDataU64Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    1044 #define IEM_MC_FETCH_MEM_R80(a_r80Dst, a_iSeg, a_GCPtrMem) \
     1044#define IEM_MC_FETCH_MEM_SEG_R80(a_r80Dst, a_iSeg, a_GCPtrMem) \
    10451045    iemMemFetchDataR80Jmp(pVCpu, &(a_r80Dst), (a_iSeg), (a_GCPtrMem))
    1046 #define IEM_MC_FETCH_MEM_D80(a_d80Dst, a_iSeg, a_GCPtrMem) \
     1046#define IEM_MC_FETCH_MEM_SEG_D80(a_d80Dst, a_iSeg, a_GCPtrMem) \
    10471047    iemMemFetchDataD80Jmp(pVCpu, &(a_d80Dst), (a_iSeg), (a_GCPtrMem))
    10481048
     
    10561056    iemMemFlatFetchDataD80Jmp(pVCpu, &(a_d80Dst), (a_GCPtrMem))
    10571057
    1058 #define IEM_MC_FETCH_MEM_U128(a_u128Dst, a_iSeg, a_GCPtrMem) \
     1058#define IEM_MC_FETCH_MEM_SEG_U128(a_u128Dst, a_iSeg, a_GCPtrMem) \
    10591059    iemMemFetchDataU128Jmp(pVCpu, &(a_u128Dst), (a_iSeg), (a_GCPtrMem))
    1060 #define IEM_MC_FETCH_MEM_U128_NO_AC(a_u128Dst, a_iSeg, a_GCPtrMem) \
     1060#define IEM_MC_FETCH_MEM_SEG_U128_NO_AC(a_u128Dst, a_iSeg, a_GCPtrMem) \
    10611061    iemMemFetchDataU128NoAcJmp(pVCpu, &(a_u128Dst), (a_iSeg), (a_GCPtrMem))
    1062 #define IEM_MC_FETCH_MEM_U128_ALIGN_SSE(a_u128Dst, a_iSeg, a_GCPtrMem) \
     1062#define IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(a_u128Dst, a_iSeg, a_GCPtrMem) \
    10631063    iemMemFetchDataU128AlignedSseJmp(pVCpu, &(a_u128Dst), (a_iSeg), (a_GCPtrMem))
    10641064
    1065 #define IEM_MC_FETCH_MEM_XMM(a_XmmDst, a_iSeg, a_GCPtrMem) \
     1065#define IEM_MC_FETCH_MEM_SEG_XMM(a_XmmDst, a_iSeg, a_GCPtrMem) \
    10661066    iemMemFetchDataU128Jmp(pVCpu, &(a_XmmDst).uXmm, (a_iSeg), (a_GCPtrMem))
    1067 #define IEM_MC_FETCH_MEM_XMM_NO_AC(a_XmmDst, a_iSeg, a_GCPtrMem) \
     1067#define IEM_MC_FETCH_MEM_SEG_XMM_NO_AC(a_XmmDst, a_iSeg, a_GCPtrMem) \
    10681068    iemMemFetchDataU128NoAcJmp(pVCpu, &(a_XmmDst).uXmm, (a_iSeg), (a_GCPtrMem))
    1069 #define IEM_MC_FETCH_MEM_XMM_ALIGN_SSE(a_XmmDst, a_iSeg, a_GCPtrMem) \
     1069#define IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE(a_XmmDst, a_iSeg, a_GCPtrMem) \
    10701070    iemMemFetchDataU128AlignedSseJmp(pVCpu, &(a_XmmDst).uXmm, (a_iSeg), (a_GCPtrMem))
    10711071
     
    10841084    iemMemFlatFetchDataU128AlignedSseJmp(pVCpu, &(a_XmmDst).uXmm, (a_GCPtrMem))
    10851085
    1086 #define IEM_MC_FETCH_MEM_U128_AND_XREG_U128(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) do { \
     1086#define IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) do { \
    10871087        iemMemFetchDataU128Jmp(pVCpu, &(a_Dst).uSrc2, (a_iSeg2), (a_GCPtrMem2)); \
    10881088        (a_Dst).uSrc1.au64[0] = pVCpu->cpum.GstCtx.XState.x87.aXMM[(a_iXReg1)].au64[0]; \
     
    10951095    } while (0)
    10961096
    1097 #define IEM_MC_FETCH_MEM_XMM_ALIGN_SSE_AND_XREG_XMM(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) do { \
     1097#define IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE_AND_XREG_XMM(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) do { \
    10981098        iemMemFetchDataU128AlignedSseJmp(pVCpu, &(a_Dst).uSrc2.uXmm, (a_iSeg2), (a_GCPtrMem2)); \
    10991099        (a_Dst).uSrc1.uXmm.au64[0] = pVCpu->cpum.GstCtx.XState.x87.aXMM[(a_iXReg1)].au64[0]; \
     
    11011101    } while (0)
    11021102
    1103 #define IEM_MC_FETCH_MEM_XMM_NO_AC_AND_XREG_XMM(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) do { \
     1103#define IEM_MC_FETCH_MEM_SEG_XMM_NO_AC_AND_XREG_XMM(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) do { \
    11041104        iemMemFetchDataU128NoAcJmp(pVCpu, &(a_Dst).uSrc2.uXmm, (a_iSeg2), (a_GCPtrMem2)); \
    11051105        (a_Dst).uSrc1.uXmm.au64[0] = pVCpu->cpum.GstCtx.XState.x87.aXMM[(a_iXReg1)].au64[0]; \
     
    11191119    } while (0)
    11201120
    1121 #define IEM_MC_FETCH_MEM_XMM_U32_AND_XREG_XMM(a_Dst, a_iXReg1, a_iDWord2, a_iSeg2, a_GCPtrMem2) do {  \
     1121#define IEM_MC_FETCH_MEM_SEG_XMM_U32_AND_XREG_XMM(a_Dst, a_iXReg1, a_iDWord2, a_iSeg2, a_GCPtrMem2) do {  \
    11221122        (a_Dst).uSrc2.uXmm.au64[0] = 0; \
    11231123        (a_Dst).uSrc2.uXmm.au64[1] = 0; \
     
    11341134    } while (0)
    11351135
    1136 #define IEM_MC_FETCH_MEM_XMM_U64_AND_XREG_XMM(a_Dst, a_iXReg1, a_iQWord2, a_iSeg2, a_GCPtrMem2) do {  \
     1136#define IEM_MC_FETCH_MEM_SEG_XMM_U64_AND_XREG_XMM(a_Dst, a_iXReg1, a_iQWord2, a_iSeg2, a_GCPtrMem2) do {  \
    11371137        (a_Dst).uSrc2.uXmm.au64[!(a_iQWord2)] = 0; \
    11381138        (a_Dst).uSrc2.uXmm.au64[(a_iQWord2)]  = iemMemFetchDataU64Jmp(pVCpu, (a_iSeg2), (a_GCPtrMem2)); \
     
    11481148
    11491149
    1150 #define IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_RAX_RDX_U64(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) do { \
     1150#define IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_RAX_RDX_U64(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) do { \
    11511151        iemMemFetchDataU128Jmp(pVCpu, &(a_Dst).uSrc2, (a_iSeg2), (a_GCPtrMem2)); \
    11521152        (a_Dst).uSrc1.au64[0] = pVCpu->cpum.GstCtx.XState.x87.aXMM[(a_iXReg1)].au64[0]; \
     
    11551155        (a_Dst).u64Rdx        = pVCpu->cpum.GstCtx.rdx; \
    11561156    } while (0)
    1157 #define IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) do { \
     1157#define IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) do { \
    11581158        iemMemFetchDataU128Jmp(pVCpu, &(a_Dst).uSrc2, (a_iSeg2), (a_GCPtrMem2)); \
    11591159        (a_Dst).uSrc1.au64[0] = pVCpu->cpum.GstCtx.XState.x87.aXMM[(a_iXReg1)].au64[0]; \
     
    11791179
    11801180
    1181 #define IEM_MC_FETCH_MEM_U256(a_u256Dst, a_iSeg, a_GCPtrMem) \
     1181#define IEM_MC_FETCH_MEM_SEG_U256(a_u256Dst, a_iSeg, a_GCPtrMem) \
    11821182    iemMemFetchDataU256NoAcJmp(pVCpu, &(a_u256Dst), (a_iSeg), (a_GCPtrMem))
    1183 #define IEM_MC_FETCH_MEM_U256_NO_AC(a_u256Dst, a_iSeg, a_GCPtrMem) \
     1183#define IEM_MC_FETCH_MEM_SEG_U256_NO_AC(a_u256Dst, a_iSeg, a_GCPtrMem) \
    11841184    iemMemFetchDataU256NoAcJmp(pVCpu, &(a_u256Dst), (a_iSeg), (a_GCPtrMem))
    1185 #define IEM_MC_FETCH_MEM_U256_ALIGN_AVX(a_u256Dst, a_iSeg, a_GCPtrMem) \
     1185#define IEM_MC_FETCH_MEM_SEG_U256_ALIGN_AVX(a_u256Dst, a_iSeg, a_GCPtrMem) \
    11861186    iemMemFetchDataU256AlignedAvxJmp(pVCpu, &(a_u256Dst), (a_iSeg), (a_GCPtrMem))
    11871187
    1188 #define IEM_MC_FETCH_MEM_YMM(a_YmmDst, a_iSeg, a_GCPtrMem) \
     1188#define IEM_MC_FETCH_MEM_SEG_YMM(a_YmmDst, a_iSeg, a_GCPtrMem) \
    11891189    iemMemFetchDataU256NoAcJmp(pVCpu, &(a_YmmDst).ymm, (a_iSeg), (a_GCPtrMem))
    1190 #define IEM_MC_FETCH_MEM_YMM_NO_AC(a_YmmDst, a_iSeg, a_GCPtrMem) \
     1190#define IEM_MC_FETCH_MEM_SEG_YMM_NO_AC(a_YmmDst, a_iSeg, a_GCPtrMem) \
    11911191    iemMemFetchDataU256NoAcJmp(pVCpu, &(a_YmmDst).ymm, (a_iSeg), (a_GCPtrMem))
    1192 #define IEM_MC_FETCH_MEM_YMM_ALIGN_AVX(a_YmmDst, a_iSeg, a_GCPtrMem) \
     1192#define IEM_MC_FETCH_MEM_SEG_YMM_ALIGN_AVX(a_YmmDst, a_iSeg, a_GCPtrMem) \
    11931193    iemMemFetchDataU256AlignedAvxJmp(pVCpu, &(a_YmmDst).ymm, (a_iSeg), (a_GCPtrMem))
    11941194
    1195 #define IEM_MC_FETCH_MEM_YMM_NO_AC_AND_YREG_YMM(a_uYmmDst, a_iYRegSrc1, a_iSeg2, a_GCPtrMem2) do { \
     1195#define IEM_MC_FETCH_MEM_SEG_YMM_NO_AC_AND_YREG_YMM(a_uYmmDst, a_iYRegSrc1, a_iSeg2, a_GCPtrMem2) do { \
    11961196        uintptr_t const a_iYRegSrc1Tmp = (a_iYRegSrc1); \
    11971197        iemMemFetchDataU256NoAcJmp(pVCpu, &(a_uYmmDst).uSrc2.ymm, (a_iSeg2), (a_GCPtrMem2)); \
     
    12271227
    12281228
    1229 #define IEM_MC_FETCH_MEM_U8_ZX_U16(a_u16Dst, a_iSeg, a_GCPtrMem) \
     1229#define IEM_MC_FETCH_MEM_SEG_U8_ZX_U16(a_u16Dst, a_iSeg, a_GCPtrMem) \
    12301230    ((a_u16Dst) = iemMemFetchDataU8Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    1231 #define IEM_MC_FETCH_MEM_U8_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
     1231#define IEM_MC_FETCH_MEM_SEG_U8_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
    12321232    ((a_u32Dst) = iemMemFetchDataU8Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    1233 #define IEM_MC_FETCH_MEM_U8_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
     1233#define IEM_MC_FETCH_MEM_SEG_U8_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
    12341234    ((a_u64Dst) = iemMemFetchDataU8Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    1235 #define IEM_MC_FETCH_MEM_U16_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
     1235#define IEM_MC_FETCH_MEM_SEG_U16_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
    12361236    ((a_u32Dst) = iemMemFetchDataU16Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    1237 #define IEM_MC_FETCH_MEM_U16_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
     1237#define IEM_MC_FETCH_MEM_SEG_U16_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
    12381238    ((a_u64Dst) = iemMemFetchDataU16Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    1239 #define IEM_MC_FETCH_MEM_U32_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
     1239#define IEM_MC_FETCH_MEM_SEG_U32_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
    12401240    ((a_u64Dst) = iemMemFetchDataU32Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    12411241
     
    12531253    ((a_u64Dst) = iemMemFlatFetchDataU32Jmp(pVCpu, (a_GCPtrMem)))
    12541254
    1255 #define IEM_MC_FETCH_MEM_U8_SX_U16(a_u16Dst, a_iSeg, a_GCPtrMem) \
     1255#define IEM_MC_FETCH_MEM_SEG_U8_SX_U16(a_u16Dst, a_iSeg, a_GCPtrMem) \
    12561256    ((a_u16Dst) = (int8_t)iemMemFetchDataU8Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    1257 #define IEM_MC_FETCH_MEM_U8_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
     1257#define IEM_MC_FETCH_MEM_SEG_U8_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
    12581258    ((a_u32Dst) = (int8_t)iemMemFetchDataU8Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    1259 #define IEM_MC_FETCH_MEM_U8_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
     1259#define IEM_MC_FETCH_MEM_SEG_U8_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
    12601260    ((a_u64Dst) = (int8_t)iemMemFetchDataU8Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    1261 #define IEM_MC_FETCH_MEM_U16_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
     1261#define IEM_MC_FETCH_MEM_SEG_U16_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) \
    12621262    ((a_u32Dst) = (int16_t)iemMemFetchDataU16Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    1263 #define IEM_MC_FETCH_MEM_U16_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
     1263#define IEM_MC_FETCH_MEM_SEG_U16_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
    12641264    ((a_u64Dst) = (int16_t)iemMemFetchDataU16Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    1265 #define IEM_MC_FETCH_MEM_U32_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
     1265#define IEM_MC_FETCH_MEM_SEG_U32_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) \
    12661266    ((a_u64Dst) = (int32_t)iemMemFetchDataU32Jmp(pVCpu, (a_iSeg), (a_GCPtrMem)))
    12671267
  • trunk/src/VBox/VMM/testcase/tstIEMCheckMc.cpp

    r108287 r108288  
    893893#define IEM_MC_CLEAR_ZREG_256_UP(a_iZReg)                           do { CHK_YREG_IDX(a_iZReg); (void)fAvxWrite; (void)fMcBegin; } while (0)
    894894
    895 #define IEM_MC_FETCH_MEM_U8(a_u8Dst, a_iSeg, a_GCPtrMem)             do { CHK_GCPTR(a_GCPtrMem);            CHK_VAR(a_GCPtrMem);   CHK_VAR(a_u8Dst);  AssertCompile(sizeof(a_u8Dst)  == (sizeof(uint8_t)));  CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    896 #define IEM_MC_FETCH_MEM16_U8(a_u8Dst, a_iSeg, a_GCPtrMem16)         do { CHK_TYPE(uint16_t, a_GCPtrMem16); CHK_VAR(a_GCPtrMem16); CHK_VAR(a_u8Dst);  AssertCompile(sizeof(a_u8Dst)  == (sizeof(uint8_t)));  CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    897 #define IEM_MC_FETCH_MEM32_U8(a_u8Dst, a_iSeg, a_GCPtrMem32)         do { CHK_TYPE(uint32_t, a_GCPtrMem32); CHK_VAR(a_GCPtrMem32); CHK_VAR(a_u8Dst);  AssertCompile(sizeof(a_u8Dst)  == (sizeof(uint8_t)));  CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    898 #define IEM_MC_FETCH_MEM_U16(a_u16Dst, a_iSeg, a_GCPtrMem)           do { CHK_GCPTR(a_GCPtrMem);            CHK_VAR(a_GCPtrMem);   CHK_VAR(a_u16Dst); AssertCompile(sizeof(a_u16Dst) == (sizeof(uint16_t))); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    899 #define IEM_MC_FETCH_MEM_I16(a_i16Dst, a_iSeg, a_GCPtrMem)           do { CHK_GCPTR(a_GCPtrMem);            CHK_VAR(a_GCPtrMem);   CHK_VAR(a_i16Dst); CHK_TYPE(int16_t, a_i16Dst);                           CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    900 #define IEM_MC_FETCH_MEM_U32(a_u32Dst, a_iSeg, a_GCPtrMem)           do { CHK_GCPTR(a_GCPtrMem);            CHK_VAR(a_GCPtrMem);   CHK_VAR(a_u32Dst); AssertCompile(sizeof(a_u32Dst) == (sizeof(uint32_t))); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    901 #define IEM_MC_FETCH_MEM_I32(a_i32Dst, a_iSeg, a_GCPtrMem)           do { CHK_GCPTR(a_GCPtrMem);            CHK_VAR(a_GCPtrMem);   CHK_VAR(a_i32Dst); CHK_TYPE(int32_t, a_i32Dst);                           CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    902 #define IEM_MC_FETCH_MEM_U64(a_u64Dst, a_iSeg, a_GCPtrMem)           do { CHK_GCPTR(a_GCPtrMem);            CHK_VAR(a_GCPtrMem);   CHK_VAR(a_u64Dst); AssertCompile(sizeof(a_u64Dst) == (sizeof(uint64_t))); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    903 #define IEM_MC_FETCH_MEM_U64_ALIGN_U128(a_u64Dst, a_iSeg, a_GCPtrMem) do{ CHK_GCPTR(a_GCPtrMem);            CHK_VAR(a_GCPtrMem);   CHK_VAR(a_u64Dst); AssertCompile(sizeof(a_u64Dst) == (sizeof(uint64_t))); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    904 #define IEM_MC_FETCH_MEM_I64(a_i64Dst, a_iSeg, a_GCPtrMem)           do { CHK_GCPTR(a_GCPtrMem);            CHK_VAR(a_GCPtrMem);   CHK_VAR(a_i64Dst); CHK_TYPE(int64_t, a_i64Dst);                           CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    905 
    906 #define IEM_MC_FETCH_MEM_U8_DISP( a_u8Dst,  a_iSeg, a_GCPtrMem, a_offDisp) do { CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u8Dst);  CHK_CONST(uint8_t, a_offDisp); CHK_TYPE(uint8_t, a_u8Dst); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    907 #define IEM_MC_FETCH_MEM_U16_DISP(a_u16Dst, a_iSeg, a_GCPtrMem, a_offDisp) do { CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u16Dst); CHK_CONST(uint8_t, a_offDisp); CHK_TYPE(uint16_t, a_u16Dst); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    908 #define IEM_MC_FETCH_MEM_U32_DISP(a_u32Dst, a_iSeg, a_GCPtrMem, a_offDisp) do { CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u32Dst); CHK_CONST(uint8_t, a_offDisp); CHK_TYPE(uint32_t, a_u32Dst); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    909 #define IEM_MC_FETCH_MEM_U64_DISP(a_u64Dst, a_iSeg, a_GCPtrMem, a_offDisp) do { CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u64Dst); CHK_CONST(uint8_t, a_offDisp); CHK_TYPE(uint64_t, a_u64Dst); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    910 
    911 #define IEM_MC_FETCH_MEM_I16_DISP(a_i16Dst, a_iSeg, a_GCPtrMem, a_offDisp) do { CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_i16Dst); CHK_CONST(uint8_t, a_offDisp); CHK_TYPE(int16_t, a_i16Dst); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    912 #define IEM_MC_FETCH_MEM_I32_DISP(a_i32Dst, a_iSeg, a_GCPtrMem, a_offDisp) do { CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_i32Dst); CHK_CONST(uint8_t, a_offDisp); CHK_TYPE(int32_t, a_i32Dst); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    913 
    914 #define IEM_MC_FETCH_MEM_U8_ZX_U16(a_u16Dst, a_iSeg, a_GCPtrMem)        do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u16Dst);  AssertCompile(sizeof(a_u16Dst) == (sizeof(uint16_t))); (void)fMcBegin; } while (0)
    915 #define IEM_MC_FETCH_MEM_U8_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem)        do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u32Dst);  AssertCompile(sizeof(a_u32Dst) == (sizeof(uint32_t))); (void)fMcBegin; } while (0)
    916 #define IEM_MC_FETCH_MEM_U8_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)        do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u64Dst);  AssertCompile(sizeof(a_u64Dst) == (sizeof(uint64_t))); (void)fMcBegin; } while (0)
    917 #define IEM_MC_FETCH_MEM_U16_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem)       do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u32Dst);  AssertCompile(sizeof(a_u32Dst) == (sizeof(uint32_t))); (void)fMcBegin; } while (0)
    918 #define IEM_MC_FETCH_MEM_U16_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)       do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u64Dst);  AssertCompile(sizeof(a_u64Dst) == (sizeof(uint64_t))); (void)fMcBegin; } while (0)
    919 #define IEM_MC_FETCH_MEM_U32_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)       do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u64Dst);  AssertCompile(sizeof(a_u64Dst) == (sizeof(uint64_t))); (void)fMcBegin; } while (0)
    920 #define IEM_MC_FETCH_MEM_U8_SX_U16(a_u16Dst, a_iSeg, a_GCPtrMem)        do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u16Dst);  AssertCompile(sizeof(a_u16Dst) == (sizeof(uint16_t))); (void)fMcBegin; } while (0)
    921 #define IEM_MC_FETCH_MEM_U8_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem)        do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u32Dst);  AssertCompile(sizeof(a_u32Dst) == (sizeof(uint32_t))); (void)fMcBegin; } while (0)
    922 #define IEM_MC_FETCH_MEM_U8_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)        do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u64Dst);  AssertCompile(sizeof(a_u64Dst) == (sizeof(uint64_t))); (void)fMcBegin; } while (0)
    923 #define IEM_MC_FETCH_MEM_U16_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem)       do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u32Dst);  AssertCompile(sizeof(a_u32Dst) == (sizeof(uint32_t))); (void)fMcBegin; } while (0)
    924 #define IEM_MC_FETCH_MEM_U16_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)       do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u64Dst);  AssertCompile(sizeof(a_u64Dst) == (sizeof(uint64_t))); (void)fMcBegin; } while (0)
    925 #define IEM_MC_FETCH_MEM_U32_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)       do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u64Dst);  AssertCompile(sizeof(a_u64Dst) == (sizeof(uint64_t))); (void)fMcBegin; } while (0)
    926 #define IEM_MC_FETCH_MEM_R32(a_r32Dst, a_iSeg, a_GCPtrMem)              do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_r32Dst);  CHK_TYPE(RTFLOAT32U, a_r32Dst);  (void)fMcBegin; } while (0)
    927 #define IEM_MC_FETCH_MEM_R64(a_r64Dst, a_iSeg, a_GCPtrMem)              do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_r64Dst);  CHK_TYPE(RTFLOAT64U, a_r64Dst);  (void)fMcBegin; } while (0)
    928 #define IEM_MC_FETCH_MEM_R80(a_r80Dst, a_iSeg, a_GCPtrMem)              do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_r80Dst);  CHK_TYPE(RTFLOAT80U, a_r80Dst);  (void)fMcBegin; } while (0)
    929 #define IEM_MC_FETCH_MEM_D80(a_d80Dst, a_iSeg, a_GCPtrMem)              do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_d80Dst);  CHK_TYPE(RTPBCD80U,  a_d80Dst);  (void)fMcBegin; } while (0)
    930 #define IEM_MC_FETCH_MEM_U128(a_u128Dst, a_iSeg, a_GCPtrMem)            do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u128Dst); CHK_TYPE(RTUINT128U, a_u128Dst); (void)fMcBegin; } while (0)
    931 #define IEM_MC_FETCH_MEM_U128_NO_AC(a_u128Dst, a_iSeg, a_GCPtrMem)      do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u128Dst); CHK_TYPE(RTUINT128U, a_u128Dst); (void)fMcBegin; } while (0)
    932 #define IEM_MC_FETCH_MEM_U128_ALIGN_SSE(a_u128Dst, a_iSeg, a_GCPtrMem)  do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u128Dst); CHK_TYPE(RTUINT128U, a_u128Dst); (void)fMcBegin; } while (0)
    933 #define IEM_MC_FETCH_MEM_XMM(a_XmmDst, a_iSeg, a_GCPtrMem)              do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_XmmDst);  CHK_TYPE(X86XMMREG,  a_XmmDst);  (void)fMcBegin; } while (0)
    934 #define IEM_MC_FETCH_MEM_XMM_NO_AC(a_XmmDst, a_iSeg, a_GCPtrMem)        do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_XmmDst);  CHK_TYPE(X86XMMREG,  a_XmmDst);  (void)fMcBegin; } while (0)
    935 #define IEM_MC_FETCH_MEM_XMM_ALIGN_SSE(a_XmmDst, a_iSeg, a_GCPtrMem)    do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_XmmDst);  CHK_TYPE(X86XMMREG,  a_XmmDst);  (void)fMcBegin; } while (0)
    936 #define IEM_MC_FETCH_MEM_U256(a_u256Dst, a_iSeg, a_GCPtrMem)            do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u256Dst); CHK_TYPE(RTUINT256U, a_u256Dst); (void)fMcBegin; } while (0)
    937 #define IEM_MC_FETCH_MEM_U256_NO_AC(a_u256Dst, a_iSeg, a_GCPtrMem)      do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u256Dst); CHK_TYPE(RTUINT256U, a_u256Dst); (void)fMcBegin; } while (0)
    938 #define IEM_MC_FETCH_MEM_U256_ALIGN_AVX(a_u256Dst, a_iSeg, a_GCPtrMem)  do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u256Dst); CHK_TYPE(RTUINT256U, a_u256Dst); (void)fMcBegin; } while (0)
    939 #define IEM_MC_FETCH_MEM_YMM_NO_AC(a_YmmDst, a_iSeg, a_GCPtrMem)        do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_YmmDst);  CHK_TYPE(X86YMMREG,  a_YmmDst);  (void)fMcBegin; } while (0)
    940 
    941 # define IEM_MC_FETCH_MEM_U128_AND_XREG_U128(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2)         \
     895#define IEM_MC_FETCH_MEM_SEG_U8(a_u8Dst, a_iSeg, a_GCPtrMem)             do { CHK_GCPTR(a_GCPtrMem);            CHK_VAR(a_GCPtrMem);   CHK_VAR(a_u8Dst);  AssertCompile(sizeof(a_u8Dst)  == (sizeof(uint8_t)));  CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     896#define IEM_MC_FETCH_MEM16_SEG_U8(a_u8Dst, a_iSeg, a_GCPtrMem16)         do { CHK_TYPE(uint16_t, a_GCPtrMem16); CHK_VAR(a_GCPtrMem16); CHK_VAR(a_u8Dst);  AssertCompile(sizeof(a_u8Dst)  == (sizeof(uint8_t)));  CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     897#define IEM_MC_FETCH_MEM32_SEG_U8(a_u8Dst, a_iSeg, a_GCPtrMem32)         do { CHK_TYPE(uint32_t, a_GCPtrMem32); CHK_VAR(a_GCPtrMem32); CHK_VAR(a_u8Dst);  AssertCompile(sizeof(a_u8Dst)  == (sizeof(uint8_t)));  CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     898#define IEM_MC_FETCH_MEM_SEG_U16(a_u16Dst, a_iSeg, a_GCPtrMem)           do { CHK_GCPTR(a_GCPtrMem);            CHK_VAR(a_GCPtrMem);   CHK_VAR(a_u16Dst); AssertCompile(sizeof(a_u16Dst) == (sizeof(uint16_t))); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     899#define IEM_MC_FETCH_MEM_SEG_I16(a_i16Dst, a_iSeg, a_GCPtrMem)           do { CHK_GCPTR(a_GCPtrMem);            CHK_VAR(a_GCPtrMem);   CHK_VAR(a_i16Dst); CHK_TYPE(int16_t, a_i16Dst);                           CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     900#define IEM_MC_FETCH_MEM_SEG_U32(a_u32Dst, a_iSeg, a_GCPtrMem)           do { CHK_GCPTR(a_GCPtrMem);            CHK_VAR(a_GCPtrMem);   CHK_VAR(a_u32Dst); AssertCompile(sizeof(a_u32Dst) == (sizeof(uint32_t))); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     901#define IEM_MC_FETCH_MEM_SEG_I32(a_i32Dst, a_iSeg, a_GCPtrMem)           do { CHK_GCPTR(a_GCPtrMem);            CHK_VAR(a_GCPtrMem);   CHK_VAR(a_i32Dst); CHK_TYPE(int32_t, a_i32Dst);                           CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     902#define IEM_MC_FETCH_MEM_SEG_U64(a_u64Dst, a_iSeg, a_GCPtrMem)           do { CHK_GCPTR(a_GCPtrMem);            CHK_VAR(a_GCPtrMem);   CHK_VAR(a_u64Dst); AssertCompile(sizeof(a_u64Dst) == (sizeof(uint64_t))); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     903#define IEM_MC_FETCH_MEM_SEG_U64_ALIGN_U128(a_u64Dst, a_iSeg, a_GCPtrMem) do{ CHK_GCPTR(a_GCPtrMem);            CHK_VAR(a_GCPtrMem);   CHK_VAR(a_u64Dst); AssertCompile(sizeof(a_u64Dst) == (sizeof(uint64_t))); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     904#define IEM_MC_FETCH_MEM_SEG_I64(a_i64Dst, a_iSeg, a_GCPtrMem)           do { CHK_GCPTR(a_GCPtrMem);            CHK_VAR(a_GCPtrMem);   CHK_VAR(a_i64Dst); CHK_TYPE(int64_t, a_i64Dst);                           CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     905
     906#define IEM_MC_FETCH_MEM_SEG_U8_DISP( a_u8Dst,  a_iSeg, a_GCPtrMem, a_offDisp) do { CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u8Dst);  CHK_CONST(uint8_t, a_offDisp); CHK_TYPE(uint8_t, a_u8Dst); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     907#define IEM_MC_FETCH_MEM_SEG_U16_DISP(a_u16Dst, a_iSeg, a_GCPtrMem, a_offDisp) do { CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u16Dst); CHK_CONST(uint8_t, a_offDisp); CHK_TYPE(uint16_t, a_u16Dst); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     908#define IEM_MC_FETCH_MEM_SEG_U32_DISP(a_u32Dst, a_iSeg, a_GCPtrMem, a_offDisp) do { CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u32Dst); CHK_CONST(uint8_t, a_offDisp); CHK_TYPE(uint32_t, a_u32Dst); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     909#define IEM_MC_FETCH_MEM_SEG_U64_DISP(a_u64Dst, a_iSeg, a_GCPtrMem, a_offDisp) do { CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u64Dst); CHK_CONST(uint8_t, a_offDisp); CHK_TYPE(uint64_t, a_u64Dst); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     910
     911#define IEM_MC_FETCH_MEM_SEG_I16_DISP(a_i16Dst, a_iSeg, a_GCPtrMem, a_offDisp) do { CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_i16Dst); CHK_CONST(uint8_t, a_offDisp); CHK_TYPE(int16_t, a_i16Dst); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     912#define IEM_MC_FETCH_MEM_SEG_I32_DISP(a_i32Dst, a_iSeg, a_GCPtrMem, a_offDisp) do { CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_i32Dst); CHK_CONST(uint8_t, a_offDisp); CHK_TYPE(int32_t, a_i32Dst); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     913
     914#define IEM_MC_FETCH_MEM_SEG_U8_ZX_U16(a_u16Dst, a_iSeg, a_GCPtrMem)        do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u16Dst);  AssertCompile(sizeof(a_u16Dst) == (sizeof(uint16_t))); (void)fMcBegin; } while (0)
     915#define IEM_MC_FETCH_MEM_SEG_U8_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem)        do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u32Dst);  AssertCompile(sizeof(a_u32Dst) == (sizeof(uint32_t))); (void)fMcBegin; } while (0)
     916#define IEM_MC_FETCH_MEM_SEG_U8_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)        do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u64Dst);  AssertCompile(sizeof(a_u64Dst) == (sizeof(uint64_t))); (void)fMcBegin; } while (0)
     917#define IEM_MC_FETCH_MEM_SEG_U16_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem)       do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u32Dst);  AssertCompile(sizeof(a_u32Dst) == (sizeof(uint32_t))); (void)fMcBegin; } while (0)
     918#define IEM_MC_FETCH_MEM_SEG_U16_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)       do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u64Dst);  AssertCompile(sizeof(a_u64Dst) == (sizeof(uint64_t))); (void)fMcBegin; } while (0)
     919#define IEM_MC_FETCH_MEM_SEG_U32_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)       do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u64Dst);  AssertCompile(sizeof(a_u64Dst) == (sizeof(uint64_t))); (void)fMcBegin; } while (0)
     920#define IEM_MC_FETCH_MEM_SEG_U8_SX_U16(a_u16Dst, a_iSeg, a_GCPtrMem)        do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u16Dst);  AssertCompile(sizeof(a_u16Dst) == (sizeof(uint16_t))); (void)fMcBegin; } while (0)
     921#define IEM_MC_FETCH_MEM_SEG_U8_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem)        do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u32Dst);  AssertCompile(sizeof(a_u32Dst) == (sizeof(uint32_t))); (void)fMcBegin; } while (0)
     922#define IEM_MC_FETCH_MEM_SEG_U8_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)        do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u64Dst);  AssertCompile(sizeof(a_u64Dst) == (sizeof(uint64_t))); (void)fMcBegin; } while (0)
     923#define IEM_MC_FETCH_MEM_SEG_U16_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem)       do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u32Dst);  AssertCompile(sizeof(a_u32Dst) == (sizeof(uint32_t))); (void)fMcBegin; } while (0)
     924#define IEM_MC_FETCH_MEM_SEG_U16_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)       do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u64Dst);  AssertCompile(sizeof(a_u64Dst) == (sizeof(uint64_t))); (void)fMcBegin; } while (0)
     925#define IEM_MC_FETCH_MEM_SEG_U32_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem)       do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u64Dst);  AssertCompile(sizeof(a_u64Dst) == (sizeof(uint64_t))); (void)fMcBegin; } while (0)
     926#define IEM_MC_FETCH_MEM_SEG_R32(a_r32Dst, a_iSeg, a_GCPtrMem)              do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_r32Dst);  CHK_TYPE(RTFLOAT32U, a_r32Dst);  (void)fMcBegin; } while (0)
     927#define IEM_MC_FETCH_MEM_SEG_R64(a_r64Dst, a_iSeg, a_GCPtrMem)              do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_r64Dst);  CHK_TYPE(RTFLOAT64U, a_r64Dst);  (void)fMcBegin; } while (0)
     928#define IEM_MC_FETCH_MEM_SEG_R80(a_r80Dst, a_iSeg, a_GCPtrMem)              do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_r80Dst);  CHK_TYPE(RTFLOAT80U, a_r80Dst);  (void)fMcBegin; } while (0)
     929#define IEM_MC_FETCH_MEM_SEG_D80(a_d80Dst, a_iSeg, a_GCPtrMem)              do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_d80Dst);  CHK_TYPE(RTPBCD80U,  a_d80Dst);  (void)fMcBegin; } while (0)
     930#define IEM_MC_FETCH_MEM_SEG_U128(a_u128Dst, a_iSeg, a_GCPtrMem)            do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u128Dst); CHK_TYPE(RTUINT128U, a_u128Dst); (void)fMcBegin; } while (0)
     931#define IEM_MC_FETCH_MEM_SEG_U128_NO_AC(a_u128Dst, a_iSeg, a_GCPtrMem)      do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u128Dst); CHK_TYPE(RTUINT128U, a_u128Dst); (void)fMcBegin; } while (0)
     932#define IEM_MC_FETCH_MEM_SEG_U128_ALIGN_SSE(a_u128Dst, a_iSeg, a_GCPtrMem)  do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u128Dst); CHK_TYPE(RTUINT128U, a_u128Dst); (void)fMcBegin; } while (0)
     933#define IEM_MC_FETCH_MEM_SEG_XMM(a_XmmDst, a_iSeg, a_GCPtrMem)              do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_XmmDst);  CHK_TYPE(X86XMMREG,  a_XmmDst);  (void)fMcBegin; } while (0)
     934#define IEM_MC_FETCH_MEM_SEG_XMM_NO_AC(a_XmmDst, a_iSeg, a_GCPtrMem)        do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_XmmDst);  CHK_TYPE(X86XMMREG,  a_XmmDst);  (void)fMcBegin; } while (0)
     935#define IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE(a_XmmDst, a_iSeg, a_GCPtrMem)    do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_XmmDst);  CHK_TYPE(X86XMMREG,  a_XmmDst);  (void)fMcBegin; } while (0)
     936#define IEM_MC_FETCH_MEM_SEG_U256(a_u256Dst, a_iSeg, a_GCPtrMem)            do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u256Dst); CHK_TYPE(RTUINT256U, a_u256Dst); (void)fMcBegin; } while (0)
     937#define IEM_MC_FETCH_MEM_SEG_U256_NO_AC(a_u256Dst, a_iSeg, a_GCPtrMem)      do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u256Dst); CHK_TYPE(RTUINT256U, a_u256Dst); (void)fMcBegin; } while (0)
     938#define IEM_MC_FETCH_MEM_SEG_U256_ALIGN_AVX(a_u256Dst, a_iSeg, a_GCPtrMem)  do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_u256Dst); CHK_TYPE(RTUINT256U, a_u256Dst); (void)fMcBegin; } while (0)
     939#define IEM_MC_FETCH_MEM_SEG_YMM_NO_AC(a_YmmDst, a_iSeg, a_GCPtrMem)        do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_VAR(a_YmmDst);  CHK_TYPE(X86YMMREG,  a_YmmDst);  (void)fMcBegin; } while (0)
     940
     941# define IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2)         \
    942942    do { CHK_XREG_IDX(a_iXReg1); (void)fSseRead; CHK_SEG_IDX(a_iSeg2); CHK_GCPTR(a_GCPtrMem2); CHK_VAR(a_GCPtrMem2); CHK_VAR(a_Dst); CHK_TYPE(IEMPCMPISTRXSRC, a_Dst); (void)fMcBegin; } while (0)
    943 # define IEM_MC_FETCH_MEM_XMM_ALIGN_SSE_AND_XREG_XMM(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) \
     943# define IEM_MC_FETCH_MEM_SEG_XMM_ALIGN_SSE_AND_XREG_XMM(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) \
    944944    do { CHK_XREG_IDX(a_iXReg1); (void)fSseRead; CHK_SEG_IDX(a_iSeg2); CHK_GCPTR(a_GCPtrMem2); CHK_VAR(a_GCPtrMem2); CHK_VAR(a_Dst); CHK_TYPE(IEMMEDIAF2XMMSRC, a_Dst); (void)fMcBegin; } while (0)
    945 # define IEM_MC_FETCH_MEM_XMM_NO_AC_AND_XREG_XMM(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) \
     945# define IEM_MC_FETCH_MEM_SEG_XMM_NO_AC_AND_XREG_XMM(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) \
    946946    do { CHK_XREG_IDX(a_iXReg1); (void)fSseRead; CHK_SEG_IDX(a_iSeg2); CHK_GCPTR(a_GCPtrMem2); CHK_VAR(a_GCPtrMem2); CHK_VAR(a_Dst); CHK_TYPE(IEMMEDIAF2XMMSRC, a_Dst); (void)fMcBegin; } while (0)
    947 # define IEM_MC_FETCH_MEM_XMM_U32_AND_XREG_XMM(a_Dst, a_iXReg1, a_iDWord2, a_iSeg2, a_GCPtrMem2) \
     947# define IEM_MC_FETCH_MEM_SEG_XMM_U32_AND_XREG_XMM(a_Dst, a_iXReg1, a_iDWord2, a_iSeg2, a_GCPtrMem2) \
    948948    do { CHK_XREG_IDX(a_iXReg1); (void)fSseRead; CHK_SEG_IDX(a_iSeg2); CHK_GCPTR(a_GCPtrMem2); CHK_VAR(a_GCPtrMem2); CHK_VAR(a_Dst); CHK_TYPE(IEMMEDIAF2XMMSRC, a_Dst); AssertCompile((a_iDWord2) < RT_ELEMENTS((a_Dst).uSrc2.uXmm.au32)); (void)fMcBegin; } while (0)
    949 # define IEM_MC_FETCH_MEM_XMM_U64_AND_XREG_XMM(a_Dst, a_iXReg1, a_iQWord2, a_iSeg2, a_GCPtrMem2) \
     949# define IEM_MC_FETCH_MEM_SEG_XMM_U64_AND_XREG_XMM(a_Dst, a_iXReg1, a_iQWord2, a_iSeg2, a_GCPtrMem2) \
    950950    do { CHK_XREG_IDX(a_iXReg1); (void)fSseRead; CHK_SEG_IDX(a_iSeg2); CHK_GCPTR(a_GCPtrMem2); CHK_VAR(a_GCPtrMem2); CHK_VAR(a_Dst); CHK_TYPE(IEMMEDIAF2XMMSRC, a_Dst); AssertCompile((a_iQWord2) < RT_ELEMENTS((a_Dst).uSrc2.uXmm.au64)); (void)fMcBegin; } while (0)
    951 # define IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_RAX_RDX_U64(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) \
     951# define IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_RAX_RDX_U64(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) \
    952952    do { CHK_XREG_IDX(a_iXReg1); (void)fSseRead; CHK_SEG_IDX(a_iSeg2); CHK_GCPTR(a_GCPtrMem2); CHK_VAR(a_GCPtrMem2); CHK_VAR(a_Dst); CHK_TYPE(IEMPCMPESTRXSRC, a_Dst); (void)fMcBegin; } while (0)
    953 # define IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) \
     953# define IEM_MC_FETCH_MEM_SEG_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) \
    954954    do { CHK_XREG_IDX(a_iXReg1); (void)fSseRead; CHK_SEG_IDX(a_iSeg2); CHK_GCPTR(a_GCPtrMem2); CHK_VAR(a_GCPtrMem2); CHK_VAR(a_Dst); CHK_TYPE(IEMPCMPESTRXSRC, a_Dst); (void)fMcBegin; } while (0)
    955 # define IEM_MC_FETCH_MEM_YMM_NO_AC_AND_YREG_YMM(a_uYmmDst, a_iYRegSrc1, a_iSeg2, a_GCPtrMem2) \
     955# define IEM_MC_FETCH_MEM_SEG_YMM_NO_AC_AND_YREG_YMM(a_uYmmDst, a_iYRegSrc1, a_iSeg2, a_GCPtrMem2) \
    956956    do { CHK_XREG_IDX(a_iYRegSrc1); (void)fAvxRead; CHK_SEG_IDX(a_iSeg2); CHK_GCPTR(a_GCPtrMem2); CHK_VAR(a_GCPtrMem2); CHK_VAR(a_uYmmDst); CHK_TYPE(IEMMEDIAF2YMMSRC, a_uYmmDst); (void)fMcBegin; } while (0)
    957957
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette