VirtualBox

Changeset 103190 in vbox for trunk/src/VBox/VMM/include


Ignore:
Timestamp:
Feb 4, 2024 11:26:35 PM (14 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
161455
Message:

VMM/IEMAllInst*: Liveness analysis, part 3: Flag input & modification annotations. bugref:10372

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/IEMInternal.h

    r103182 r103190  
    20652065/** ModR/M: reg, r/m (memory)   */
    20662066#define IEMOPFORM_RM_MEM        (IEMOPFORM_RM | IEMOPFORM_NOT_MOD3)
    2067 /** ModR/M: reg, r/m */
     2067/** ModR/M: reg, r/m, imm */
    20682068#define IEMOPFORM_RMI           1
    2069 /** ModR/M: reg, r/m (register) */
     2069/** ModR/M: reg, r/m (register), imm */
    20702070#define IEMOPFORM_RMI_REG       (IEMOPFORM_RM | IEMOPFORM_MOD3)
    2071 /** ModR/M: reg, r/m (memory)   */
     2071/** ModR/M: reg, r/m (memory), imm   */
    20722072#define IEMOPFORM_RMI_MEM       (IEMOPFORM_RM | IEMOPFORM_NOT_MOD3)
    20732073/** ModR/M: r/m, reg */
     
    20772077/** ModR/M: r/m (memory), reg */
    20782078#define IEMOPFORM_MR_MEM        (IEMOPFORM_MR | IEMOPFORM_NOT_MOD3)
    2079 /** ModR/M: r/m, reg */
     2079/** ModR/M: r/m, reg, imm */
    20802080#define IEMOPFORM_MRI           3
    2081 /** ModR/M: r/m (register), reg */
     2081/** ModR/M: r/m (register), reg, imm */
    20822082#define IEMOPFORM_MRI_REG       (IEMOPFORM_MR | IEMOPFORM_MOD3)
    2083 /** ModR/M: r/m (memory), reg */
     2083/** ModR/M: r/m (memory), reg, imm */
    20842084#define IEMOPFORM_MRI_MEM       (IEMOPFORM_MR | IEMOPFORM_NOT_MOD3)
    20852085/** ModR/M: r/m only */
     
    20892089/** ModR/M: r/m only (memory). */
    20902090#define IEMOPFORM_M_MEM         (IEMOPFORM_M | IEMOPFORM_NOT_MOD3)
     2091/** ModR/M: r/m, imm */
     2092#define IEMOPFORM_MI            5
     2093/** ModR/M: r/m (register), imm */
     2094#define IEMOPFORM_MI_REG        (IEMOPFORM_MI | IEMOPFORM_MOD3)
     2095/** ModR/M: r/m (memory), imm */
     2096#define IEMOPFORM_MI_MEM        (IEMOPFORM_MI | IEMOPFORM_NOT_MOD3)
     2097/** ModR/M: r/m, 1  (shift and rotate instructions) */
     2098#define IEMOPFORM_M1            6
     2099/** ModR/M: r/m (register), 1. */
     2100#define IEMOPFORM_M1_REG        (IEMOPFORM_M1 | IEMOPFORM_MOD3)
     2101/** ModR/M: r/m (memory), 1. */
     2102#define IEMOPFORM_M1_MEM        (IEMOPFORM_M1 | IEMOPFORM_NOT_MOD3)
     2103/** ModR/M: r/m, CL  (shift and rotate instructions)
     2104 * @todo This should just've been a generic fixed register. But the python
     2105 *       code doesn't needs more convincing. */
     2106#define IEMOPFORM_M_CL          7
     2107/** ModR/M: r/m (register), CL. */
     2108#define IEMOPFORM_M_CL_REG      (IEMOPFORM_M_CL | IEMOPFORM_MOD3)
     2109/** ModR/M: r/m (memory), CL. */
     2110#define IEMOPFORM_M_CL_MEM      (IEMOPFORM_M_CL | IEMOPFORM_NOT_MOD3)
    20912111/** ModR/M: reg only */
    2092 #define IEMOPFORM_R             5
     2112#define IEMOPFORM_R             8
    20932113
    20942114/** VEX+ModR/M: reg, r/m */
    2095 #define IEMOPFORM_VEX_RM        8
     2115#define IEMOPFORM_VEX_RM        16
    20962116/** VEX+ModR/M: reg, r/m (register) */
    20972117#define IEMOPFORM_VEX_RM_REG    (IEMOPFORM_VEX_RM | IEMOPFORM_MOD3)
     
    20992119#define IEMOPFORM_VEX_RM_MEM    (IEMOPFORM_VEX_RM | IEMOPFORM_NOT_MOD3)
    21002120/** VEX+ModR/M: r/m, reg */
    2101 #define IEMOPFORM_VEX_MR        9
     2121#define IEMOPFORM_VEX_MR        17
    21022122/** VEX+ModR/M: r/m (register), reg */
    21032123#define IEMOPFORM_VEX_MR_REG    (IEMOPFORM_VEX_MR | IEMOPFORM_MOD3)
     
    21052125#define IEMOPFORM_VEX_MR_MEM    (IEMOPFORM_VEX_MR | IEMOPFORM_NOT_MOD3)
    21062126/** VEX+ModR/M: r/m only */
    2107 #define IEMOPFORM_VEX_M         10
     2127#define IEMOPFORM_VEX_M         18
    21082128/** VEX+ModR/M: r/m only (register). */
    21092129#define IEMOPFORM_VEX_M_REG     (IEMOPFORM_VEX_M | IEMOPFORM_MOD3)
     
    21112131#define IEMOPFORM_VEX_M_MEM     (IEMOPFORM_VEX_M | IEMOPFORM_NOT_MOD3)
    21122132/** VEX+ModR/M: reg only */
    2113 #define IEMOPFORM_VEX_R         11
     2133#define IEMOPFORM_VEX_R         19
    21142134/** VEX+ModR/M: reg, vvvv, r/m */
    2115 #define IEMOPFORM_VEX_RVM       12
     2135#define IEMOPFORM_VEX_RVM       20
    21162136/** VEX+ModR/M: reg, vvvv, r/m (register). */
    21172137#define IEMOPFORM_VEX_RVM_REG   (IEMOPFORM_VEX_RVM | IEMOPFORM_MOD3)
     
    21192139#define IEMOPFORM_VEX_RVM_MEM   (IEMOPFORM_VEX_RVM | IEMOPFORM_NOT_MOD3)
    21202140/** VEX+ModR/M: reg, r/m, vvvv */
    2121 #define IEMOPFORM_VEX_RMV       13
     2141#define IEMOPFORM_VEX_RMV       21
    21222142/** VEX+ModR/M: reg, r/m, vvvv (register). */
    21232143#define IEMOPFORM_VEX_RMV_REG   (IEMOPFORM_VEX_RMV | IEMOPFORM_MOD3)
     
    21252145#define IEMOPFORM_VEX_RMV_MEM   (IEMOPFORM_VEX_RMV | IEMOPFORM_NOT_MOD3)
    21262146/** VEX+ModR/M: reg, r/m, imm8 */
    2127 #define IEMOPFORM_VEX_RMI       14
     2147#define IEMOPFORM_VEX_RMI       22
    21282148/** VEX+ModR/M: reg, r/m, imm8 (register). */
    21292149#define IEMOPFORM_VEX_RMI_REG   (IEMOPFORM_VEX_RMI | IEMOPFORM_MOD3)
     
    21312151#define IEMOPFORM_VEX_RMI_MEM   (IEMOPFORM_VEX_RMI | IEMOPFORM_NOT_MOD3)
    21322152/** VEX+ModR/M: r/m, vvvv, reg */
    2133 #define IEMOPFORM_VEX_MVR       15
     2153#define IEMOPFORM_VEX_MVR       23
    21342154/** VEX+ModR/M: r/m, vvvv, reg (register) */
    21352155#define IEMOPFORM_VEX_MVR_REG   (IEMOPFORM_VEX_MVR | IEMOPFORM_MOD3)
     
    21372157#define IEMOPFORM_VEX_MVR_MEM   (IEMOPFORM_VEX_MVR | IEMOPFORM_NOT_MOD3)
    21382158/** VEX+ModR/M+/n: vvvv, r/m */
    2139 #define IEMOPFORM_VEX_VM        16
     2159#define IEMOPFORM_VEX_VM        24
    21402160/** VEX+ModR/M+/n: vvvv, r/m (register) */
    21412161#define IEMOPFORM_VEX_VM_REG    (IEMOPFORM_VEX_VM | IEMOPFORM_MOD3)
     
    21432163#define IEMOPFORM_VEX_VM_MEM    (IEMOPFORM_VEX_VM | IEMOPFORM_NOT_MOD3)
    21442164/** VEX+ModR/M+/n: vvvv, r/m, imm8 */
    2145 #define IEMOPFORM_VEX_VMI       17
     2165#define IEMOPFORM_VEX_VMI       25
    21462166/** VEX+ModR/M+/n: vvvv, r/m, imm8 (register) */
    21472167#define IEMOPFORM_VEX_VMI_REG   (IEMOPFORM_VEX_VMI | IEMOPFORM_MOD3)
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