VirtualBox

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


Ignore:
Timestamp:
Mar 28, 2017 2:49:17 PM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
114234
Message:

IEM: Implemented movss Wss,Vss (f3 0f 11).

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

Legend:

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

    r66303 r66306  
    470470    /* [BS3CG1DST_XMM14_HI] = */    8,
    471471    /* [BS3CG1DST_XMM15_HI] = */    8,
     472    /* [BS3CG1DST_XMM0_DW0] = */    4,
     473    /* [BS3CG1DST_XMM1_DW0] = */    4,
     474    /* [BS3CG1DST_XMM2_DW0] = */    4,
     475    /* [BS3CG1DST_XMM3_DW0] = */    4,
     476    /* [BS3CG1DST_XMM4_DW0] = */    4,
     477    /* [BS3CG1DST_XMM5_DW0] = */    4,
     478    /* [BS3CG1DST_XMM6_DW0] = */    4,
     479    /* [BS3CG1DST_XMM7_DW0] = */    4,
     480    /* [BS3CG1DST_XMM8_DW0] = */    4,
     481    /* [BS3CG1DST_XMM9_DW0] = */    4,
     482    /* [BS3CG1DST_XMM10_DW0] = */   4,
     483    /* [BS3CG1DST_XMM11_DW0] = */   4,
     484    /* [BS3CG1DST_XMM12_DW0] = */   4,
     485    /* [BS3CG1DST_XMM13_DW0] = */   4,
     486    /* [BS3CG1DST_XMM14_DW0] = */   4,
     487    /* [BS3CG1DST_XMM15_DW0] = */   4,
    472488    /* [BS3CG1DST_YMM0] = */        32,
    473489    /* [BS3CG1DST_YMM1] = */        32,
     
    667683    /* [BS3CG1DST_XMM14_HI] = */    sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[14]) + sizeof(uint64_t),
    668684    /* [BS3CG1DST_XMM15_HI] = */    sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[15]) + sizeof(uint64_t),
     685    /* [BS3CG1DST_XMM0_DW0] = */    sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[0]),
     686    /* [BS3CG1DST_XMM1_DW0] = */    sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[1]),
     687    /* [BS3CG1DST_XMM2_DW0] = */    sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[2]),
     688    /* [BS3CG1DST_XMM3_DW0] = */    sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[3]),
     689    /* [BS3CG1DST_XMM4_DW0] = */    sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[4]),
     690    /* [BS3CG1DST_XMM5_DW0] = */    sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[5]),
     691    /* [BS3CG1DST_XMM6_DW0] = */    sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[6]),
     692    /* [BS3CG1DST_XMM7_DW0] = */    sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[7]),
     693    /* [BS3CG1DST_XMM8_DW0] = */    sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[8]),
     694    /* [BS3CG1DST_XMM9_DW0] = */    sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[9]),
     695    /* [BS3CG1DST_XMM10_DW0] = */   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[10]),
     696    /* [BS3CG1DST_XMM11_DW0] = */   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[11]),
     697    /* [BS3CG1DST_XMM12_DW0] = */   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[12]),
     698    /* [BS3CG1DST_XMM13_DW0] = */   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[13]),
     699    /* [BS3CG1DST_XMM14_DW0] = */   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[14]),
     700    /* [BS3CG1DST_XMM15_DW0] = */   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[15]),
    669701
    670702    /* [BS3CG1DST_YMM0] = */        ~0U,
     
    691723#ifdef BS3CG1_DEBUG_CTX_MOD
    692724/** Destination field names. */
    693 static const struct { char sz[8]; } g_aszBs3Cg1DstFields[] =
     725static const struct { char sz[10]; } g_aszBs3Cg1DstFields[] =
    694726{
    695727    { "INVALID" },
     
    864896    { "XMM14_HI" },
    865897    { "XMM15_HI" },
     898    { "XMM0_DW0" },
     899    { "XMM1_DW0" },
     900    { "XMM2_DW0" },
     901    { "XMM3_DW0" },
     902    { "XMM4_DW0" },
     903    { "XMM5_DW0" },
     904    { "XMM6_DW0" },
     905    { "XMM7_DW0" },
     906    { "XMM8_DW0" },
     907    { "XMM9_DW0" },
     908    { "XMM10_DW0" },
     909    { "XMM11_DW0" },
     910    { "XMM12_DW0" },
     911    { "XMM13_DW0" },
     912    { "XMM14_DW0" },
     913    { "XMM15_DW0" },
    866914    { "YMM0" },
    867915    { "YMM1" },
     
    12331281            break;
    12341282
     1283        case BS3CG1ENC_MODRM_Wss_Vss:
     1284            if (iEncoding == 0)
     1285            {
     1286                off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
     1287                pThis->abCurInstr[off++] = X86_MODRM_MAKE(3, 1, 0);
     1288                pThis->aOperands[pThis->iRmOp ].idxField = BS3CG1DST_XMM0_DW0;
     1289                pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM1_DW0;
     1290            }
     1291            else if (iEncoding == 1)
     1292            {
     1293                pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM2_DW0;
     1294                off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
     1295                off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 2 /*iReg*/, 4, 0, BS3CG1OPLOC_MEM_RW);
     1296            }
     1297            else if (iEncoding == 2)
     1298            {
     1299                pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM3_DW0;
     1300                off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
     1301                off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 3 /*iReg*/, 4, 1 /*cbMissalign*/, BS3CG1OPLOC_MEM_RW);
     1302            }
     1303            else
     1304                break;
     1305            pThis->cbCurInstr = off;
     1306            iEncoding++;
     1307            break;
     1308
    12351309        case BS3CG1ENC_MODRM_Wsd_Vsd:
    12361310            if (iEncoding == 0)
     
    14901564            pThis->aOperands[1].enmLocation = BS3CG1OPLOC_MEM;
    14911565            pThis->aOperands[1].idxField    = BS3CG1DST_INVALID;
     1566            break;
     1567
     1568        case BS3CG1ENC_MODRM_Wss_Vss:
     1569            pThis->iRmOp             = 0;
     1570            pThis->iRegOp            = 1;
     1571            pThis->aOperands[0].cbOp = 4;
     1572            pThis->aOperands[1].cbOp = 4;
     1573            pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;
     1574            pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;
    14921575            break;
    14931576
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1.h

    r66303 r66306  
    4444    BS3CG1OP_Eb,
    4545    BS3CG1OP_Ev,
     46    BS3CG1OP_Wss,
    4647    BS3CG1OP_Wsd,
    4748    BS3CG1OP_Wps,
     
    5051    BS3CG1OP_Gb,
    5152    BS3CG1OP_Gv,
     53    BS3CG1OP_Vss,
    5254    BS3CG1OP_Vsd,
    5355    BS3CG1OP_Vps,
     
    8082    BS3CG1ENC_MODRM_Eb_Gb,
    8183    BS3CG1ENC_MODRM_Ev_Gv,
     84    BS3CG1ENC_MODRM_Wss_Vss,
    8285    BS3CG1ENC_MODRM_Wsd_Vsd,
    8386    BS3CG1ENC_MODRM_Wps_Vps,
     
    461464    BS3CG1DST_XMM14_HI,
    462465    BS3CG1DST_XMM15_HI,
     466    BS3CG1DST_XMM0_DW0,
     467    BS3CG1DST_XMM1_DW0,
     468    BS3CG1DST_XMM2_DW0,
     469    BS3CG1DST_XMM3_DW0,
     470    BS3CG1DST_XMM4_DW0,
     471    BS3CG1DST_XMM5_DW0,
     472    BS3CG1DST_XMM6_DW0,
     473    BS3CG1DST_XMM7_DW0,
     474    BS3CG1DST_XMM8_DW0,
     475    BS3CG1DST_XMM9_DW0,
     476    BS3CG1DST_XMM10_DW0,
     477    BS3CG1DST_XMM11_DW0,
     478    BS3CG1DST_XMM12_DW0,
     479    BS3CG1DST_XMM13_DW0,
     480    BS3CG1DST_XMM14_DW0,
     481    BS3CG1DST_XMM15_DW0,
    463482    /* AVX registers. */
    464483    BS3CG1DST_YMM0,
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