VirtualBox

Ignore:
Timestamp:
May 2, 2017 10:23:24 AM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
115150
Message:

IEM: Implemented movups Vps,Wps (0x0f 0x10).

Location:
trunk/src/VBox/ValidationKit/bootsectors
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c

    r66464 r66743  
    16601660
    16611661
     1662static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vps_Wps(PBS3CG1STATE pThis, unsigned iEncoding)
     1663{
     1664    unsigned off;
     1665    if (iEncoding == 0)
     1666    {
     1667        off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
     1668        pThis->abCurInstr[off++] = X86_MODRM_MAKE(3, 1, 0);
     1669        pThis->aOperands[pThis->iRmOp ].idxField = BS3CG1DST_XMM0;
     1670        pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM1;
     1671    }
     1672    else if (iEncoding == 1)
     1673    {
     1674        pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM2;
     1675        off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
     1676        off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 2 /*iReg*/, 16, 0, BS3CG1OPLOC_MEM);
     1677    }
     1678    else if (iEncoding == 2)
     1679    {
     1680        pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM3;
     1681        off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
     1682        off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 3 /*iReg*/, 16, 1 /*cbMissalign*/, BS3CG1OPLOC_MEM);
     1683        if (!Bs3Cg1XcptTypeIsUnaligned(pThis->enmXcptType))
     1684            pThis->bAlignmentXcpt = X86_XCPT_GP;
     1685    }
     1686    else
     1687        return 0;
     1688    pThis->cbCurInstr = off;
     1689    return iEncoding + 1;
     1690}
     1691
     1692
    16621693static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VssZxReg_Wss(PBS3CG1STATE pThis, unsigned iEncoding)
    16631694{
     
    20692100        case BS3CG1ENC_MODRM_Vdq_Wdq:
    20702101            return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vdq_Wdq(pThis, iEncoding);
     2102        case BS3CG1ENC_MODRM_Vps_Wps:
     2103            return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vps_Wps(pThis, iEncoding);
    20712104        case BS3CG1ENC_MODRM_VssZxReg_Wss:
    20722105            return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VssZxReg_Wss(pThis, iEncoding);
     
    22092242
    22102243        case BS3CG1ENC_MODRM_Vdq_Wdq:
     2244            pThis->iRmOp             = 1;
     2245            pThis->iRegOp            = 0;
     2246            pThis->aOperands[0].cbOp = 16;
     2247            pThis->aOperands[1].cbOp = 16;
     2248            pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;
     2249            pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;
     2250            break;
     2251
     2252        case BS3CG1ENC_MODRM_Vps_Wps:
    22112253            pThis->iRmOp             = 1;
    22122254            pThis->iRegOp            = 0;
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1.h

    r66464 r66743  
    105105    BS3CG1ENC_MODRM_Vq_Mq,
    106106    BS3CG1ENC_MODRM_Vdq_Wdq,
     107    BS3CG1ENC_MODRM_Vps_Wps,
    107108    BS3CG1ENC_MODRM_VssZxReg_Wss,
    108109    BS3CG1ENC_MODRM_MbRO,
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