VirtualBox

Changeset 99220 in vbox for trunk/src/VBox/Devices


Ignore:
Timestamp:
Mar 30, 2023 12:40:46 PM (22 months ago)
Author:
vboxsync
Message:

Disassember,*: Start separating the disassembler into a architecture specific and common part, bugref:10394

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/BiosCommonCode/MakeAlternativeSource.cpp

    r99208 r99220  
    935935     *        modrm.reg != 0. Those encodings should be invalid AFAICT. */
    936936
    937     if (   (   pDis->bOpCode  == 0x8f            /* group 1a */
    938             || pDis->bOpCode  == 0xc7            /* group 11 */
    939             || pDis->bOpCode  == 0xc6            /* group 11 - not verified */
     937    if (   (   pDis->arch.x86.bOpCode  == 0x8f            /* group 1a */
     938            || pDis->arch.x86.bOpCode  == 0xc7            /* group 11 */
     939            || pDis->arch.x86.bOpCode  == 0xc6            /* group 11 - not verified */
    940940           )
    941         && pDis->ModRM.Bits.Reg != 0)
     941        && pDis->arch.x86.ModRM.Bits.Reg != 0)
    942942        fDifferent = true;
    943943    /*
     
    999999            cbToRead = g_cbImg - offBios;
    10001000    }
    1001     memcpy(&pDis->abInstr[offInstr], &g_pbImg[offBios], cbToRead);
     1001    memcpy(&pDis->u.abInstr[offInstr], &g_pbImg[offBios], cbToRead);
    10021002    pDis->cbCachedInstr = (uint8_t)(offInstr + cbToRead);
    10031003    return VINF_SUCCESS;
     
    11381138            unsigned cbInstr;
    11391139            DISSTATE Dis;
    1140             Dis.ModRM.Bits.Mod = 3;
     1140            Dis.arch.x86.ModRM.Bits.Mod = 3;
    11411141            int rc = DISInstrWithReader(uFlatAddr, fIs16Bit ? DISCPUMODE_16BIT : DISCPUMODE_32BIT,
    11421142                                        disReadOpcodeBytes, NULL, &Dis, &cbInstr);
     
    11461146                && Dis.pCurInstr->uOpcode != OP_INVALID
    11471147                && Dis.pCurInstr->uOpcode != OP_ILLUD2
    1148                 && (   !(Dis.fPrefix & DISPREFIX_ADDRSIZE)
     1148                && (   !(Dis.arch.x86.fPrefix & DISPREFIX_ADDRSIZE)
    11491149                    || disAccessesMemory(&Dis)))
    11501150            {
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