VirtualBox

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


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

bs3-cpu-generated-1: cleanups

檔案:
修改 1 筆資料

圖例:

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

    r67099 r67100  
    16711671{
    16721672    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    }
    16891693    pThis->cbCurInstr = off;
    16901694    return iEncoding + 1;
     
    38753879
    38763880        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 */
    38843890            break;
    38853891
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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