VirtualBox

Changeset 66309 in vbox for trunk/src/VBox/ValidationKit


Ignore:
Timestamp:
Mar 28, 2017 3:35:12 PM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
114238
Message:

IEM: Implemented movlps Vq,Mq and movhlps Vq,Uq (0f 12).

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

Legend:

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

    r66306 r66309  
    7777#if 0
    7878# define BS3CG1_DPRINTF(a_ArgList) Bs3TestPrintf a_ArgList
    79 //# define BS3CG1_DEBUG_CTX_MOD
     79# define BS3CG1_DEBUG_CTX_MOD
    8080#else
    8181# define BS3CG1_DPRINTF(a_ArgList) do { } while (0)
     
    13621362            break;
    13631363
     1364        case BS3CG1ENC_MODRM_Vq_UqHi:
     1365            if (iEncoding == 0)
     1366            {
     1367                off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
     1368                pThis->abCurInstr[off++] = X86_MODRM_MAKE(3, 1, 0);
     1369                pThis->aOperands[pThis->iRmOp ].idxField = BS3CG1DST_XMM0_HI;
     1370                pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM1_LO;
     1371            }
     1372            else if (iEncoding == 1)
     1373            {
     1374                off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
     1375                pThis->abCurInstr[off++] = X86_MODRM_MAKE(3, 2, 2);
     1376                pThis->aOperands[pThis->iRmOp ].idxField = BS3CG1DST_XMM2_HI;
     1377                pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM2_LO;
     1378            }
     1379            else
     1380                break;
     1381            pThis->cbCurInstr = off;
     1382            iEncoding++;
     1383            break;
     1384
     1385        case BS3CG1ENC_MODRM_Vq_Mq:
     1386            if (iEncoding == 0)
     1387            {
     1388                pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM2_LO;
     1389                off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
     1390                off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 2 /*iReg*/, 8, 0, BS3CG1OPLOC_MEM);
     1391            }
     1392            else if (iEncoding == 1)
     1393            {
     1394                pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM3_LO;
     1395                off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
     1396                off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 3 /*iReg*/, 8, 1 /*cbMissalign*/, BS3CG1OPLOC_MEM);
     1397            }
     1398            else
     1399                break;
     1400            pThis->cbCurInstr = off;
     1401            iEncoding++;
     1402            break;
     1403
    13641404        case BS3CG1ENC_MODRM_Gv_Ma:
    13651405            cbOp = BS3_MODE_IS_16BIT_CODE(pThis->bMode) ? 2 : 4;
     
    15921632            pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;
    15931633            pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;
     1634            break;
     1635
     1636        case BS3CG1ENC_MODRM_Vq_UqHi:
     1637            pThis->iRmOp             = 1;
     1638            pThis->iRegOp            = 0;
     1639            pThis->aOperands[0].cbOp = 8;
     1640            pThis->aOperands[1].cbOp = 8;
     1641            pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;
     1642            pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;
     1643            break;
     1644
     1645        case BS3CG1ENC_MODRM_Vq_Mq:
     1646            pThis->iRmOp             = 1;
     1647            pThis->iRegOp            = 0;
     1648            pThis->aOperands[0].cbOp = 8;
     1649            pThis->aOperands[1].cbOp = 8;
     1650            pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;
     1651            pThis->aOperands[1].enmLocation = BS3CG1OPLOC_MEM;
    15941652            break;
    15951653
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1.h

    r66306 r66309  
    5151    BS3CG1OP_Gb,
    5252    BS3CG1OP_Gv,
     53    BS3CG1OP_Uq,
     54    BS3CG1OP_UqHi,
    5355    BS3CG1OP_Vss,
    5456    BS3CG1OP_Vsd,
    5557    BS3CG1OP_Vps,
    5658    BS3CG1OP_Vpd,
     59    BS3CG1OP_Vq,
    5760
    5861    BS3CG1OP_Ib,
     
    6366
    6467    BS3CG1OP_Ma,
     68    BS3CG1OP_Mq,
    6569
    6670    BS3CG1OP_END
     
    9094    BS3CG1ENC_MODRM_Gv_Ev,
    9195    BS3CG1ENC_MODRM_Gv_Ma, /**< bound instruction */
     96    BS3CG1ENC_MODRM_Vq_UqHi,
     97    BS3CG1ENC_MODRM_Vq_Mq,
    9298
    9399    BS3CG1ENC_FIXED,
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