VirtualBox

Changeset 102425 in vbox


Ignore:
Timestamp:
Dec 1, 2023 11:00:26 PM (16 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
160568
Message:

VMM/IEM: Continue refactoring IEM_MC_MEM_MAP into type specific MCs using bUnmapInfo. bugref:10371

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstOneByte.cpp.h

    r102424 r102425  
    1153011530{
    1153111531    IEMOP_MNEMONIC(fisttp_m64i, "fisttp m64i");
    11532     IEM_MC_BEGIN(3, 2, 0, 0);
     11532    IEM_MC_BEGIN(3, 3, 0, 0);
    1153311533    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
    11534     IEM_MC_LOCAL(uint16_t,              u16Fsw);
    11535     IEM_MC_ARG_LOCAL_REF(uint16_t *,    pu16Fsw,    u16Fsw, 0);
    11536     IEM_MC_ARG(int64_t *,               pi64Dst,            1);
    11537     IEM_MC_ARG(PCRTFLOAT80U,            pr80Value,          2);
    11538 
    1153911534    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     11535
    1154011536    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1154111537    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1154211538    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    11543 
    11544     IEM_MC_MEM_MAP(pi64Dst, IEM_ACCESS_DATA_W, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 1 /*arg*/);
    1154511539    IEM_MC_PREPARE_FPU_USAGE();
     11540
     11541    IEM_MC_LOCAL(uint8_t,               bUnmapInfo);
     11542    IEM_MC_ARG(int64_t *,               pi64Dst,            1);
     11543    IEM_MC_MEM_MAP_I64_WO(pi64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     11544
     11545    IEM_MC_ARG(PCRTFLOAT80U,            pr80Value,          2);
    1154611546    IEM_MC_IF_FPUREG_NOT_EMPTY_REF_R80(pr80Value, 0) {
     11547        IEM_MC_LOCAL(uint16_t,          u16Fsw);
     11548        IEM_MC_ARG_LOCAL_REF(uint16_t *,pu16Fsw,    u16Fsw, 0);
    1154711549        IEM_MC_CALL_FPU_AIMPL_3(iemAImpl_fistt_r80_to_i64, pu16Fsw, pi64Dst, pr80Value);
    11548         IEM_MC_MEM_COMMIT_AND_UNMAP_FOR_FPU_STORE(pi64Dst, IEM_ACCESS_DATA_W, u16Fsw);
     11550        IEM_MC_MEM_COMMIT_AND_UNMAP_FOR_FPU_STORE_WO(pi64Dst, bUnmapInfo, u16Fsw);
    1154911551        IEM_MC_UPDATE_FSW_WITH_MEM_OP_THEN_POP(u16Fsw, pVCpu->iem.s.iEffSeg, GCPtrEffDst, pVCpu->iem.s.uFpuOpcode);
    1155011552    } IEM_MC_ELSE() {
    1155111553        IEM_MC_IF_FCW_IM() {
    1155211554            IEM_MC_STORE_MEM_I64_CONST_BY_REF(pi64Dst, INT64_MIN /* (integer indefinite) */);
    11553             IEM_MC_MEM_COMMIT_AND_UNMAP(pi64Dst, IEM_ACCESS_DATA_W);
     11555            IEM_MC_MEM_COMMIT_AND_UNMAP_WO(pi64Dst, bUnmapInfo);
     11556        } IEM_MC_ELSE() {
     11557            IEM_MC_MEM_ROLLBACK_AND_UNMAP_WO(pi64Dst, bUnmapInfo);
    1155411558        } IEM_MC_ENDIF();
    1155511559        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffDst, pVCpu->iem.s.uFpuOpcode);
     
    1156511569{
    1156611570    IEMOP_MNEMONIC(fst_m64r, "fst m64r");
    11567     IEM_MC_BEGIN(3, 2, 0, 0);
     11571    IEM_MC_BEGIN(3, 3, 0, 0);
    1156811572    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
    11569     IEM_MC_LOCAL(uint16_t,              u16Fsw);
    11570     IEM_MC_ARG_LOCAL_REF(uint16_t *,    pu16Fsw,    u16Fsw, 0);
    11571     IEM_MC_ARG(PRTFLOAT64U,             pr64Dst,            1);
    11572     IEM_MC_ARG(PCRTFLOAT80U,            pr80Value,          2);
    11573 
    1157411573    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     11574
    1157511575    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1157611576    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1157711577    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    11578 
    11579     IEM_MC_MEM_MAP(pr64Dst, IEM_ACCESS_DATA_W, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 1 /*arg*/);
    1158011578    IEM_MC_PREPARE_FPU_USAGE();
     11579
     11580    IEM_MC_LOCAL(uint8_t,               bUnmapInfo);
     11581    IEM_MC_ARG(PRTFLOAT64U,             pr64Dst,            1);
     11582    IEM_MC_MEM_MAP_R64_WO(pr64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     11583
     11584    IEM_MC_ARG(PCRTFLOAT80U,            pr80Value,          2);
    1158111585    IEM_MC_IF_FPUREG_NOT_EMPTY_REF_R80(pr80Value, 0) {
     11586        IEM_MC_LOCAL(uint16_t,          u16Fsw);
     11587        IEM_MC_ARG_LOCAL_REF(uint16_t *,pu16Fsw,    u16Fsw, 0);
    1158211588        IEM_MC_CALL_FPU_AIMPL_3(iemAImpl_fst_r80_to_r64, pu16Fsw, pr64Dst, pr80Value);
    11583         IEM_MC_MEM_COMMIT_AND_UNMAP_FOR_FPU_STORE(pr64Dst, IEM_ACCESS_DATA_W, u16Fsw);
     11589        IEM_MC_MEM_COMMIT_AND_UNMAP_FOR_FPU_STORE_WO(pr64Dst, bUnmapInfo, u16Fsw);
    1158411590        IEM_MC_UPDATE_FSW_WITH_MEM_OP(u16Fsw, pVCpu->iem.s.iEffSeg, GCPtrEffDst, pVCpu->iem.s.uFpuOpcode);
    1158511591    } IEM_MC_ELSE() {
    1158611592        IEM_MC_IF_FCW_IM() {
    1158711593            IEM_MC_STORE_MEM_NEG_QNAN_R64_BY_REF(pr64Dst);
    11588             IEM_MC_MEM_COMMIT_AND_UNMAP(pr64Dst, IEM_ACCESS_DATA_W);
     11594            IEM_MC_MEM_COMMIT_AND_UNMAP_WO(pr64Dst, bUnmapInfo);
     11595        } IEM_MC_ELSE() {
     11596            IEM_MC_MEM_ROLLBACK_AND_UNMAP_WO(pr64Dst, bUnmapInfo);
    1158911597        } IEM_MC_ENDIF();
    1159011598        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffDst, pVCpu->iem.s.uFpuOpcode);
     
    1160211610{
    1160311611    IEMOP_MNEMONIC(fstp_m64r, "fstp m64r");
    11604     IEM_MC_BEGIN(3, 2, 0, 0);
     11612    IEM_MC_BEGIN(3, 3, 0, 0);
    1160511613    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
    11606     IEM_MC_LOCAL(uint16_t,              u16Fsw);
    11607     IEM_MC_ARG_LOCAL_REF(uint16_t *,    pu16Fsw,    u16Fsw, 0);
    11608     IEM_MC_ARG(PRTFLOAT64U,             pr64Dst,            1);
    11609     IEM_MC_ARG(PCRTFLOAT80U,            pr80Value,          2);
    11610 
    1161111614    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     11615
    1161211616    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1161311617    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    1161411618    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    11615 
    11616     IEM_MC_MEM_MAP(pr64Dst, IEM_ACCESS_DATA_W, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 1 /*arg*/);
    1161711619    IEM_MC_PREPARE_FPU_USAGE();
     11620
     11621    IEM_MC_LOCAL(uint8_t,               bUnmapInfo);
     11622    IEM_MC_ARG(PRTFLOAT64U,             pr64Dst,            1);
     11623    IEM_MC_MEM_MAP_R64_WO(pr64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
     11624
     11625    IEM_MC_ARG(PCRTFLOAT80U,            pr80Value,          2);
    1161811626    IEM_MC_IF_FPUREG_NOT_EMPTY_REF_R80(pr80Value, 0) {
     11627        IEM_MC_LOCAL(uint16_t,          u16Fsw);
     11628        IEM_MC_ARG_LOCAL_REF(uint16_t *,pu16Fsw,    u16Fsw, 0);
    1161911629        IEM_MC_CALL_FPU_AIMPL_3(iemAImpl_fst_r80_to_r64, pu16Fsw, pr64Dst, pr80Value);
    11620         IEM_MC_MEM_COMMIT_AND_UNMAP_FOR_FPU_STORE(pr64Dst, IEM_ACCESS_DATA_W, u16Fsw);
     11630        IEM_MC_MEM_COMMIT_AND_UNMAP_FOR_FPU_STORE_WO(pr64Dst, bUnmapInfo, u16Fsw);
    1162111631        IEM_MC_UPDATE_FSW_WITH_MEM_OP_THEN_POP(u16Fsw, pVCpu->iem.s.iEffSeg, GCPtrEffDst, pVCpu->iem.s.uFpuOpcode);
    1162211632    } IEM_MC_ELSE() {
    1162311633        IEM_MC_IF_FCW_IM() {
    1162411634            IEM_MC_STORE_MEM_NEG_QNAN_R64_BY_REF(pr64Dst);
    11625             IEM_MC_MEM_COMMIT_AND_UNMAP(pr64Dst, IEM_ACCESS_DATA_W);
     11635            IEM_MC_MEM_COMMIT_AND_UNMAP_WO(pr64Dst, bUnmapInfo);
     11636        } IEM_MC_ELSE() {
     11637            IEM_MC_MEM_ROLLBACK_AND_UNMAP_WO(pr64Dst, bUnmapInfo);
    1162611638        } IEM_MC_ENDIF();
    1162711639        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffDst, pVCpu->iem.s.uFpuOpcode);
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstPython.py

    r102424 r102425  
    30293029    'IEM_MC_MEM_MAP_EX':                                         (McBlock.parseMcGeneric,           True,  False, ),
    30303030    'IEM_MC_MEM_MAP_I32_WO':                                     (McBlock.parseMcGeneric,           True,  False, ),
     3031    'IEM_MC_MEM_MAP_I64_WO':                                     (McBlock.parseMcGeneric,           True,  False, ),
    30313032    'IEM_MC_MEM_MAP_R32_WO':                                     (McBlock.parseMcGeneric,           True,  False, ),
     3033    'IEM_MC_MEM_MAP_R64_WO':                                     (McBlock.parseMcGeneric,           True,  False, ),
     3034    'IEM_MC_MEM_MAP_R80_WO':                                     (McBlock.parseMcGeneric,           True,  False, ),
    30323035    'IEM_MC_MEM_MAP_U8_RW':                                      (McBlock.parseMcGeneric,           True,  False, ),
    30333036    'IEM_MC_MEM_MAP_U8_RO':                                      (McBlock.parseMcGeneric,           True,  False, ),
     
    30423045    'IEM_MC_MEM_MAP_U64_RO':                                     (McBlock.parseMcGeneric,           True,  False, ),
    30433046    'IEM_MC_MEM_MAP_U64_WO':                                     (McBlock.parseMcGeneric,           True,  False, ),
    3044     'IEM_MC_MEM_MAP_R80_WO':                                     (McBlock.parseMcGeneric,           True,  False, ),
    30453047    'IEM_MC_MEM_ROLLBACK_AND_UNMAP_WO':                          (McBlock.parseMcGeneric,           True,  False, ),
    30463048    'IEM_MC_MERGE_YREG_U32_U96_ZX_VLMAX':                        (McBlock.parseMcGeneric,           True,  False, ),
  • trunk/src/VBox/VMM/VMMAll/IEMAllN8vePython.py

    r102424 r102425  
    146146    'IEM_MC_MEM_FLAT_MAP_EX':                                    (None, True,  False, ),
    147147    'IEM_MC_MEM_FLAT_MAP':                                       (None, True,  False, ),
     148    'IEM_MC_MEM_FLAT_MAP_I32_WO':                                (None, True,  False, ),
     149    'IEM_MC_MEM_FLAT_MAP_I64_WO':                                (None, True,  False, ),
     150    'IEM_MC_MEM_FLAT_MAP_R32_WO':                                (None, True,  False, ),
     151    'IEM_MC_MEM_FLAT_MAP_R64_WO':                                (None, True,  False, ),
     152    'IEM_MC_MEM_FLAT_MAP_R80_WO':                                (None, True,  False, ),
    148153    'IEM_MC_MEM_FLAT_MAP_U16_RO':                                (None, True,  False, ),
    149154    'IEM_MC_MEM_FLAT_MAP_U16_RW':                                (None, True,  False, ),
    150155    'IEM_MC_MEM_FLAT_MAP_U32_RO':                                (None, True,  False, ),
    151156    'IEM_MC_MEM_FLAT_MAP_U32_RW':                                (None, True,  False, ),
    152     'IEM_MC_MEM_FLAT_MAP_I32_WO':                                (None, True,  False, ),
    153     'IEM_MC_MEM_FLAT_MAP_R32_WO':                                (None, True,  False, ),
    154157    'IEM_MC_MEM_FLAT_MAP_U64_RO':                                (None, True,  False, ),
    155158    'IEM_MC_MEM_FLAT_MAP_U64_RW':                                (None, True,  False, ),
    156159    'IEM_MC_MEM_FLAT_MAP_U8_RO':                                 (None, True,  False, ),
    157160    'IEM_MC_MEM_FLAT_MAP_U8_RW':                                 (None, True,  False, ),
    158     'IEM_MC_MEM_FLAT_MAP_R80_WO':                                (None, True,  False, ),
    159161    'IEM_MC_STORE_MEM_FLAT_U128_ALIGN_SSE':                      (None, True,  False, ),
    160162    'IEM_MC_STORE_MEM_FLAT_U128':                                (None, True,  False, ),
  • trunk/src/VBox/VMM/VMMAll/IEMAllThrdPython.py

    r102424 r102425  
    705705        'IEM_MC_STORE_MEM_U256_ALIGN_AVX':        (  0, 'IEM_MC_STORE_MEM_FLAT_U256_ALIGN_AVX' ),
    706706        'IEM_MC_MEM_MAP':                         (  2, 'IEM_MC_MEM_FLAT_MAP' ),
     707        'IEM_MC_MEM_MAP_I32_WO':                  (  2, 'IEM_MC_MEM_FLAT_MAP_I32_WO' ),
     708        'IEM_MC_MEM_MAP_I64_WO':                  (  2, 'IEM_MC_MEM_FLAT_MAP_I64_WO' ),
     709        'IEM_MC_MEM_MAP_R32_WO':                  (  2, 'IEM_MC_MEM_FLAT_MAP_R32_WO' ),
     710        'IEM_MC_MEM_MAP_R64_WO':                  (  2, 'IEM_MC_MEM_FLAT_MAP_R64_WO' ),
     711        'IEM_MC_MEM_MAP_R80_WO':                  (  2, 'IEM_MC_MEM_FLAT_MAP_R80_WO' ),
    707712        'IEM_MC_MEM_MAP_U8_RW':                   (  2, 'IEM_MC_MEM_FLAT_MAP_U8_RW' ),
    708713        'IEM_MC_MEM_MAP_U8_RO':                   (  2, 'IEM_MC_MEM_FLAT_MAP_U8_RO' ),
     
    714719        'IEM_MC_MEM_MAP_U32_RO':                  (  2, 'IEM_MC_MEM_FLAT_MAP_U32_RO' ),
    715720        'IEM_MC_MEM_MAP_U32_WO':                  (  2, 'IEM_MC_MEM_FLAT_MAP_U32_WO' ),
    716         'IEM_MC_MEM_MAP_I32_WO':                  (  2, 'IEM_MC_MEM_FLAT_MAP_I32_WO' ),
    717         'IEM_MC_MEM_MAP_R32_WO':                  (  2, 'IEM_MC_MEM_FLAT_MAP_R32_WO' ),
    718721        'IEM_MC_MEM_MAP_U64_RW':                  (  2, 'IEM_MC_MEM_FLAT_MAP_U64_RW' ),
    719722        'IEM_MC_MEM_MAP_U64_RO':                  (  2, 'IEM_MC_MEM_FLAT_MAP_U64_RO' ),
    720723        'IEM_MC_MEM_MAP_U64_WO':                  (  2, 'IEM_MC_MEM_FLAT_MAP_U64_WO' ),
    721         'IEM_MC_MEM_MAP_R80_WO':                  (  2, 'IEM_MC_MEM_FLAT_MAP_R80_WO' ),
    722724        'IEM_MC_MEM_MAP_EX':                      (  3, 'IEM_MC_MEM_FLAT_MAP_EX' ),
    723725    };
  • trunk/src/VBox/VMM/include/IEMMc.h

    r102424 r102425  
    20952095# define IEM_MC_MEM_FLAT_MAP_U64_RO(a_pu64Mem, a_bUnmapInfo, a_GCPtrMem) \
    20962096    (a_pu64Mem) = iemMemFlatMapDataU64RoJmp(pVCpu, &(a_bUnmapInfo), (a_GCPtrMem))
     2097#endif
     2098
     2099/** int64_t alias. */
     2100#ifndef IEM_WITH_SETJMP
     2101# define IEM_MC_MEM_MAP_I64_WO(a_pi64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \
     2102         IEM_MC_MEM_MAP_U64_WO(a_pi64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem)
     2103#else
     2104# define IEM_MC_MEM_MAP_I64_WO(a_pi64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \
     2105    (a_pi64Mem) = (int64_t *)iemMemMapDataU64WoJmp(pVCpu, &(a_bUnmapInfo), (a_iSeg), (a_GCPtrMem))
     2106#endif
     2107
     2108/** Flat int64_t alias. */
     2109#ifndef IEM_WITH_SETJMP
     2110# define IEM_MC_MEM_FLAT_MAP_I64_WO(a_pi64Mem, a_bUnmapInfo, a_GCPtrMem) \
     2111         IEM_MC_MEM_FLAT_MAP_U64_WO(a_pi64Mem, a_bUnmapInfo, a_GCPtrMem)
     2112#else
     2113# define IEM_MC_MEM_FLAT_MAP_I64_WO(a_pi64Mem, a_bUnmapInfo, a_GCPtrMem) \
     2114    (a_pi64Mem) = (int64_t *)iemMemFlatMapDataU64WoJmp(pVCpu, &(a_bUnmapInfo), (a_GCPtrMem))
     2115#endif
     2116
     2117/** RTFLOAT64U alias. */
     2118#ifndef IEM_WITH_SETJMP
     2119# define IEM_MC_MEM_MAP_R64_WO(a_pr64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \
     2120         IEM_MC_MEM_MAP_U64_WO(a_pr64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem)
     2121#else
     2122# define IEM_MC_MEM_MAP_R64_WO(a_pr64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \
     2123    (a_pr64Mem) = (PRTFLOAT64U)iemMemMapDataU64WoJmp(pVCpu, &(a_bUnmapInfo), (a_iSeg), (a_GCPtrMem))
     2124#endif
     2125
     2126/** Flat RTFLOAT64U alias. */
     2127#ifndef IEM_WITH_SETJMP
     2128# define IEM_MC_MEM_FLAT_MAP_R64_WO(a_pr64Mem, a_bUnmapInfo, a_GCPtrMem) \
     2129         IEM_MC_MEM_FLAT_MAP_U64_WO(a_pr64Mem, a_bUnmapInfo, a_GCPtrMem)
     2130#else
     2131# define IEM_MC_MEM_FLAT_MAP_R64_WO(a_pr64Mem, a_bUnmapInfo, a_GCPtrMem) \
     2132    (a_pr64Mem) = (PRTFLOAT64U)iemMemFlatMapDataU64WoJmp(pVCpu, &(a_bUnmapInfo), (a_GCPtrMem))
    20972133#endif
    20982134
  • trunk/src/VBox/VMM/testcase/tstIEMCheckMc.cpp

    r102424 r102425  
    930930#define IEM_MC_POP_U64(a_pu64Value)                                     do { CHK_VAR(a_pu64Value); (void)fMcBegin; } while (0)
    931931
     932#define IEM_MC_MEM_MAP_I32_WO(a_pi32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) do { CHK_VAR(a_pi32Mem); (a_pi32Mem) = NULL; CHK_PTYPE(int32_t *,        a_pi32Mem); CHK_VAR(a_bUnmapInfo); CHK_TYPE(uint8_t, a_bUnmapInfo); a_bUnmapInfo = 1; CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     933#define IEM_MC_MEM_MAP_I64_WO(a_pi64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) do { CHK_VAR(a_pi64Mem); (a_pi64Mem) = NULL; CHK_PTYPE(int64_t *,        a_pi64Mem); CHK_VAR(a_bUnmapInfo); CHK_TYPE(uint8_t, a_bUnmapInfo); a_bUnmapInfo = 1; CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     934#define IEM_MC_MEM_MAP_R32_WO(a_pr32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) do { CHK_VAR(a_pr32Mem); (a_pr32Mem) = NULL; CHK_PTYPE(RTFLOAT32U *,     a_pr32Mem); CHK_VAR(a_bUnmapInfo); CHK_TYPE(uint8_t, a_bUnmapInfo); a_bUnmapInfo = 1; CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     935#define IEM_MC_MEM_MAP_R64_WO(a_pr64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) do { CHK_VAR(a_pr64Mem); (a_pr64Mem) = NULL; CHK_PTYPE(RTFLOAT64U *,     a_pr64Mem); CHK_VAR(a_bUnmapInfo); CHK_TYPE(uint8_t, a_bUnmapInfo); a_bUnmapInfo = 1; CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     936#define IEM_MC_MEM_MAP_R80_WO(a_pr80Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) do { CHK_VAR(a_pr80Mem); (a_pr80Mem) = NULL; CHK_PTYPE(RTFLOAT80U *,     a_pr80Mem); CHK_VAR(a_bUnmapInfo); CHK_TYPE(uint8_t, a_bUnmapInfo); a_bUnmapInfo = 1; CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    932937#define IEM_MC_MEM_MAP_U8_RW(a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem)   do { CHK_VAR(a_pu8Mem);  (a_pu8Mem)  = NULL; CHK_PTYPE(uint8_t *,        a_pu8Mem);  CHK_VAR(a_bUnmapInfo); CHK_TYPE(uint8_t, a_bUnmapInfo); a_bUnmapInfo = 1; CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    933938#define IEM_MC_MEM_MAP_U8_RO(a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem)   do { CHK_VAR(a_pu8Mem);  (a_pu8Mem)  = NULL; CHK_PTYPE(uint8_t const *,  a_pu8Mem);  CHK_VAR(a_bUnmapInfo); CHK_TYPE(uint8_t, a_bUnmapInfo); a_bUnmapInfo = 1; CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
     
    939944#define IEM_MC_MEM_MAP_U32_RO(a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) do { CHK_VAR(a_pu32Mem); (a_pu32Mem) = NULL; CHK_PTYPE(uint32_t const *, a_pu32Mem); CHK_VAR(a_bUnmapInfo); CHK_TYPE(uint8_t, a_bUnmapInfo); a_bUnmapInfo = 1; CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    940945#define IEM_MC_MEM_MAP_U32_WO(a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) do { CHK_VAR(a_pu32Mem); (a_pu32Mem) = NULL; CHK_PTYPE(uint32_t *,       a_pu32Mem); CHK_VAR(a_bUnmapInfo); CHK_TYPE(uint8_t, a_bUnmapInfo); a_bUnmapInfo = 1; CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    941 #define IEM_MC_MEM_MAP_I32_WO(a_pi32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) do { CHK_VAR(a_pi32Mem); (a_pi32Mem) = NULL; CHK_PTYPE(int32_t *,        a_pi32Mem); CHK_VAR(a_bUnmapInfo); CHK_TYPE(uint8_t, a_bUnmapInfo); a_bUnmapInfo = 1; CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    942 #define IEM_MC_MEM_MAP_R32_WO(a_pr32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) do { CHK_VAR(a_pr32Mem); (a_pr32Mem) = NULL; CHK_PTYPE(RTFLOAT32U *,     a_pr32Mem); CHK_VAR(a_bUnmapInfo); CHK_TYPE(uint8_t, a_bUnmapInfo); a_bUnmapInfo = 1; CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    943946#define IEM_MC_MEM_MAP_U64_RW(a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) do { CHK_VAR(a_pu64Mem); (a_pu64Mem) = NULL; CHK_PTYPE(uint64_t *,       a_pu64Mem); CHK_VAR(a_bUnmapInfo); CHK_TYPE(uint8_t, a_bUnmapInfo); a_bUnmapInfo = 1; CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    944947#define IEM_MC_MEM_MAP_U64_RO(a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) do { CHK_VAR(a_pu64Mem); (a_pu64Mem) = NULL; CHK_PTYPE(uint64_t const *, a_pu64Mem); CHK_VAR(a_bUnmapInfo); CHK_TYPE(uint8_t, a_bUnmapInfo); a_bUnmapInfo = 1; CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    945948#define IEM_MC_MEM_MAP_U64_WO(a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) do { CHK_VAR(a_pu64Mem); (a_pu64Mem) = NULL; CHK_PTYPE(uint64_t *,       a_pu64Mem); CHK_VAR(a_bUnmapInfo); CHK_TYPE(uint8_t, a_bUnmapInfo); a_bUnmapInfo = 1; CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    946 #define IEM_MC_MEM_MAP_R80_WO(a_pr80Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) do { CHK_VAR(a_pr80Mem); (a_pr80Mem) = NULL; CHK_PTYPE(RTFLOAT80U *,     a_pr80Mem); CHK_VAR(a_bUnmapInfo); CHK_TYPE(uint8_t, a_bUnmapInfo); a_bUnmapInfo = 1; CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)
    947949
    948950#define IEM_MC_MEM_COMMIT_AND_UNMAP_RW(a_pvMem, a_bMapInfo)                do { CHK_VAR(a_pvMem); CHK_VAR(a_bMapInfo); CHK_TYPE(uint8_t, a_bMapInfo); (void)fMcBegin; } while (0)
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