Changeset 67100 in vbox for trunk/src/VBox/ValidationKit
- Timestamp:
- May 25, 2017 10:27:30 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c
r67099 r67100 1671 1671 { 1672 1672 unsigned off; 1673 if (iEncoding == 0) 1674 { 1675 off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0)); 1676 pThis->abCurInstr[off++] = X86_MODRM_MAKE(3, 1, 0); 1677 pThis->aOperands[pThis->iRmOp ].idxField = BS3CG1DST_XMM0_LO; 1678 pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_MM1; 1679 } 1680 else if (iEncoding == 1) 1681 { 1682 off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0)); 1683 pThis->abCurInstr[off++] = X86_MODRM_MAKE(3, 6, 2); 1684 pThis->aOperands[pThis->iRmOp ].idxField = BS3CG1DST_XMM2_LO; 1685 pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_MM6; 1686 } 1687 else 1688 return 0; 1673 switch (iEncoding) 1674 { 1675 case 0: 1676 off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0)); 1677 off = Bs3Cg1InsertModRmWithRegFields(pThis, off, 1, 0); 1678 break; 1679 case 1: 1680 off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0)); 1681 off = Bs3Cg1InsertModRmWithRegFields(pThis, off, 6, 2); 1682 iEncoding += !BS3CG1_IS_64BIT_TARGET(pThis) ? 1 : 0; 1683 break; 1684 case 2: 1685 off = Bs3Cg1InsertReqPrefix(pThis, 0); 1686 pThis->abCurInstr[off++] = REX__RBX; 1687 off = Bs3Cg1InsertOpcodes(pThis, off); 1688 off = Bs3Cg1InsertModRmWithRegFields(pThis, off, 6 /*no+8*/, 2 + 8); 1689 break; 1690 default: 1691 return 0; 1692 } 1689 1693 pThis->cbCurInstr = off; 1690 1694 return iEncoding + 1; … … 3875 3879 3876 3880 case BS3CG1ENC_MODRM_Pq_WO_Uq: 3877 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Pq_WO_Uq; 3878 pThis->iRmOp = 1; 3879 pThis->iRegOp = 0; 3880 pThis->aOperands[0].cbOp = 8; 3881 pThis->aOperands[1].cbOp = 8; 3882 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3883 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3881 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Pq_WO_Uq; 3882 pThis->iRegOp = 0; 3883 pThis->iRmOp = 1; 3884 pThis->aOperands[0].cbOp = 8; 3885 pThis->aOperands[1].cbOp = 8; 3886 pThis->aOperands[0].idxFieldBase = BS3CG1DST_MM0; 3887 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_LO; 3888 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3889 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; /* reg only */ 3884 3890 break; 3885 3891
Note:
See TracChangeset
for help on using the changeset viewer.