VirtualBox

Changeset 37004 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
May 8, 2011 6:22:11 PM (14 years ago)
Author:
vboxsync
Message:

IEM: More cleanup and checks.

Location:
trunk/src/VBox/VMM/VMMAll
Files:
2 edited

Legend:

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

    r37003 r37004  
    37403740#define IEM_MC_FETCH_GREG_U32_SX_U64(a_u64Dst, a_iGReg) (a_u64Dst) = (int32_t)iemGRegFetchU32(pIemCpu, (a_iGReg))
    37413741#define IEM_MC_FETCH_GREG_U64(a_u64Dst, a_iGReg)        (a_u64Dst) = iemGRegFetchU64(pIemCpu, (a_iGReg))
     3742#define IEM_MC_FETCH_GREG_U64_ZX_U64                    IEM_MC_FETCH_GREG_U64
    37423743#define IEM_MC_FETCH_SREG_U16(a_u16Dst, a_iSReg)        (a_u16Dst) = iemSRegFetchU16(pIemCpu, (a_iSReg))
    37433744#define IEM_MC_FETCH_SREG_ZX_U32(a_u32Dst, a_iSReg)     (a_u32Dst) = iemSRegFetchU16(pIemCpu, (a_iSReg))
     
    37673768#define IEM_MC_REF_EFLAGS(a_pEFlags)                    (a_pEFlags) = &(pIemCpu)->CTX_SUFF(pCtx)->eflags.u
    37683769
    3769 #define IEM_MC_ADD_GREG_U8(a_iGReg, a_u16Value)         *(uint8_t *)iemGRegRef(pIemCpu, (a_iGReg)) += (a_u8Value)
     3770#define IEM_MC_ADD_GREG_U8(a_iGReg, a_u8Value)          *(uint8_t *)iemGRegRef(pIemCpu, (a_iGReg)) += (a_u8Value)
    37703771#define IEM_MC_ADD_GREG_U16(a_iGReg, a_u16Value)        *(uint16_t *)iemGRegRef(pIemCpu, (a_iGReg)) += (a_u16Value)
    37713772#define IEM_MC_ADD_GREG_U32(a_iGReg, a_u32Value) \
     
    37873788#define IEM_MC_SUB_GREG_U64(a_iGReg, a_u64Value)        *(uint64_t *)iemGRegRef(pIemCpu, (a_iGReg)) -= (a_u64Value)
    37883789
    3789 #define IEM_MC_ADD_GREG_U8_TO_LOCAL(a_u16Value, a_iGReg)   (a_u8Value)  += iemGRegFetchU8( pIemCpu, (a_iGReg))
    3790 #define IEM_MC_ADD_GREG_U16_TO_LOCAL(a_u16Value, a_iGReg)  (a_u16Value) += iemGRegFetchU16(pIemCpu, (a_iGReg))
    3791 #define IEM_MC_ADD_GREG_U32_TO_LOCAL(a_u32Value, a_iGReg)  (a_u32Value) += iemGRegFetchU32(pIemCpu, (a_iGReg))
    3792 #define IEM_MC_ADD_GREG_U64_TO_LOCAL(a_u64Value, a_iGReg)  (a_u64Value) += iemGRegFetchU64(pIemCpu, (a_iGReg))
     3790#define IEM_MC_ADD_GREG_U8_TO_LOCAL(a_u8Value, a_iGReg)    do { (a_u8Value)  += iemGRegFetchU8( pIemCpu, (a_iGReg)); } while (0)
     3791#define IEM_MC_ADD_GREG_U16_TO_LOCAL(a_u16Value, a_iGReg)  do { (a_u16Value) += iemGRegFetchU16(pIemCpu, (a_iGReg)); } while (0)
     3792#define IEM_MC_ADD_GREG_U32_TO_LOCAL(a_u32Value, a_iGReg)  do { (a_u32Value) += iemGRegFetchU32(pIemCpu, (a_iGReg)); } while (0)
     3793#define IEM_MC_ADD_GREG_U64_TO_LOCAL(a_u64Value, a_iGReg)  do { (a_u64Value) += iemGRegFetchU64(pIemCpu, (a_iGReg)); } while (0)
    37933794#define IEM_MC_ADD_LOCAL_S16_TO_EFF_ADDR(a_EffAddr, a_i16) do { (a_EffAddr) += (a_i16); } while (0)
    37943795#define IEM_MC_ADD_LOCAL_S32_TO_EFF_ADDR(a_EffAddr, a_i32) do { (a_EffAddr) += (a_i32); } while (0)
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructions.cpp.h

    r37003 r37004  
    77437743        IEM_MC_BEGIN(0, 2); \
    77447744        IEM_MC_LOCAL(uint##ValBits##_t, uValue); \
    7745         IEM_MC_LOCAL(uint##AddrBits##_t, uAddr); \
    7746         IEM_MC_FETCH_GREG_U##AddrBits(uAddr, X86_GREG_xSI); \
     7745        IEM_MC_LOCAL(RTGCPTR,          uAddr); \
     7746        IEM_MC_FETCH_GREG_U##AddrBits##_ZX_U64(uAddr, X86_GREG_xSI); \
    77477747        IEM_MC_FETCH_MEM_U##ValBits(uValue, pIemCpu->iEffSeg, uAddr); \
    7748         IEM_MC_FETCH_GREG_U##AddrBits(uAddr, X86_GREG_xDI); \
     7748        IEM_MC_FETCH_GREG_U##AddrBits##_ZX_U64(uAddr, X86_GREG_xDI); \
    77497749        IEM_MC_STORE_MEM_U##ValBits(X86_SREG_ES, uAddr, uValue); \
    77507750        IEM_MC_IF_EFL_BIT_SET(X86_EFL_DF) { \
     
    78857885        IEM_MC_ARG(uint32_t *,          pEFlags,  2); \
    78867886        IEM_MC_LOCAL(uint##ValBits##_t, uValue1); \
    7887         IEM_MC_LOCAL(uint##AddrBits##_t, uAddr); \
     7887        IEM_MC_LOCAL(RTGCPTR,          uAddr); \
    78887888        \
    7889         IEM_MC_FETCH_GREG_U##AddrBits(uAddr, X86_GREG_xSI); \
     7889        IEM_MC_FETCH_GREG_U##AddrBits##_ZX_U64(uAddr, X86_GREG_xSI); \
    78907890        IEM_MC_FETCH_MEM_U##ValBits(uValue1, pIemCpu->iEffSeg, uAddr); \
    7891         IEM_MC_FETCH_GREG_U##AddrBits(uAddr, X86_GREG_xDI); \
     7891        IEM_MC_FETCH_GREG_U##AddrBits##_ZX_U64(uAddr, X86_GREG_xDI); \
    78927892        IEM_MC_FETCH_MEM_U##ValBits(uValue2, X86_SREG_ES, uAddr); \
    78937893        IEM_MC_REF_LOCAL(puValue1, uValue1); \
     
    80958095        IEM_MC_BEGIN(0, 2); \
    80968096        IEM_MC_LOCAL(uint##ValBits##_t, uValue); \
    8097         IEM_MC_LOCAL(uint##AddrBits##_t, uAddr); \
     8097        IEM_MC_LOCAL(RTGCPTR, uAddr); \
    80988098        IEM_MC_FETCH_GREG_U##ValBits(uValue, X86_GREG_xAX); \
    8099         IEM_MC_FETCH_GREG_U##AddrBits(uAddr,  X86_GREG_xDI); \
     8099        IEM_MC_FETCH_GREG_U##AddrBits##_ZX_U64(uAddr,  X86_GREG_xDI); \
    81008100        IEM_MC_STORE_MEM_U##ValBits(X86_SREG_ES, uAddr, uValue); \
    81018101        IEM_MC_IF_EFL_BIT_SET(X86_EFL_DF) { \
     
    82318231        IEM_MC_BEGIN(0, 2); \
    82328232        IEM_MC_LOCAL(uint##ValBits##_t, uValue); \
    8233         IEM_MC_LOCAL(uint##AddrBits##_t, uAddr); \
    8234         IEM_MC_FETCH_GREG_U##AddrBits(uAddr, X86_GREG_xSI); \
     8233        IEM_MC_LOCAL(RTGCPTR, uAddr); \
     8234        IEM_MC_FETCH_GREG_U##AddrBits##_ZX_U64(uAddr, X86_GREG_xSI); \
    82358235        IEM_MC_FETCH_MEM_U##ValBits(uValue, pIemCpu->iEffSeg, uAddr); \
    82368236        IEM_MC_STORE_GREG_U##ValBits(X86_GREG_xAX, uValue); \
     
    83698369        IEM_MC_ARG(uint##ValBits##_t,   uValue,  1); \
    83708370        IEM_MC_ARG(uint32_t *,          pEFlags, 2); \
    8371         IEM_MC_LOCAL(uint##AddrBits##_t, uAddr); \
     8371        IEM_MC_LOCAL(RTGCPTR,          uAddr); \
    83728372        \
    8373         IEM_MC_FETCH_GREG_U##AddrBits(uAddr, X86_GREG_xDI); \
     8373        IEM_MC_FETCH_GREG_U##AddrBits##_ZX_U64(uAddr, X86_GREG_xDI); \
    83748374        IEM_MC_FETCH_MEM_U##ValBits(uValue, X86_SREG_ES, uAddr); \
    83758375        IEM_MC_REF_GREG_U##ValBits(puRax, X86_GREG_xAX); \
Note: See TracChangeset for help on using the changeset viewer.

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