VirtualBox

vbox的更動 67098 路徑 trunk/src/VBox/ValidationKit


忽略:
時間撮記:
2017-5-25 下午10:16:27 (7 年 以前)
作者:
vboxsync
訊息:

bs3-cpu-generated-1: cleanups

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c

    r67097 r67098  
    16161616
    16171617
    1618 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_MODRM_Wps_WO_Vps__OR__MODRM_Wpd_WO_Vpd(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;
    1626         pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM1;
    1627     }
    1628     else if (iEncoding == 1)
    1629     {
    1630         pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM2;
    1631         off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
    1632         off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 2 /*iReg*/, 16, 0, BS3CG1OPLOC_MEM_WO);
    1633     }
    1634     else if (iEncoding == 2)
    1635     {
    1636         pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM3;
    1637         off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
    1638         off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 3 /*iReg*/, 16, 1 /*cbMisalign*/, BS3CG1OPLOC_MEM_WO);
    1639         if (!Bs3Cg1XcptTypeIsUnaligned(pThis->enmXcptType))
    1640             pThis->bAlignmentXcpt = X86_XCPT_GP;
    1641     }
    1642     else
    1643         return 0;
    1644     pThis->cbCurInstr = off;
    1645     return iEncoding + 1;
    1646 }
    1647 
    1648 
    16491618static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_MODRM_WqZxReg_WO_Vq(PBS3CG1STATE pThis, unsigned iEncoding)
    16501619{
     
    36573626    switch (pThis->enmEncoding)
    36583627    {
    3659         case BS3CG1ENC_MODRM_Wps_WO_Vps:
    3660         case BS3CG1ENC_MODRM_Wpd_WO_Vpd:
    3661             return Bs3Cg1EncodeNext_MODRM_Wps_WO_Vps__OR__MODRM_Wpd_WO_Vpd(pThis, iEncoding);
    36623628        case BS3CG1ENC_MODRM_WqZxReg_WO_Vq:
    36633629            return Bs3Cg1EncodeNext_MODRM_WqZxReg_WO_Vq(pThis, iEncoding);
     
    38843850        case BS3CG1ENC_MODRM_Wps_WO_Vps:
    38853851        case BS3CG1ENC_MODRM_Wpd_WO_Vpd:
    3886             pThis->iRmOp             = 0;
    3887             pThis->iRegOp            = 1;
    3888             pThis->aOperands[0].cbOp = 16;
    3889             pThis->aOperands[1].cbOp = 16;
    3890             pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;
    3891             pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;
     3852            pThis->pfnEncoder                   = Bs3Cg1EncodeNext_MODRM_Vsomething_Wsomething_OR_ViceVersa;
     3853            pThis->iRmOp                        = 0;
     3854            pThis->iRegOp                       = 1;
     3855            pThis->aOperands[0].cbOp            = 16;
     3856            pThis->aOperands[1].cbOp            = 16;
     3857            pThis->aOperands[0].idxFieldBase    = BS3CG1DST_XMM0;
     3858            pThis->aOperands[1].idxFieldBase    = BS3CG1DST_XMM0;
     3859            pThis->aOperands[0].enmLocationReg  = BS3CG1OPLOC_CTX;
     3860            pThis->aOperands[0].enmLocationMem  = BS3CG1OPLOC_MEM_WO;
     3861            pThis->aOperands[1].enmLocation     = BS3CG1OPLOC_CTX;
    38923862            break;
    38933863
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette