VirtualBox

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


Ignore:
Timestamp:
May 17, 2017 12:55:04 PM (8 years ago)
Author:
vboxsync
Message:

IEM: Use H*Hi notation instead of the complement one (HdqC*).

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

Legend:

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

    r66935 r66937  
    306306            self.sEncoding     += '_' + oOp.sType;
    307307        if oInstr.fUnused:
    308             print('DEBUG: Unused Bs3Cg1Instruction: %s\n' % (oInstr.sEncoding,));
    309308            if oInstr.sInvalidStyle == 'immediate' and oInstr.sSubOpcode:
    310309                self.sEncoding += '_MOD_EQ_3' if oInstr.sSubOpcode == '11 mr/reg' else '_MOD_NE_3';
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c

    r66935 r66937  
    552552    /* [BS3CG1DST_XMM14_DW0_ZX] =*/ 4,
    553553    /* [BS3CG1DST_XMM15_DW0_ZX] =*/ 4,
     554    /* [BS3CG1DST_XMM0_HI96] = */   12,
     555    /* [BS3CG1DST_XMM1_HI96] = */   12,
     556    /* [BS3CG1DST_XMM2_HI96] = */   12,
     557    /* [BS3CG1DST_XMM3_HI96] = */   12,
     558    /* [BS3CG1DST_XMM4_HI96] = */   12,
     559    /* [BS3CG1DST_XMM5_HI96] = */   12,
     560    /* [BS3CG1DST_XMM6_HI96] = */   12,
     561    /* [BS3CG1DST_XMM7_HI96] = */   12,
     562    /* [BS3CG1DST_XMM8_HI96] = */   12,
     563    /* [BS3CG1DST_XMM9_HI96] = */   12,
     564    /* [BS3CG1DST_XMM10_HI96] =*/   12,
     565    /* [BS3CG1DST_XMM11_HI96] =*/   12,
     566    /* [BS3CG1DST_XMM12_HI96] =*/   12,
     567    /* [BS3CG1DST_XMM13_HI96] =*/   12,
     568    /* [BS3CG1DST_XMM14_HI96] =*/   12,
     569    /* [BS3CG1DST_XMM15_HI96] =*/   12,
    554570    /* [BS3CG1DST_YMM0] = */        32,
    555571    /* [BS3CG1DST_YMM1] = */        32,
     
    800816    /* [BS3CG1DST_XMM14_DW0_ZX] =*/ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[14]),
    801817    /* [BS3CG1DST_XMM15_DW0_ZX] =*/ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[15]),
     818    /* [BS3CG1DST_XMM0_HI96] = */   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[0].au32[1]),
     819    /* [BS3CG1DST_XMM1_HI96] = */   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[1].au32[1]),
     820    /* [BS3CG1DST_XMM2_HI96] = */   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[2].au32[1]),
     821    /* [BS3CG1DST_XMM3_HI96] = */   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[3].au32[1]),
     822    /* [BS3CG1DST_XMM4_HI96] = */   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[4].au32[1]),
     823    /* [BS3CG1DST_XMM5_HI96] = */   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[5].au32[1]),
     824    /* [BS3CG1DST_XMM6_HI96] = */   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[6].au32[1]),
     825    /* [BS3CG1DST_XMM7_HI96] = */   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[7].au32[1]),
     826    /* [BS3CG1DST_XMM8_HI96] = */   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[8].au32[1]),
     827    /* [BS3CG1DST_XMM9_HI96] = */   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[9].au32[1]),
     828    /* [BS3CG1DST_XMM10_HI96] =*/   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[10].au32[1]),
     829    /* [BS3CG1DST_XMM11_HI96] =*/   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[11].au32[1]),
     830    /* [BS3CG1DST_XMM12_HI96] =*/   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[12].au32[1]),
     831    /* [BS3CG1DST_XMM13_HI96] =*/   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[13].au32[1]),
     832    /* [BS3CG1DST_XMM14_HI96] =*/   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[14].au32[1]),
     833    /* [BS3CG1DST_XMM15_HI96] =*/   sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[15].au32[1]),
    802834
    803835    /* [BS3CG1DST_YMM0] = */        ~0U,
     
    10481080    { "XMM14_DW0_ZX" },
    10491081    { "XMM15_DW0_ZX" },
     1082    { "XMM0_HI96" },
     1083    { "XMM1_HI96" },
     1084    { "XMM2_HI96" },
     1085    { "XMM3_HI96" },
     1086    { "XMM4_HI96" },
     1087    { "XMM5_HI96" },
     1088    { "XMM6_HI96" },
     1089    { "XMM7_HI96" },
     1090    { "XMM8_HI96" },
     1091    { "XMM9_HI96" },
     1092    { "XMM10_HI96" },
     1093    { "XMM11_HI96" },
     1094    { "XMM12_HI96" },
     1095    { "XMM13_HI96" },
     1096    { "XMM14_HI96" },
     1097    { "XMM15_HI96" },
    10501098    { "YMM0" },
    10511099    { "YMM1" },
     
    24312479 */
    24322480static unsigned BS3_NEAR_CODE
    2433 Bs3Cg1EncodeNext_VEX_MODRM_VsomethingWO_HdqCsomething_Usomething_Lip_Wip_OR_ViceVersa(PBS3CG1STATE pThis, unsigned iEncoding)
     2481Bs3Cg1EncodeNext_VEX_MODRM_VsomethingWO_Hsomething_Usomething_Lip_Wip_OR_ViceVersa(PBS3CG1STATE pThis, unsigned iEncoding)
    24342482{
    24352483    unsigned off;
     
    35763624            break;
    35773625
    3578         case BS3CG1ENC_VEX_MODRM_Vss_WO_HdqCss_Uss:
    3579             pThis->pfnEncoder        = Bs3Cg1EncodeNext_VEX_MODRM_VsomethingWO_HdqCsomething_Usomething_Lip_Wip_OR_ViceVersa;
     3626        case BS3CG1ENC_VEX_MODRM_Vss_WO_HssHi_Uss:
     3627            pThis->pfnEncoder        = Bs3Cg1EncodeNext_VEX_MODRM_VsomethingWO_Hsomething_Usomething_Lip_Wip_OR_ViceVersa;
    35803628            pThis->iRegOp            = 0;
    35813629            pThis->iRmOp             = 2;
    35823630            pThis->aOperands[0].cbOp = 16;
    3583             pThis->aOperands[1].cbOp = 16;
     3631            pThis->aOperands[1].cbOp = 12;
    35843632            pThis->aOperands[2].cbOp = 4;
    35853633            pThis->aOperands[0].enmLocation  = BS3CG1OPLOC_CTX_ZX_VLMAX;
     
    35873635            pThis->aOperands[2].enmLocation  = BS3CG1OPLOC_CTX;
    35883636            pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0;
    3589             pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0;
     3637            pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_HI96;
    35903638            pThis->aOperands[2].idxFieldBase = BS3CG1DST_XMM0_DW0;
    35913639            break;
     
    36033651            break;
    36043652
    3605         case BS3CG1ENC_VEX_MODRM_Vsd_WO_HdqCsd_Usd:
    3606             pThis->pfnEncoder        = Bs3Cg1EncodeNext_VEX_MODRM_VsomethingWO_HdqCsomething_Usomething_Lip_Wip_OR_ViceVersa;
     3653        case BS3CG1ENC_VEX_MODRM_Vsd_WO_HsdHi_Usd:
     3654            pThis->pfnEncoder        = Bs3Cg1EncodeNext_VEX_MODRM_VsomethingWO_Hsomething_Usomething_Lip_Wip_OR_ViceVersa;
    36073655            pThis->iRegOp            = 0;
    36083656            pThis->iRmOp             = 2;
    36093657            pThis->aOperands[0].cbOp = 16;
    3610             pThis->aOperands[1].cbOp = 16;
     3658            pThis->aOperands[1].cbOp = 8;
    36113659            pThis->aOperands[2].cbOp = 8;
    36123660            pThis->aOperands[0].enmLocation  = BS3CG1OPLOC_CTX_ZX_VLMAX;
     
    36143662            pThis->aOperands[2].enmLocation  = BS3CG1OPLOC_CTX;
    36153663            pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0;
    3616             pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0;
     3664            pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_HI;
    36173665            pThis->aOperands[2].idxFieldBase = BS3CG1DST_XMM0_LO;
    36183666            break;
    36193667
    3620         case BS3CG1ENC_VEX_MODRM_Vq_WO_HdqCq_UqHi:
     3668        case BS3CG1ENC_VEX_MODRM_Vq_WO_HqHi_UqHi:
    36213669            pThis->pfnEncoder        = Bs3Cg1EncodeNext_VEX_MODRM_VsomethingWO_HdqCsomething_Usomething_Wip_OR_ViceVersa;
    36223670            pThis->iRegOp            = 0;
    36233671            pThis->iRmOp             = 2;
    36243672            pThis->aOperands[0].cbOp = 16;
    3625             pThis->aOperands[1].cbOp = 16;
     3673            pThis->aOperands[1].cbOp = 8;
    36263674            pThis->aOperands[2].cbOp = 8;
    36273675            pThis->aOperands[0].enmLocation  = BS3CG1OPLOC_CTX_ZX_VLMAX;
     
    36293677            pThis->aOperands[2].enmLocation  = BS3CG1OPLOC_CTX;
    36303678            pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0;
    3631             pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0;
     3679            pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_HI;
    36323680            pThis->aOperands[2].idxFieldBase = BS3CG1DST_XMM0_HI;
    3633             break;
    3634 
    3635         case BS3CG1ENC_VEX_MODRM_Vq_WO_HdqCq_Mq:
    3636             pThis->pfnEncoder        = Bs3Cg1EncodeNext_VEX_MODRM_VsomethingWO_Hsomething_Msomething_Wip_OR_ViceVersa;
    3637             pThis->iRegOp            = 0;
    3638             pThis->iRmOp             = 2;
    3639             pThis->aOperands[0].cbOp = 16;
    3640             pThis->aOperands[1].cbOp = 16;
    3641             pThis->aOperands[2].cbOp = 8;
    3642             pThis->aOperands[0].enmLocation  = BS3CG1OPLOC_CTX_ZX_VLMAX;
    3643             pThis->aOperands[1].enmLocation  = BS3CG1OPLOC_CTX;
    3644             pThis->aOperands[2].enmLocation  = BS3CG1OPLOC_MEM;
    3645             pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0;
    3646             pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0;
    3647             pThis->aOperands[2].idxFieldBase = BS3CG1DST_INVALID;
    36483681            break;
    36493682
     
    36873720            break;
    36883721
    3689         case BS3CG1ENC_VEX_MODRM_Uss_WO_HdqCss_Vss:
    3690             pThis->pfnEncoder        = Bs3Cg1EncodeNext_VEX_MODRM_VsomethingWO_HdqCsomething_Usomething_Lip_Wip_OR_ViceVersa;
     3722        case BS3CG1ENC_VEX_MODRM_Uss_WO_HssHi_Vss:
     3723            pThis->pfnEncoder        = Bs3Cg1EncodeNext_VEX_MODRM_VsomethingWO_Hsomething_Usomething_Lip_Wip_OR_ViceVersa;
    36913724            pThis->iRegOp            = 2;
    36923725            pThis->iRmOp             = 0;
    36933726            pThis->aOperands[0].cbOp = 16;
    3694             pThis->aOperands[1].cbOp = 16;
     3727            pThis->aOperands[1].cbOp = 96;
    36953728            pThis->aOperands[2].cbOp = 4;
    36963729            pThis->aOperands[0].enmLocation  = BS3CG1OPLOC_CTX_ZX_VLMAX;
     
    36983731            pThis->aOperands[2].enmLocation  = BS3CG1OPLOC_CTX;
    36993732            pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0;
    3700             pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0;
     3733            pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_HI96;
    37013734            pThis->aOperands[2].idxFieldBase = BS3CG1DST_XMM0_DW0;
    37023735            break;
    37033736
    3704         case BS3CG1ENC_VEX_MODRM_Usd_WO_HdqCsd_Vsd:
    3705             pThis->pfnEncoder        = Bs3Cg1EncodeNext_VEX_MODRM_VsomethingWO_HdqCsomething_Usomething_Lip_Wip_OR_ViceVersa;
     3737        case BS3CG1ENC_VEX_MODRM_Usd_WO_HsdHi_Vsd:
     3738            pThis->pfnEncoder        = Bs3Cg1EncodeNext_VEX_MODRM_VsomethingWO_Hsomething_Usomething_Lip_Wip_OR_ViceVersa;
    37063739            pThis->iRegOp            = 2;
    37073740            pThis->iRmOp             = 0;
    37083741            pThis->aOperands[0].cbOp = 16;
    3709             pThis->aOperands[1].cbOp = 16;
     3742            pThis->aOperands[1].cbOp = 8;
    37103743            pThis->aOperands[2].cbOp = 8;
    37113744            pThis->aOperands[0].enmLocation  = BS3CG1OPLOC_CTX_ZX_VLMAX;
     
    37133746            pThis->aOperands[2].enmLocation  = BS3CG1OPLOC_CTX;
    37143747            pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0;
    3715             pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0;
     3748            pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_HI;
    37163749            pThis->aOperands[2].idxFieldBase = BS3CG1DST_XMM0_LO;
    37173750            break;
     
    44264459            /* Optimized access to XMM and STx registers. */
    44274460            if (   pThis->pExtCtx->enmMethod != BS3EXTCTXMETHOD_ANCIENT
    4428                 && offField - sizeof(BS3REGCTX) <= RT_UOFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[15]) )
     4461                && offField - sizeof(BS3REGCTX) < RT_UOFFSET_AFTER(BS3EXTCTX, Ctx.x87.aXMM[15]) )
    44294462                PtrField.pb = (uint8_t *)pThis->pExtCtx + offField - sizeof(BS3REGCTX);
    44304463            /* Non-register operands: */
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1.h

    r66935 r66937  
    6161    BS3CG1OP_Gv,
    6262    BS3CG1OP_Gv_RO,
    63     BS3CG1OP_HdqCss,
    64     BS3CG1OP_HdqCsd,
    65     BS3CG1OP_HdqCq,
     63    BS3CG1OP_HssHi,
     64    BS3CG1OP_HsdHi,
    6665    BS3CG1OP_HqHi,
    6766    BS3CG1OP_Nq,
     
    152151    BS3CG1ENC_VEX_MODRM_Vps_WO_Wps,
    153152    BS3CG1ENC_VEX_MODRM_Vpd_WO_Wpd,
    154     BS3CG1ENC_VEX_MODRM_Vss_WO_HdqCss_Uss,
    155     BS3CG1ENC_VEX_MODRM_Vsd_WO_HdqCsd_Usd,
    156     BS3CG1ENC_VEX_MODRM_Vq_WO_HdqCq_UqHi,
    157     BS3CG1ENC_VEX_MODRM_Vq_WO_HdqCq_Mq,
     153    BS3CG1ENC_VEX_MODRM_Vss_WO_HssHi_Uss,
     154    BS3CG1ENC_VEX_MODRM_Vsd_WO_HsdHi_Usd,
     155    BS3CG1ENC_VEX_MODRM_Vq_WO_HqHi_UqHi,
    158156    BS3CG1ENC_VEX_MODRM_Vq_WO_HqHi_Mq,
    159157    BS3CG1ENC_VEX_MODRM_VssZx_WO_Md,
     
    162160    BS3CG1ENC_VEX_MODRM_Md_WO_Vss,
    163161    BS3CG1ENC_VEX_MODRM_Mq_WO_Vsd,
    164     BS3CG1ENC_VEX_MODRM_Uss_WO_HdqCss_Vss,
    165     BS3CG1ENC_VEX_MODRM_Usd_WO_HdqCsd_Vsd,
     162    BS3CG1ENC_VEX_MODRM_Uss_WO_HssHi_Vss,
     163    BS3CG1ENC_VEX_MODRM_Usd_WO_HsdHi_Vsd,
    166164    BS3CG1ENC_VEX_MODRM_Wps_WO_Vps,
    167165    BS3CG1ENC_VEX_MODRM_Wpd_WO_Vpd,
     
    610608    BS3CG1DST_XMM14_DW0_ZX,
    611609    BS3CG1DST_XMM15_DW0_ZX,
     610    BS3CG1DST_XMM0_HI96,
     611    BS3CG1DST_XMM1_HI96,
     612    BS3CG1DST_XMM2_HI96,
     613    BS3CG1DST_XMM3_HI96,
     614    BS3CG1DST_XMM4_HI96,
     615    BS3CG1DST_XMM5_HI96,
     616    BS3CG1DST_XMM6_HI96,
     617    BS3CG1DST_XMM7_HI96,
     618    BS3CG1DST_XMM8_HI96,
     619    BS3CG1DST_XMM9_HI96,
     620    BS3CG1DST_XMM10_HI96,
     621    BS3CG1DST_XMM11_HI96,
     622    BS3CG1DST_XMM12_HI96,
     623    BS3CG1DST_XMM13_HI96,
     624    BS3CG1DST_XMM14_HI96,
     625    BS3CG1DST_XMM15_HI96,
    612626    /* AVX registers. */
    613627    BS3CG1DST_YMM0,
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