VirtualBox

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


忽略:
時間撮記:
2017-5-19 下午12:23:32 (8 年 以前)
作者:
vboxsync
訊息:

IEM: Implemented vmovapd Vpd,Wpd (VEX.66.28).

位置:
trunk/src/VBox/ValidationKit/bootsectors
檔案:
修改 3 筆資料

圖例:

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

    r66968 r66976  
    317317                else:
    318318                    raise Exception('Unhandled sSubOpcode=%s for sInvalidStyle=%s' % (oInstr.sSubOpcode, oInstr.sInvalidStyle));
     319            elif oInstr.sInvalidStyle == 'vex.modrm':
     320                self.sEncoding = 'BS3CG1ENC_VEX_MODRM';
    319321
    320322        self.asFlags            = [];
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c

    r66974 r66976  
    20492049        off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
    20502050        pThis->cbCurInstr = off;
    2051         iEncoding++;
    20522051    }
    20532052    else
     
    33433342
    33443343
     3344//static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_VEX_FIXED(PBS3CG1STATE pThis, unsigned iEncoding)
     3345//{
     3346//    unsigned off;
     3347//    if (iEncoding == 0)
     3348//        off = Bs3Cg1InsertVex2bPrefix(pThis, 0 /*offDst*/, 0xf /*~V*/, 0 /*L*/, 1 /*~R*/);
     3349//    else if (iEncoding == 0)
     3350//        off = Bs3Cg1InsertVex3bPrefix(pThis, 0 /*offDst*/, 0xf /*~V*/, 0 /*L*/, 1 /*~R*/, 1 /*~X*/, 1 /*~B*/, 0 /*W*/);
     3351//    else
     3352//        return 0;
     3353//    pThis->cbCurInstr = off;
     3354//    return iEncoding + 1;
     3355//}
     3356
     3357
    33453358static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_VEX_MODRM_MOD_EQ_3(PBS3CG1STATE pThis, unsigned iEncoding)
    33463359{
     
    34203433    pThis->cbCurInstr = off;
    34213434    return iEncoding + 1;
     3435}
     3436
     3437
     3438static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_VEX_MODRM(PBS3CG1STATE pThis, unsigned iEncoding)
     3439{
     3440    const unsigned cFirstEncodings = 32;
     3441    if (iEncoding < cFirstEncodings)
     3442    {
     3443        unsigned iRet = Bs3Cg1EncodeNext_VEX_MODRM_MOD_EQ_3(pThis, iEncoding);
     3444        BS3_ASSERT(iRet > iEncoding);
     3445        return iRet;
     3446    }
     3447    return Bs3Cg1EncodeNext_VEX_MODRM_MOD_NE_3(pThis, iEncoding - cFirstEncodings) + cFirstEncodings;
    34223448}
    34233449
     
    39583984
    39593985            /* Unused or invalid instructions mostly. */
     3986        //case BS3CG1ENC_VEX_FIXED:
     3987        //    pThis->pfnEncoder = Bs3Cg1EncodeNext_VEX_FIXED;
     3988        //    break;
    39603989        case BS3CG1ENC_VEX_MODRM_MOD_EQ_3:
    39613990            pThis->pfnEncoder = Bs3Cg1EncodeNext_VEX_MODRM_MOD_EQ_3;
     
    39633992        case BS3CG1ENC_VEX_MODRM_MOD_NE_3:
    39643993            pThis->pfnEncoder = Bs3Cg1EncodeNext_VEX_MODRM_MOD_NE_3;
     3994            break;
     3995        case BS3CG1ENC_VEX_MODRM:
     3996            pThis->pfnEncoder = Bs3Cg1EncodeNext_VEX_MODRM;
    39653997            break;
    39663998
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1.h

    r66968 r66976  
    176176    BS3CG1ENC_MODRM_MOD_EQ_3, /**< Unused or invalid instruction. */
    177177    BS3CG1ENC_MODRM_MOD_NE_3, /**< Unused or invalid instruction. */
     178    //BS3CG1ENC_VEX_FIXED,          /**< Unused or invalid instruction. */
    178179    BS3CG1ENC_VEX_MODRM_MOD_EQ_3, /**< Unused or invalid instruction. */
    179180    BS3CG1ENC_VEX_MODRM_MOD_NE_3, /**< Unused or invalid instruction. */
     181    BS3CG1ENC_VEX_MODRM,          /**< Unused or invalid instruction. */
    180182
    181183    BS3CG1ENC_END
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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