VirtualBox

Changeset 67085 in vbox for trunk/src/VBox/ValidationKit


Ignore:
Timestamp:
May 25, 2017 11:13:44 AM (8 years ago)
Author:
vboxsync
Message:

bs3-cpu-generated-1: cleanups

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c

    r67084 r67085  
    21612161
    21622162
    2163 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_MODRM_Vps_WO_Wps__OR__MODRM_Vpd_WO_Wpd(PBS3CG1STATE pThis,
    2164                                                                                                           unsigned iEncoding)
    2165 {
    2166     unsigned off;
    2167     if (iEncoding == 0)
    2168     {
    2169         off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
    2170         pThis->abCurInstr[off++] = X86_MODRM_MAKE(3, 1, 0);
    2171         pThis->aOperands[pThis->iRmOp ].idxField = BS3CG1DST_XMM0;
    2172         pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM1;
    2173     }
    2174     else if (iEncoding == 1)
    2175     {
    2176         pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM2;
    2177         off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
    2178         off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 2 /*iReg*/, 16, 0, BS3CG1OPLOC_MEM);
    2179     }
    2180     else if (iEncoding == 2)
    2181     {
    2182         pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM3;
    2183         off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
    2184         off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 3 /*iReg*/, 16, 1 /*cbMisalign*/, BS3CG1OPLOC_MEM);
    2185         if (!Bs3Cg1XcptTypeIsUnaligned(pThis->enmXcptType))
    2186             pThis->bAlignmentXcpt = X86_XCPT_GP;
    2187     }
    2188     else
    2189         return 0;
    2190     pThis->cbCurInstr = off;
    2191     return iEncoding + 1;
    2192 }
    2193 
    2194 
    21952163static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_MODRM_Vsomething_Wsomething_OR_ViceVersa(PBS3CG1STATE pThis, unsigned iEncoding)
    21962164{
     
    38363804        case BS3CG1ENC_MODRM_VqHi_WO_Mq:
    38373805            return Bs3Cg1EncodeNext_MODRM_VqHi_WO_Mq(pThis, iEncoding);
    3838         case BS3CG1ENC_MODRM_Vpd_WO_Wpd:
    3839         case BS3CG1ENC_MODRM_Vps_WO_Wps:
    3840             return Bs3Cg1EncodeNext_MODRM_Vps_WO_Wps__OR__MODRM_Vpd_WO_Wpd(pThis, iEncoding);
    38413806
    38423807        case BS3CG1ENC_FIXED:
     
    40574022        case BS3CG1ENC_MODRM_Vpd_WO_Wpd:
    40584023        case BS3CG1ENC_MODRM_Vps_WO_Wps:
    4059             pThis->iRmOp             = 1;
    4060             pThis->iRegOp            = 0;
    4061             pThis->aOperands[0].cbOp = 16;
    4062             pThis->aOperands[1].cbOp = 16;
    4063             pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;
    4064             pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;
     4024            pThis->pfnEncoder                   = Bs3Cg1EncodeNext_MODRM_Vsomething_Wsomething_OR_ViceVersa;
     4025            pThis->iRegOp                       = 0;
     4026            pThis->iRmOp                        = 1;
     4027            pThis->aOperands[0].cbOp            = 16;
     4028            pThis->aOperands[1].cbOp            = 16;
     4029            pThis->aOperands[0].idxFieldBase    = BS3CG1DST_XMM0;
     4030            pThis->aOperands[1].idxFieldBase    = BS3CG1DST_XMM0;
     4031            pThis->aOperands[0].enmLocation     = BS3CG1OPLOC_CTX;
     4032            pThis->aOperands[1].enmLocationReg  = BS3CG1OPLOC_CTX;
     4033            pThis->aOperands[1].enmLocationMem  = BS3CG1OPLOC_MEM;
    40654034            break;
    40664035
Note: See TracChangeset for help on using the changeset viewer.

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