VirtualBox

Ignore:
Timestamp:
May 23, 2017 11:10:57 AM (8 years ago)
Author:
vboxsync
Message:

IEM: Tests+docs for movntdq Mdq,Vdq (0x66 0x0f 0xe7).

File:
1 edited

Legend:

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

    r67033 r67034  
    89778977     * @opcode      0xe7
    89788978     * @opcodesub   11 mr/reg
    8979      * @oppfx       f2
     8979     * @oppfx       none
    89808980     * @opunused    immediate
    89818981     * @opcpuid     sse
     
    89858985}
    89868986
    8987 /** Opcode 0x66 0x0f 0xe7 - movntdq Mx, Vx */
    8988 FNIEMOP_DEF(iemOp_movntdq_Mx_Vx)
    8989 {
     8987/**
     8988 * @opcode      0xe7
     8989 * @opcodesub   !11 mr/reg
     8990 * @oppfx       0x66
     8991 * @opcpuid     sse2
     8992 * @opgroup     og_sse2_cachect
     8993 * @opxcpttype  1
     8994 * @optest      op1=-1 op2=2  -> op1=2
     8995 * @optest      op1=0 op2=-42 -> op1=-42
     8996 */
     8997FNIEMOP_DEF(iemOp_movntdq_Mdq_Vdq)
     8998{
     8999    IEMOP_MNEMONIC2(MR_MEM, MOVNTDQ, movntdq, Mdq_WO, Vdq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    89909000    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    89919001    if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT))
    89929002    {
    89939003        /* Register, memory. */
    8994         IEMOP_MNEMONIC(movntdq_Mx_Vx, "movntdq Mx,Vx");
    89959004        IEM_MC_BEGIN(0, 2);
    89969005        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    90109019    }
    90119020
    9012     /* The register, register encoding is invalid. */
     9021    /**
     9022     * @opdone
     9023     * @opmnemonic  ud660fe7reg
     9024     * @opcode      0xe7
     9025     * @opcodesub   11 mr/reg
     9026     * @oppfx       0x66
     9027     * @opunused    immediate
     9028     * @opcpuid     sse
     9029     * @optest      ->
     9030     */
    90139031    return IEMOP_RAISE_INVALID_OPCODE();
    90149032}
     
    94509468    /* 0xe5 */  iemOp_pmulhw_Pq_Qq,         iemOp_pmulhw_Vx_Wx,         iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
    94519469    /* 0xe6 */  iemOp_InvalidNeedRM,        iemOp_cvttpd2dq_Vx_Wpd,     iemOp_cvtdq2pd_Vx_Wpd,      iemOp_cvtpd2dq_Vx_Wpd,
    9452     /* 0xe7 */  iemOp_movntq_Mq_Pq,         iemOp_movntdq_Mx_Vx,        iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
     9470    /* 0xe7 */  iemOp_movntq_Mq_Pq,         iemOp_movntdq_Mdq_Vdq,      iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
    94539471    /* 0xe8 */  iemOp_psubsb_Pq_Qq,         iemOp_psubsb_Vx_W,          iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
    94549472    /* 0xe9 */  iemOp_psubsw_Pq_Qq,         iemOp_psubsw_Vx_Wx,         iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
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