Changeset 67096 in vbox for trunk/src/VBox/ValidationKit/bootsectors
- Timestamp:
- May 25, 2017 10:11:21 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 115759
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c
r67095 r67096 1616 1616 1617 1617 1618 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_MODRM_Wss_WO_Vss(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_DW0;1626 pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM1_DW0;1627 }1628 else if (iEncoding == 1)1629 {1630 pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM2_DW0;1631 off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));1632 off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 2 /*iReg*/, 4, 0, BS3CG1OPLOC_MEM_WO);1633 }1634 else if (iEncoding == 2)1635 {1636 pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM3_DW0;1637 off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));1638 off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 3 /*iReg*/, 4, 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_Wsd_WO_Vsd(PBS3CG1STATE pThis, unsigned iEncoding) 1648 1619 { … … 3715 3686 switch (pThis->enmEncoding) 3716 3687 { 3717 case BS3CG1ENC_MODRM_Wss_WO_Vss:3718 return Bs3Cg1EncodeNext_MODRM_Wss_WO_Vss(pThis, iEncoding);3719 3688 case BS3CG1ENC_MODRM_Wsd_WO_Vsd: 3720 3689 return Bs3Cg1EncodeNext_MODRM_Wsd_WO_Vsd(pThis, iEncoding); … … 3910 3879 3911 3880 case BS3CG1ENC_MODRM_Wss_WO_Vss: 3912 pThis->iRmOp = 0; 3913 pThis->iRegOp = 1; 3914 pThis->aOperands[0].cbOp = 4; 3915 pThis->aOperands[1].cbOp = 4; 3916 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3917 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3881 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vsomething_Wsomething_OR_ViceVersa; 3882 pThis->iRmOp = 0; 3883 pThis->iRegOp = 1; 3884 pThis->aOperands[0].cbOp = 4; 3885 pThis->aOperands[1].cbOp = 4; 3886 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_DW0; 3887 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_DW0; 3888 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_WO; 3889 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX; 3890 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3918 3891 break; 3919 3892
Note:
See TracChangeset
for help on using the changeset viewer.