VirtualBox

Changeset 95459 in vbox


Ignore:
Timestamp:
Jun 30, 2022 12:42:30 PM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
152066
Message:

DIS: We only need one OP_CRC32 value. bugref:9898 bugref:6251

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/disopcode.h

    r95457 r95459  
    489489    OP_MOVBEGM,
    490490    OP_MOVBEMG,
    491     OP_CRC32GDEB,
    492     OP_CRC32GDEY,
     491    OP_CRC32,
    493492    OP_POPCNT,
    494493    OP_TZCNT,
  • trunk/src/VBox/Disassembler/DisasmTables.cpp

    r95457 r95459  
    15841584       it should be %Gd (always dword regardless of operand-size attribute), but from the description of the command
    15851585       it is clear that REX.W prefix can change this size to 64 bit, therefore it is set to %Gy. Seems to be a mistake. */
    1586     OP("crc32 %Gy,%Eb",   IDX_ParseModRM,   IDX_UseModRM,   0,   OP_CRC32GDEB,    OP_PARM_Gy,   OP_PARM_Eb,   OP_PARM_NONE,   DISOPTYPE_HARMLESS),
    1587     OP("crc32 %Gy,%Ey",   IDX_ParseModRM,   IDX_UseModRM,   0,   OP_CRC32GDEY,    OP_PARM_Gy,   OP_PARM_Ey,   OP_PARM_NONE,   DISOPTYPE_HARMLESS),
     1586    /** @todo r=bird: While the destination can be a 64-bit register, it is
     1587     *        always treated like a dword register given that the upper half is
     1588     *        always cleared.  So, it is really just a convenience for a more
     1589     *        natural syntax when using a 64-bit source register. */
     1590    OP("crc32 %Gy,%Eb",   IDX_ParseModRM,   IDX_UseModRM,   0,   OP_CRC32,    OP_PARM_Gy,   OP_PARM_Eb,   OP_PARM_NONE,   DISOPTYPE_HARMLESS),
     1591    OP("crc32 %Gy,%Ey",   IDX_ParseModRM,   IDX_UseModRM,   0,   OP_CRC32,    OP_PARM_Gy,   OP_PARM_Ey,   OP_PARM_NONE,   DISOPTYPE_HARMLESS),
    15881592    INVALID_OPCODE,
    15891593    INVALID_OPCODE,
     
    16071611       it should be %Gd (always dword regardless of operand-size attribute), but from the description of the command
    16081612       it is clear that REX.W prefix can change this size to 64 bit, therefore it is set to %Gy. Seems to be a mistake. */
    1609     OP("crc32 %Gy,%Eb",   IDX_ParseModRM,   IDX_UseModRM,   0,   OP_CRC32GDEB,    OP_PARM_Gy,   OP_PARM_Eb,   OP_PARM_NONE,   DISOPTYPE_HARMLESS),
    1610     OP("crc32 %Gy,%Ew",   IDX_ParseModRM,   IDX_UseModRM,   0,   OP_CRC32GDEY,    OP_PARM_Gy,   OP_PARM_Ew,   OP_PARM_NONE,   DISOPTYPE_HARMLESS),
     1613    OP("crc32 %Gy,%Eb",   IDX_ParseModRM,   IDX_UseModRM,   0,   OP_CRC32,    OP_PARM_Gy,   OP_PARM_Eb,   OP_PARM_NONE,   DISOPTYPE_HARMLESS),
     1614    OP("crc32 %Gy,%Ew",   IDX_ParseModRM,   IDX_UseModRM,   0,   OP_CRC32,    OP_PARM_Gy,   OP_PARM_Ew,   OP_PARM_NONE,   DISOPTYPE_HARMLESS),
    16111615    INVALID_OPCODE,
    16121616    INVALID_OPCODE,
Note: See TracChangeset for help on using the changeset viewer.

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