VirtualBox

Changeset 96114 in vbox


Ignore:
Timestamp:
Aug 8, 2022 8:02:30 PM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
152916
Message:

Disassembler: Add individual opcode enums for the various [v]pmov{s,z}x* instruction variants as these are separate instructions (needed for the IEM emulation), bugref:9898

Location:
trunk
Files:
2 edited

Legend:

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

    r96006 r96114  
    429429    OP_PABSW,
    430430    OP_PABSD,
    431     OP_PMOVSX,
    432     OP_PMOVZX,
     431    OP_PMOVSXBW,
     432    OP_PMOVSXBD,
     433    OP_PMOVSXBQ,
     434    OP_PMOVSXWD,
     435    OP_PMOVSXWQ,
     436    OP_PMOVSXDQ,
     437    OP_PMOVZXBW,
     438    OP_PMOVZXBD,
     439    OP_PMOVZXBQ,
     440    OP_PMOVZXWD,
     441    OP_PMOVZXWQ,
     442    OP_PMOVZXDQ,
    433443    OP_PMULDQ,
    434444    OP_PMINSB,
     
    10051015    OP_VPMINUW,
    10061016    OP_VPMOVMSKB,
    1007     OP_VPMOVSX,
    1008     OP_VPMOVZX,
     1017    OP_VPMOVSXBW,
     1018    OP_VPMOVSXBD,
     1019    OP_VPMOVSXBQ,
     1020    OP_VPMOVSXWD,
     1021    OP_VPMOVSXWQ,
     1022    OP_VPMOVSXDQ,
     1023    OP_VPMOVZXBW,
     1024    OP_VPMOVZXBD,
     1025    OP_VPMOVZXBQ,
     1026    OP_VPMOVZXWD,
     1027    OP_VPMOVZXWQ,
     1028    OP_VPMOVZXDQ,
    10091029    OP_VPMULDQ,
    10101030    OP_VPMULHRSW,
  • trunk/src/VBox/Disassembler/DisasmTables.cpp

    r96006 r96114  
    14151415{
    14161416    /* 2 */
    1417     OP("pmovsxbw %Vdq,%Wq",         IDX_ParseModRM,    IDX_UseModRM,    0,          OP_PMOVSX    OP_PARM_Vdq,          OP_PARM_Wq,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
    1418     OP("pmovsxbd %Vdq,%Wd",         IDX_ParseModRM,    IDX_UseModRM,    0,          OP_PMOVSX    OP_PARM_Vdq,          OP_PARM_Wd,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
    1419     OP("pmovsxbq %Vdq,%Ww",         IDX_ParseModRM,    IDX_UseModRM,    0,          OP_PMOVSX    OP_PARM_Vdq,          OP_PARM_Ww,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
    1420     OP("pmovsxwd %Vdq,%Wq",         IDX_ParseModRM,    IDX_UseModRM,    0,          OP_PMOVSX    OP_PARM_Vdq,          OP_PARM_Wq,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
    1421     OP("pmovsxwq %Vdq,%Wd",         IDX_ParseModRM,    IDX_UseModRM,    0,          OP_PMOVSX    OP_PARM_Vdq,          OP_PARM_Wd,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
    1422     OP("pmovsxdq %Vdq,%Wq",         IDX_ParseModRM,    IDX_UseModRM,    0,          OP_PMOVSX    OP_PARM_Vdq,          OP_PARM_Wq,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
     1417    OP("pmovsxbw %Vdq,%Wq",         IDX_ParseModRM,    IDX_UseModRM,    0,          OP_PMOVSXBW,    OP_PARM_Vdq,          OP_PARM_Wq,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
     1418    OP("pmovsxbd %Vdq,%Wd",         IDX_ParseModRM,    IDX_UseModRM,    0,          OP_PMOVSXBD,    OP_PARM_Vdq,          OP_PARM_Wd,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
     1419    OP("pmovsxbq %Vdq,%Ww",         IDX_ParseModRM,    IDX_UseModRM,    0,          OP_PMOVSXBQ,    OP_PARM_Vdq,          OP_PARM_Ww,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
     1420    OP("pmovsxwd %Vdq,%Wq",         IDX_ParseModRM,    IDX_UseModRM,    0,          OP_PMOVSXBW,    OP_PARM_Vdq,          OP_PARM_Wq,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
     1421    OP("pmovsxwq %Vdq,%Wd",         IDX_ParseModRM,    IDX_UseModRM,    0,          OP_PMOVSXWQ,    OP_PARM_Vdq,          OP_PARM_Wd,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
     1422    OP("pmovsxdq %Vdq,%Wq",         IDX_ParseModRM,    IDX_UseModRM,    0,          OP_PMOVSXDQ,    OP_PARM_Vdq,          OP_PARM_Wq,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
    14231423    INVALID_OPCODE,
    14241424    INVALID_OPCODE,
     
    14371437{
    14381438    /* 3 */
    1439     OP("pmovzxbw %Vdq,%Wq",         IDX_ParseModRM,    IDX_UseModRM,     0,          OP_PMOVZX   OP_PARM_Vdq,          OP_PARM_Wq,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
    1440     OP("pmovzxbd %Vdq,%Wd",         IDX_ParseModRM,    IDX_UseModRM,     0,          OP_PMOVZX   OP_PARM_Vdq,          OP_PARM_Wd,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
    1441     OP("pmovzxbq %Vdq,%Ww",         IDX_ParseModRM,    IDX_UseModRM,     0,          OP_PMOVZX   OP_PARM_Vdq,          OP_PARM_Ww,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
    1442     OP("pmovzxwd %Vdq,%Wq",         IDX_ParseModRM,    IDX_UseModRM,     0,          OP_PMOVZX   OP_PARM_Vdq,          OP_PARM_Wq,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
    1443     OP("pmovzxwq %Vdq,%Wd",         IDX_ParseModRM,    IDX_UseModRM,     0,          OP_PMOVZX   OP_PARM_Vdq,          OP_PARM_Wd,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
    1444     OP("pmovzxdq %Vdq,%Wq",         IDX_ParseModRM,    IDX_UseModRM,     0,          OP_PMOVZX   OP_PARM_Vdq,          OP_PARM_Wq,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
     1439    OP("pmovzxbw %Vdq,%Wq",         IDX_ParseModRM,    IDX_UseModRM,     0,          OP_PMOVZXBW,   OP_PARM_Vdq,          OP_PARM_Wq,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
     1440    OP("pmovzxbd %Vdq,%Wd",         IDX_ParseModRM,    IDX_UseModRM,     0,          OP_PMOVZXBD,   OP_PARM_Vdq,          OP_PARM_Wd,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
     1441    OP("pmovzxbq %Vdq,%Ww",         IDX_ParseModRM,    IDX_UseModRM,     0,          OP_PMOVZXBQ,   OP_PARM_Vdq,          OP_PARM_Ww,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
     1442    OP("pmovzxwd %Vdq,%Wq",         IDX_ParseModRM,    IDX_UseModRM,     0,          OP_PMOVZXWD,   OP_PARM_Vdq,          OP_PARM_Wq,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
     1443    OP("pmovzxwq %Vdq,%Wd",         IDX_ParseModRM,    IDX_UseModRM,     0,          OP_PMOVZXWQ,   OP_PARM_Vdq,          OP_PARM_Wd,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
     1444    OP("pmovzxdq %Vdq,%Wq",         IDX_ParseModRM,    IDX_UseModRM,     0,          OP_PMOVZXDQ,   OP_PARM_Vdq,          OP_PARM_Wq,      OP_PARM_NONE,   DISOPTYPE_HARMLESS),
    14451445    INVALID_OPCODE,
    14461446    OP("pcmpgtq %Vdq,%Wdq",         IDX_ParseModRM,    IDX_UseModRM,     0,          OP_PCMPGTQ,    OP_PARM_Vdq,          OP_PARM_Wdq,     OP_PARM_NONE,   DISOPTYPE_HARMLESS),
     
    38863886
    38873887    /* 2 */
    3888     OPVEX("vpmovsxbw %Vx,%Wq",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVSX       OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3889     OPVEX("vpmovsxbd %Vx,%Wd",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVSX       OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3890     OPVEX("vpmovsxbq %Vx,%Ww",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVSX       OP_PARM_Vx,   OP_PARM_Ww,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3891     OPVEX("vpmovsxwd %Vx,%Wq",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVSX       OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3892     OPVEX("vpmovsxwq %Vx,%Wd",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVSX       OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3893     OPVEX("vpmovsxdq %Vx,%Wq",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVSX       OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3888    OPVEX("vpmovsxbw %Vx,%Wq",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVSXBW,       OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3889    OPVEX("vpmovsxbd %Vx,%Wd",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVSXBD,       OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3890    OPVEX("vpmovsxbq %Vx,%Ww",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVSXBQ,       OP_PARM_Vx,   OP_PARM_Ww,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3891    OPVEX("vpmovsxwd %Vx,%Wq",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVSXWD,       OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3892    OPVEX("vpmovsxwq %Vx,%Wd",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVSXWQ,       OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3893    OPVEX("vpmovsxdq %Vx,%Wq",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVSXDQ,       OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    38943894    INVALID_OPCODE,
    38953895    INVALID_OPCODE,
     
    39043904
    39053905    /* 3 */
    3906     OPVEX("vpmovzxbw %Vx,%Wq",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVZX       OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3907     OPVEX("vpmovzxbd %Vx,%Wd",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVZX       OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3908     OPVEX("vpmovzxbq %Vx,%Ww",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVZX       OP_PARM_Vx,   OP_PARM_Ww,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3909     OPVEX("vpmovzxwd %Vx,%Wq",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVZX       OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3910     OPVEX("vpmovzxwq %Vx,%Wd",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVZX       OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3911     OPVEX("vpmovzxdq %Vx,%Wq",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVZX       OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3906    OPVEX("vpmovzxbw %Vx,%Wq",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVZXBW,       OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3907    OPVEX("vpmovzxbd %Vx,%Wd",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVZXBD,       OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3908    OPVEX("vpmovzxbq %Vx,%Ww",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVZXBQ,       OP_PARM_Vx,   OP_PARM_Ww,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3909    OPVEX("vpmovzxwd %Vx,%Wq",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVZXWD,       OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3910    OPVEX("vpmovzxwq %Vx,%Wd",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVZXWQ,       OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3911    OPVEX("vpmovzxdq %Vx,%Wq",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVZXDQ,       OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    39123912    OPVEX("vpermd %Vqq,%Hqq,%Wqq",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPERMD,          OP_PARM_Vqq,  OP_PARM_Hqq,  OP_PARM_Wqq,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    39133913    OPVEX("vpcmpgtq %Vx,%Hx,%Wx",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPCMPGTQ,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
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