VirtualBox

Ignore:
Timestamp:
May 4, 2017 11:48:37 AM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
115197
Message:

IEM: Implemented movlhps Vdq,Uq and movhps Vdq,Mq (0f 16).

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

Legend:

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

    r66747 r66785  
    16291629
    16301630
     1631static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VqHi_Uq(PBS3CG1STATE pThis, unsigned iEncoding)
     1632{
     1633    unsigned off;
     1634    if (iEncoding == 0)
     1635    {
     1636        off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
     1637        pThis->abCurInstr[off++] = X86_MODRM_MAKE(3, 1, 0);
     1638        pThis->aOperands[pThis->iRmOp ].idxField = BS3CG1DST_XMM0_LO;
     1639        pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM1_HI;
     1640    }
     1641    else if (iEncoding == 1)
     1642    {
     1643        off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
     1644        pThis->abCurInstr[off++] = X86_MODRM_MAKE(3, 2, 2);
     1645        pThis->aOperands[pThis->iRmOp ].idxField = BS3CG1DST_XMM2_LO;
     1646        pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM2_HI;
     1647    }
     1648    else
     1649        return 0;
     1650    pThis->cbCurInstr = off;
     1651    return iEncoding + 1;
     1652}
     1653
     1654
     1655static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VqHi_Mq(PBS3CG1STATE pThis, unsigned iEncoding)
     1656{
     1657    unsigned off;
     1658    if (iEncoding == 0)
     1659    {
     1660        pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM2_HI;
     1661        off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
     1662        off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 2 /*iReg*/, 8, 0, BS3CG1OPLOC_MEM);
     1663    }
     1664    else if (iEncoding == 1)
     1665    {
     1666        pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM3_HI;
     1667        off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
     1668        off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 3 /*iReg*/, 8, 1 /*cbMissalign*/, BS3CG1OPLOC_MEM);
     1669    }
     1670    else
     1671        return 0;
     1672    pThis->cbCurInstr = off;
     1673    return iEncoding + 1;
     1674}
     1675
     1676
    16311677static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vdq_Wdq(PBS3CG1STATE pThis, unsigned iEncoding)
    16321678{
     
    21502196        case BS3CG1ENC_MODRM_Vq_Mq:
    21512197            return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vq_Mq(pThis, iEncoding);
     2198        case BS3CG1ENC_MODRM_VqHi_Uq:
     2199            return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VqHi_Uq(pThis, iEncoding);
     2200        case BS3CG1ENC_MODRM_VqHi_Mq:
     2201            return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VqHi_Mq(pThis, iEncoding);
    21522202        case BS3CG1ENC_MODRM_Vdq_Wdq:
    21532203            return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vdq_Wdq(pThis, iEncoding);
     
    23182368
    23192369        case BS3CG1ENC_MODRM_Vq_UqHi:
     2370        case BS3CG1ENC_MODRM_VqHi_Uq:
    23202371            pThis->iRmOp             = 1;
    23212372            pThis->iRegOp            = 0;
     
    23272378
    23282379        case BS3CG1ENC_MODRM_Vq_Mq:
     2380        case BS3CG1ENC_MODRM_VqHi_Mq:
    23292381            pThis->iRmOp             = 1;
    23302382            pThis->iRegOp            = 0;
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1.h

    r66747 r66785  
    6363    BS3CG1OP_Vq,
    6464    BS3CG1OP_Vdq,
     65    BS3CG1OP_VqHi,
    6566
    6667    BS3CG1OP_Ib,
     
    106107    BS3CG1ENC_MODRM_Vq_UqHi,
    107108    BS3CG1ENC_MODRM_Vq_Mq,
     109    BS3CG1ENC_MODRM_VqHi_Uq,
     110    BS3CG1ENC_MODRM_VqHi_Mq,
    108111    BS3CG1ENC_MODRM_Vdq_Wdq,
    109112    BS3CG1ENC_MODRM_Vpd_Wpd,
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