VirtualBox

Ignore:
Timestamp:
Dec 12, 2022 5:02:29 PM (2 years ago)
Author:
vboxsync
Message:

IEM: Implemented SSE instructions RSQRTPS, RSQRTSS, ROUNDPS, ROUNDPD, ROUNDSS, ROUNDSD, INSERTPS. FPU bits in assembler only, C implementation todo.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/IEMMc.h

    r97607 r97782  
    396396#define IEM_MC_SAR_LOCAL_S64(a_i64Local, a_cShift)      do { (a_i64Local) >>= (a_cShift);  } while (0)
    397397
     398#define IEM_MC_SHR_LOCAL_U8(a_u8Local, a_cShift)        do { (a_u8Local)  >>= (a_cShift);  } while (0)
     399
    398400#define IEM_MC_SHL_LOCAL_S16(a_i16Local, a_cShift)      do { (a_i16Local) <<= (a_cShift);  } while (0)
    399401#define IEM_MC_SHL_LOCAL_S32(a_i32Local, a_cShift)      do { (a_i32Local) <<= (a_cShift);  } while (0)
     
    474476    do { ((uint32_t *)(a_pu64Dst))[2] = 0xffff; } while (0)
    475477
     478#define IEM_MC_CLEAR_XREG_U32_MASK(a_iXReg, a_bMask) \
     479    do { if ((a_bMask) & (1 << 0)) pVCpu->cpum.GstCtx.XState.x87.aXMM[(a_iXReg)].au32[0] = 0; \
     480         if ((a_bMask) & (1 << 1)) pVCpu->cpum.GstCtx.XState.x87.aXMM[(a_iXReg)].au32[1] = 0; \
     481         if ((a_bMask) & (1 << 2)) pVCpu->cpum.GstCtx.XState.x87.aXMM[(a_iXReg)].au32[2] = 0; \
     482         if ((a_bMask) & (1 << 3)) pVCpu->cpum.GstCtx.XState.x87.aXMM[(a_iXReg)].au32[3] = 0; \
     483    } while (0)
    476484#define IEM_MC_FETCH_XREG_U128(a_u128Value, a_iXReg) \
    477485    do { (a_u128Value).au64[0] = pVCpu->cpum.GstCtx.XState.x87.aXMM[(a_iXReg)].au64[0]; \
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