Changeset 67097 in vbox for trunk/src/VBox/ValidationKit/bootsectors
- Timestamp:
- May 25, 2017 10:13:21 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 115760
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c
r67096 r67097 1616 1616 1617 1617 1618 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_MODRM_Wsd_WO_Vsd(PBS3CG1STATE pThis, unsigned iEncoding)1619 {1620 unsigned off;1621 if (iEncoding == 0)1622 {1623 off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));1624 pThis->abCurInstr[off++] = X86_MODRM_MAKE(3, 1, 0);1625 pThis->aOperands[pThis->iRmOp ].idxField = BS3CG1DST_XMM0_LO;1626 pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM1_LO;1627 }1628 else if (iEncoding == 1)1629 {1630 pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM2_LO;1631 off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));1632 off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 2 /*iReg*/, 8, 0, BS3CG1OPLOC_MEM_WO);1633 }1634 else if (iEncoding == 2)1635 {1636 pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM3_LO;1637 off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));1638 off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 3 /*iReg*/, 8, 1 /*cbMisalign*/, BS3CG1OPLOC_MEM_WO);1639 }1640 else1641 return 0;1642 pThis->cbCurInstr = off;1643 return iEncoding + 1;1644 }1645 1646 1647 1618 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_MODRM_Wps_WO_Vps__OR__MODRM_Wpd_WO_Vpd(PBS3CG1STATE pThis, unsigned iEncoding) 1648 1619 { … … 3686 3657 switch (pThis->enmEncoding) 3687 3658 { 3688 case BS3CG1ENC_MODRM_Wsd_WO_Vsd:3689 return Bs3Cg1EncodeNext_MODRM_Wsd_WO_Vsd(pThis, iEncoding);3690 3659 case BS3CG1ENC_MODRM_Wps_WO_Vps: 3691 3660 case BS3CG1ENC_MODRM_Wpd_WO_Vpd: … … 3892 3861 3893 3862 case BS3CG1ENC_MODRM_Wsd_WO_Vsd: 3863 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vsomething_Wsomething_OR_ViceVersa; 3864 pThis->iRmOp = 0; 3865 pThis->iRegOp = 1; 3866 pThis->aOperands[0].cbOp = 8; 3867 pThis->aOperands[1].cbOp = 8; 3868 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_LO; 3869 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_LO; 3870 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_WO; 3871 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX; 3872 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3873 break; 3874 3894 3875 case BS3CG1ENC_MODRM_WqZxReg_WO_Vq: 3895 3876 pThis->iRmOp = 0;
Note:
See TracChangeset
for help on using the changeset viewer.