VirtualBox
Show
Ignore:
Timestamp:
04/22/08 17:17:50 (9 months ago)
Author:
vboxsync
Message:

Updates for disassembling 64 bits instructions

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/include/VBox/disopcode.h

    r8155 r8299  
    5050#define OP_REPNE        4 
    5151#define OP_REPE         5 
    52 #define OP_LOCK         6   /* disassembler assumes this is the last prefix byte value!!!! */ 
    53 #define OP_AND          7 
    54 #define OP_OR           8 
    55 #define OP_DAA          9 
    56 #define OP_SUB          10 
    57 #define OP_DAS          11 
    58 #define OP_XOR          12 
    59 #define OP_AAA          13 
    60 #define OP_CMP          14 
    61 #define OP_IMM_GRP1     15 
    62 #define OP_AAS          16 
    63 #define OP_INC          17 
    64 #define OP_DEC          18 
    65 #define OP_PUSHA        19 
    66 #define OP_POPA         20 
    67 #define OP_BOUND        21 
    68 #define OP_ARPL         22 
    69 #define OP_PUSH         23 
    70 #define OP_POP          24 
    71 #define OP_IMUL         25 
    72 #define OP_INSB         26 
    73 #define OP_INSWD        27 
    74 #define OP_OUTSB        28 
    75 #define OP_OUTSWD       29 
    76 #define OP_JO           30 
    77 #define OP_JNO          31 
    78 #define OP_JC           32 
    79 #define OP_JNC          33 
    80 #define OP_JE           34 
    81 #define OP_JNE          35 
    82 #define OP_JBE          36 
    83 #define OP_JNBE         37 
    84 #define OP_JS           38 
    85 #define OP_JNS          39 
    86 #define OP_JP           40 
    87 #define OP_JNP          41 
    88 #define OP_JL           42 
    89 #define OP_JNL          43 
    90 #define OP_JLE          44 
    91 #define OP_JNLE         45 
    92 #define OP_ADD          46 
    93 #define OP_TEST         47 
    94 #define OP_XCHG         48 
    95 #define OP_MOV          49 
    96 #define OP_LEA          50 
    97 #define OP_NOP          51 
    98 #define OP_CBW          52 
    99 #define OP_CWD          53 
    100 #define OP_CALL         54 
    101 #define OP_WAIT         55 
    102 #define OP_PUSHF        56 
    103 #define OP_POPF         57 
    104 #define OP_SAHF         58 
    105 #define OP_LAHF         59 
    106 #define OP_MOVSB        60 
    107 #define OP_MOVSWD       61 
    108 #define OP_CMPSB        62 
    109 #define OP_CMPWD        63 
    110 #define OP_STOSB        64 
    111 #define OP_STOSWD       65 
    112 #define OP_LODSB        66 
    113 #define OP_LODSWD       67 
    114 #define OP_SCASB        68 
    115 #define OP_SCASWD       69 
    116 #define OP_SHIFT_GRP2   70 
    117 #define OP_RETN         71 
    118 #define OP_LES          72 
    119 #define OP_LDS          73 
    120 #define OP_ENTER        74 
    121 #define OP_LEAVE        75 
    122 #define OP_RETF         76 
    123 #define OP_INT3         77 
    124 #define OP_INT          78 
    125 #define OP_INTO         79 
    126 #define OP_IRET         80 
    127 #define OP_AAM          81 
    128 #define OP_AAD          82 
    129 #define OP_XLAT         83 
    130 #define OP_ESCF0        84 
    131 #define OP_ESCF1        85 
    132 #define OP_ESCF2        86 
    133 #define OP_ESCF3        87 
    134 #define OP_ESCF4        88 
    135 #define OP_ESCF5        89 
    136 #define OP_ESCF6        90 
    137 #define OP_ESCF7        91 
    138 #define OP_LOOPNE       92 
    139 #define OP_LOOPE        93 
    140 #define OP_LOOP         94 
    141 #define OP_JECXZ        95 
    142 #define OP_IN           96 
    143 #define OP_OUT          97 
    144 #define OP_JMP          98 
    145 #define OP_2B_ESC       99 
    146 #define OP_ADC          100 
    147 #define OP_SBB          101 
    148 #define OP_HLT          102 
    149 #define OP_CMC          103 
    150 #define OP_UNARY_GRP3   104 
    151 #define OP_CLC          105 
    152 #define OP_STC          106 
    153 #define OP_CLI          107 
    154 #define OP_STI          108 
    155 #define OP_CLD          109 
    156 #define OP_STD          110 
    157 #define OP_INC_GRP4     111 
    158 #define OP_IND_GRP5     112 
    159 #define OP_GRP6         113 
    160 #define OP_GRP7         114 
    161 #define OP_LAR          115 
    162 #define OP_LSL          116 
    163 #define OP_SYSCALL      117 
    164 #define OP_CLTS         118 
    165 #define OP_SYSRET       119 
    166 #define OP_INVD         120 
    167 #define OP_WBINVD       121 
    168 #define OP_ILLUD2       122 
    169 #define OP_FEMMS        123 
    170 #define OP_3DNOW        124 
    171 #define OP_MOVUPS       125 
    172 #define OP_MOVLPS       126 
    173 #define OP_UNPCKLPS     127 
    174 #define OP_MOVHPS       128 
    175 #define OP_UNPCKHPS     129 
    176 #define OP_PREFETCH_GRP16   130 
    177 #define OP_MOV_CR       131 
    178 #define OP_MOVAPS       132 
    179 #define OP_CVTPI2PS     133 
    180 #define OP_MOVNTPS      134 
    181 #define OP_CVTTPS2PI    135 
    182 #define OP_CVTPS2PI     136 
    183 #define OP_UCOMISS      137 
    184 #define OP_COMISS       138 
    185 #define OP_WRMSR        139 
    186 #define OP_RDTSC        140 
    187 #define OP_RDMSR        141 
    188 #define OP_RPPMC        142 
    189 #define OP_SYSENTER     143 
    190 #define OP_SYSEXIT      144 
    191 #define OP_PAUSE        145 
    192 #define OP_CMOVO        146 
    193 #define OP_CMOVNO       147 
    194 #define OP_CMOVC        148 
    195 #define OP_CMOVNC       149 
    196 #define OP_CMOVZ        150 
    197 #define OP_CMOVNZ       151 
    198 #define OP_CMOVBE       152 
    199 #define OP_CMOVNBE      153 
    200 #define OP_CMOVS        154 
    201 #define OP_CMOVNS       155 
    202 #define OP_CMOVP        156 
    203 #define OP_CMOVNP       157 
    204 #define OP_CMOVL        158 
    205 #define OP_CMOVNL       159 
    206 #define OP_CMOVLE       160 
    207 #define OP_CMOVNLE      161 
    208 #define OP_MOVMSKPS     162 
    209 #define OP_SQRTPS       163 
    210 #define OP_RSQRTPS      164 
    211 #define OP_RCPPS        165 
    212 #define OP_ANDPS        166 
    213 #define OP_ANDNPS       167 
    214 #define OP_ORPS         168 
    215 #define OP_XORPS        169 
    216 #define OP_ADDPS        170 
    217 #define OP_MULPS        171 
    218 #define OP_CVTPS2PD     172 
    219 #define OP_CVTDQ2PS     173 
    220 #define OP_SUBPS        174 
    221 #define OP_MINPS        175 
    222 #define OP_DIVPS        176 
    223 #define OP_MAXPS        177 
    224 #define OP_PUNPCKLBW    178 
    225 #define OP_PUNPCKLWD    179 
    226 #define OP_PUNPCKLDQ    180 
    227 #define OP_PACKSSWB     181 
    228 #define OP_PCMPGTB      182 
    229 #define OP_PCMPGTW      183 
    230 #define OP_PCMPGTD      184 
    231 #define OP_PACKUSWB     185 
    232 #define OP_PUNPCKHBW    186 
    233 #define OP_PUNPCKHWD    187 
    234 #define OP_PUNPCKHDQ    188 
    235 #define OP_PACKSSDW     189 
    236 #define OP_MOVD         190 
    237 #define OP_MOVQ         191 
    238 #define OP_PSHUFW       192 
    239  
    240  
     52#define OP_REX          6 
     53#define OP_LOCK         7   /* disassembler assumes this is the last prefix byte value!!!! */ 
     54#define OP_AND          8 
     55#define OP_OR           9 
     56#define OP_DAA          10 
     57#define OP_SUB          11 
     58#define OP_DAS          12 
     59#define OP_XOR          13 
     60#define OP_AAA          14 
     61#define OP_CMP          15 
     62#define OP_IMM_GRP1     16 
     63#define OP_AAS          17 
     64#define OP_INC          18 
     65#define OP_DEC          19 
     66#define OP_PUSHA        20 
     67#define OP_POPA         21 
     68#define OP_BOUND        22 
     69#define OP_ARPL         23 
     70#define OP_PUSH         24 
     71#define OP_POP          25 
     72#define OP_IMUL         26 
     73#define OP_INSB         27 
     74#define OP_INSWD        28 
     75#define OP_OUTSB        29 
     76#define OP_OUTSWD       30 
     77#define OP_JO           31 
     78#define OP_JNO          32 
     79#define OP_JC           33 
     80#define OP_JNC          34 
     81#define OP_JE           35 
     82#define OP_JNE          36 
     83#define OP_JBE          37 
     84#define OP_JNBE         38 
     85#define OP_JS           39 
     86#define OP_JNS          40 
     87#define OP_JP           41 
     88#define OP_JNP          42 
     89#define OP_JL           43 
     90#define OP_JNL          44 
     91#define OP_JLE          45 
     92#define OP_JNLE         46 
     93#define OP_ADD          47 
     94#define OP_TEST         48 
     95#define OP_XCHG         49 
     96#define OP_MOV          50 
     97#define OP_LEA          51 
     98#define OP_NOP          52 
     99#define OP_CBW          53 
     100#define OP_CWD          54 
     101#define OP_CALL         55 
     102#define OP_WAIT         56 
     103#define OP_PUSHF        57 
     104#define OP_POPF         58 
     105#define OP_SAHF         59 
     106#define OP_LAHF         60 
     107#define OP_MOVSB        61 
     108#define OP_MOVSWD       62 
     109#define OP_CMPSB        63 
     110#define OP_CMPWD        64 
     111#define OP_STOSB        65 
     112#define OP_STOSWD       66 
     113#define OP_LODSB        67 
     114#define OP_LODSWD       68 
     115#define OP_SCASB        69 
     116#define OP_SCASWD       70 
     117#define OP_SHIFT_GRP2   71 
     118#define OP_RETN         72 
     119#define OP_LES          73 
     120#define OP_LDS          74 
     121#define OP_ENTER        75 
     122#define OP_LEAVE        76 
     123#define OP_RETF         77 
     124#define OP_INT3         78 
     125#define OP_INT          79 
     126#define OP_INTO         80 
     127#define OP_IRET         81 
     128#define OP_AAM          82 
     129#define OP_AAD          83 
     130#define OP_XLAT         84 
     131#define OP_ESCF0        85 
     132#define OP_ESCF1        86 
     133#define OP_ESCF2        87 
     134#define OP_ESCF3        88 
     135#define OP_ESCF4        89 
     136#define OP_ESCF5        90 
     137#define OP_ESCF6        91 
     138#define OP_ESCF7        92 
     139#define OP_LOOPNE       93 
     140#define OP_LOOPE        94 
     141#define OP_LOOP         95 
     142#define OP_JECXZ        96 
     143#define OP_IN           97 
     144#define OP_OUT          98 
     145#define OP_JMP          99 
     146#define OP_2B_ESC       100 
     147#define OP_ADC          101 
     148#define OP_SBB          102 
     149#define OP_HLT          103 
     150#define OP_CMC          104 
     151#define OP_UNARY_GRP3   105 
     152#define OP_CLC          106 
     153#define OP_STC          107 
     154#define OP_CLI          108 
     155#define OP_STI          109 
     156#define OP_CLD          110 
     157#define OP_STD          111 
     158#define OP_INC_GRP4     112 
     159#define OP_IND_GRP5     113 
     160#define OP_GRP6         114 
     161#define OP_GRP7         115 
     162#define OP_LAR          116 
     163#define OP_LSL          117 
     164#define OP_SYSCALL      118 
     165#define OP_CLTS         119 
     166#define OP_SYSRET       120 
     167#define OP_INVD         121 
     168#define OP_WBINVD       122 
     169#define OP_ILLUD2       123 
     170#define OP_FEMMS        124 
     171#define OP_3DNOW        125 
     172#define OP_MOVUPS       126 
     173#define OP_MOVLPS       127 
     174#define OP_UNPCKLPS     128 
     175#define OP_MOVHPS       129 
     176#define OP_UNPCKHPS     130 
     177#define OP_PREFETCH_GRP16   131 
     178#define OP_MOV_CR       132 
     179#define OP_MOVAPS       133 
     180#define OP_CVTPI2PS     134 
     181#define OP_MOVNTPS      135 
     182#define OP_CVTTPS2PI    136 
     183#define OP_CVTPS2PI     137 
     184#define OP_UCOMISS      138 
     185#define OP_COMISS       139 
     186#define OP_WRMSR        140 
     187#define OP_RDTSC        141 
     188#define OP_RDMSR        142 
     189#define OP_RPPMC        143 
     190#define OP_SYSENTER     144 
     191#define OP_SYSEXIT      145 
     192#define OP_PAUSE        146 
     193#define OP_CMOVO        147 
     194#define OP_CMOVNO       148 
     195#define OP_CMOVC        149 
     196#define OP_CMOVNC       150 
     197#define OP_CMOVZ        151 
     198#define OP_CMOVNZ       152 
     199#define OP_CMOVBE       153 
     200#define OP_CMOVNBE      154 
     201#define OP_CMOVS        155 
     202#define OP_CMOVNS       156 
     203#define OP_CMOVP        157 
     204#define OP_CMOVNP       158 
     205#define OP_CMOVL        159 
     206#define OP_CMOVNL       160 
     207#define OP_CMOVLE       161 
     208#define OP_CMOVNLE      162 
     209#define OP_MOVMSKPS     163 
     210#define OP_SQRTPS       164 
     211#define OP_RSQRTPS      165 
     212#define OP_RCPPS        166 
     213#define OP_ANDPS        167 
     214#define OP_ANDNPS       168 
     215#define OP_ORPS         169 
     216#define OP_XORPS        170 
     217#define OP_ADDPS        171 
     218#define OP_MULPS        172 
     219#define OP_CVTPS2PD     173 
     220#define OP_CVTDQ2PS     174 
     221#define OP_SUBPS        175 
     222#define OP_MINPS        176 
     223#define OP_DIVPS        177 
     224#define OP_MAXPS        178 
     225#define OP_PUNPCKLBW    179 
     226#define OP_PUNPCKLWD    180 
     227#define OP_PUNPCKLDQ    181 
     228#define OP_PACKSSWB     182 
     229#define OP_PCMPGTB      183 
     230#define OP_PCMPGTW      184 
     231#define OP_PCMPGTD      185 
     232#define OP_PACKUSWB     186 
     233#define OP_PUNPCKHBW    187 
     234#define OP_PUNPCKHWD    188 
     235#define OP_PUNPCKHDQ    189 
     236#define OP_PACKSSDW     190 
     237#define OP_MOVD         191 
     238#define OP_MOVQ         192 
     239#define OP_PSHUFW       193 
    241240 
    242241#define OP_PCMPEQB      196 
     
    597596#define OP_VMPTRST      659 
    598597 
    599  
    600 /* 64 bits prefix bytes */ 
    601 #define OP_REX          0x40 
    602 #define OP_REX_B        0x41 
    603 #define OP_REX_X        0x42 
    604 #define OP_REX_XB       0x43 
    605 #define OP_REX_R        0x44 
    606 #define OP_REX_RB       0x45 
    607 #define OP_REX_RX       0x46 
    608 #define OP_REX_RXB      0x47 
    609 #define OP_REX_W        0x48 
    610 #define OP_REX_WB       0x49 
    611 #define OP_REX_WX       0x4A 
    612 #define OP_REX_WXB      0x4B 
    613 #define OP_REX_WR       0x4C 
    614 #define OP_REX_WRB      0x4D 
    615 #define OP_REX_WRX      0x4E 
    616 #define OP_REX_WRXB     0x4F 
     598/* 64 bits instruction */ 
     599#define OP_MOVSXD       700 
    617600 
    618601/** @} */ 
     
    623606 */ 
    624607/* NOTE: Register order is important for translations!! */ 
    625 #define OP_PARM_NONE   
    626 #define OP_PARM_REG_EAX
    627 #define OP_PARM_REG_GEN32_START   OP_PARM_REG_EAX 
    628 #define OP_PARM_REG_ECX
    629 #define OP_PARM_REG_EDX
    630 #define OP_PARM_REG_EBX
    631 #define OP_PARM_REG_ESP
    632 #define OP_PARM_REG_EBP
    633 #define OP_PARM_REG_ESI
    634 #define OP_PARM_REG_EDI
    635  
    636 #define OP_PARM_REG_ES 
     608#define OP_PARM_NONE           
     609#define OP_PARM_REG_EAX        
     610#define OP_PARM_REG_GEN32_START OP_PARM_REG_EAX 
     611#define OP_PARM_REG_ECX        
     612#define OP_PARM_REG_EDX        
     613#define OP_PARM_REG_EBX        
     614#define OP_PARM_REG_ESP        
     615#define OP_PARM_REG_EBP        
     616#define OP_PARM_REG_ESI        
     617#define OP_PARM_REG_EDI        
     618 
     619#define OP_PARM_REG_ES         
    637620#define OP_PARM_REG_SEG_START   OP_PARM_REG_ES 
    638 #define OP_PARM_REG_CS  10 
    639 #define OP_PARM_REG_SS  11 
    640 #define OP_PARM_REG_DS  12 
    641 #define OP_PARM_REG_FS  13 
    642 #define OP_PARM_REG_GS  14 
    643  
    644 #define OP_PARM_REG_AX  15 
     621#define OP_PARM_REG_CS          10 
     622#define OP_PARM_REG_SS          11 
     623#define OP_PARM_REG_DS          12 
     624#define OP_PARM_REG_FS          13 
     625#define OP_PARM_REG_GS          14 
     626 
     627#define OP_PARM_REG_AX          15 
    645628#define OP_PARM_REG_GEN16_START   OP_PARM_REG_AX 
    646 #define OP_PARM_REG_CX  16 
    647 #define OP_PARM_REG_DX  17 
    648 #define OP_PARM_REG_BX  18 
    649 #define OP_PARM_REG_SP  19 
    650 #define OP_PARM_REG_BP  20 
    651 #define OP_PARM_REG_SI  21 
    652 #define OP_PARM_REG_DI  22 
    653  
    654 #define OP_PARM_REG_AL  23 
    655 #define OP_PARM_REG_GEN8_START   OP_PARM_REG_AL 
    656 #define OP_PARM_REG_CL  24 
    657 #define OP_PARM_REG_DL  25 
    658 #define OP_PARM_REG_BL  26 
    659 #define OP_PARM_REG_AH  27 
    660 #define OP_PARM_REG_CH  28 
    661 #define OP_PARM_REG_DH  29 
    662 #define OP_PARM_REG_BH  30 
    663  
    664 #define OP_PARM_REGFP_0 31 
    665 #define OP_PARM_REG_FP_START   OP_PARM_REGFP_0 
    666 #define OP_PARM_REGFP_1 32 
    667 #define OP_PARM_REGFP_2 33 
    668 #define OP_PARM_REGFP_3 34 
    669 #define OP_PARM_REGFP_4 35 
    670 #define OP_PARM_REGFP_5 36 
    671 #define OP_PARM_REGFP_6 37 
    672 #define OP_PARM_REGFP_7 38 
    673  
    674 #define OP_PARM_NTA     39 
    675 #define OP_PARM_T0      40 
    676 #define OP_PARM_T1      41 
    677 #define OP_PARM_T2      42 
    678  
    679 #define OP_PARM_1       43 
    680  
    681 #define OP_PARM_VTYPE(a)    ((int)a & 0xFE0) 
    682 #define OP_PARM_VSUBTYPE(a) ((int)a & 0x01F) 
    683  
    684 #define OP_PARM_A       0x40 
    685 #define OP_PARM_VARIABLE OP_PARM_A 
    686 #define OP_PARM_E       0x60 
    687 #define OP_PARM_F       0x80 
    688 #define OP_PARM_G       0xA0 
    689 #define OP_PARM_I       0x100 
    690 #define OP_PARM_J       0x120 
    691 #define OP_PARM_M       0x140 
    692 #define OP_PARM_O       0x160 
    693 #define OP_PARM_Q       0x180 
    694 #define OP_PARM_R       0x1A0 
    695 #define OP_PARM_X       0x200 
    696 #define OP_PARM_Y       0x220 
     629#define OP_PARM_REG_CX          16 
     630#define OP_PARM_REG_DX          17 
     631#define OP_PARM_REG_BX          18 
     632#define OP_PARM_REG_SP          19 
     633#define OP_PARM_REG_BP          20 
     634#define OP_PARM_REG_SI          21 
     635#define OP_PARM_REG_DI          22 
     636 
     637#define OP_PARM_REG_AL          23 
     638#define OP_PARM_REG_GEN8_START  OP_PARM_REG_AL 
     639#define OP_PARM_REG_CL          24 
     640#define OP_PARM_REG_DL          25 
     641#define OP_PARM_REG_BL          26 
     642#define OP_PARM_REG_AH          27 
     643#define OP_PARM_REG_CH          28 
     644#define OP_PARM_REG_DH          29 
     645#define OP_PARM_REG_BH          30 
     646 
     647#define OP_PARM_REGFP_0         31 
     648#define OP_PARM_REG_FP_START    OP_PARM_REGFP_0 
     649#define OP_PARM_REGFP_1         32 
     650#define OP_PARM_REGFP_2         33 
     651#define OP_PARM_REGFP_3         34 
     652#define OP_PARM_REGFP_4         35 
     653#define OP_PARM_REGFP_5         36 
     654#define OP_PARM_REGFP_6         37 
     655#define OP_PARM_REGFP_7         38 
     656 
     657#define OP_PARM_NTA             39 
     658#define OP_PARM_T0              40 
     659#define OP_PARM_T1              41 
     660#define OP_PARM_T2              42 
     661 
     662#define OP_PARM_1               43 
     663 
     664#define OP_PARM_REX             50 
     665#define OP_PARM_REX_START       OP_PARM_REX 
     666#define OP_PARM_REX_B           51 
     667#define OP_PARM_REX_X           52 
     668#define OP_PARM_REX_XB          53 
     669#define OP_PARM_REX_R           54 
     670#define OP_PARM_REX_RB          55 
     671#define OP_PARM_REX_RX          56 
     672#define OP_PARM_REX_RXB         57 
     673#define OP_PARM_REX_W           58 
     674#define OP_PARM_REX_WB          59 
     675#define OP_PARM_REX_WX          60 
     676#define OP_PARM_REX_WXB         61 
     677#define OP_PARM_REX_WR          62 
     678#define OP_PARM_REX_WRB         63 
     679#define OP_PARM_REX_WRX         64 
     680#define OP_PARM_REX_WRXB        65 
     681 
     682#define OP_PARM_REG_RAX         100 
     683#define OP_PARM_REG_GEN64_START OP_PARM_REG_RAX 
     684#define OP_PARM_REG_RCX         101 
     685#define OP_PARM_REG_RDX         102 
     686#define OP_PARM_REG_RBX         103 
     687#define OP_PARM_REG_RSP         104 
     688#define OP_PARM_REG_RBP         105 
     689#define OP_PARM_REG_RSI         106 
     690#define OP_PARM_REG_RDI         107 
     691#define OP_PARM_REG_R8          108 
     692#define OP_PARM_REG_R9          109 
     693#define OP_PARM_REG_R10         110 
     694#define OP_PARM_REG_R11         111 
     695#define OP_PARM_REG_R12         112 
     696#define OP_PARM_REG_R13         113 
     697#define OP_PARM_REG_R14         114 
     698#define OP_PARM_REG_R15         115 
     699 
     700 
     701#define OP_PARM_VTYPE(a)        ((int)a & 0xFE0) 
     702#define OP_PARM_VSUBTYPE(a)     ((int)a & 0x01F) 
     703 
     704#define OP_PARM_A               0x100 
     705#define OP_PARM_VARIABLE        OP_PARM_A 
     706#define OP_PARM_E               0x120 
     707#define OP_PARM_F               0x140 
     708#define OP_PARM_G               0x160 
     709#define OP_PARM_I               0x180 
     710#define OP_PARM_J               0x1A0 
     711#define OP_PARM_M               0x1C0 
     712#define OP_PARM_O               0x1E0 
     713#define OP_PARM_Q               0x200 
     714#define OP_PARM_R               0x220 
     715#define OP_PARM_X               0x240 
     716#define OP_PARM_Y               0x260 
    697717 
    698718/* Grouped rare parameters for optimization purposes */ 
    699 #define IS_OP_PARM_RARE(a)   ((a & 0xF00) == 0x300) 
    700 #define OP_PARM_C       0x300 /* control register */ 
    701 #define OP_PARM_D       0x320 /* debug register */ 
    702 #define OP_PARM_S       0x340 /* segment register */ 
    703 #define OP_PARM_T       0x360 /* test register */ 
    704 #define OP_PARM_P       0x380 /* mmx register */ 
    705 #define OP_PARM_W       0x3A0 /* xmm register */ 
    706 #define OP_PARM_V       0x3C0 
    707  
    708 #define OP_PARM_NONE    0 
    709 #define OP_PARM_a       0x1 
    710 #define OP_PARM_b       0x2 
    711 #define OP_PARM_d       0x3 
    712 #define OP_PARM_dq      0x4 
    713 #define OP_PARM_p       0x5 
    714 #define OP_PARM_pd      0x6 
    715 #define OP_PARM_pi      0x7 
    716 #define OP_PARM_ps      0x8 
    717 #define OP_PARM_pq      0x9 
    718 #define OP_PARM_q       0xA 
    719 #define OP_PARM_s       0xB 
    720 #define OP_PARM_sd      0xC 
    721 #define OP_PARM_ss      0xD 
    722 #define OP_PARM_v       0xE 
    723 #define OP_PARM_w       0xF 
    724 #define OP_PARM_z       0x10 
    725  
    726  
    727 #define OP_PARM_Ap      (OP_PARM_A+OP_PARM_p) 
    728 #define OP_PARM_Cd      (OP_PARM_C+OP_PARM_d) 
    729 #define OP_PARM_Dd      (OP_PARM_D+OP_PARM_d) 
    730 #define OP_PARM_Eb      (OP_PARM_E+OP_PARM_b) 
    731 #define OP_PARM_Ed      (OP_PARM_E+OP_PARM_d) 
    732 #define OP_PARM_Ep      (OP_PARM_E+OP_PARM_p) 
    733 #define OP_PARM_Ev      (OP_PARM_E+OP_PARM_v) 
    734 #define OP_PARM_Ew      (OP_PARM_E+OP_PARM_w) 
    735 #define OP_PARM_Fv      (OP_PARM_F+OP_PARM_v) 
    736 #define OP_PARM_Gb      (OP_PARM_G+OP_PARM_b) 
    737 #define OP_PARM_Gd      (OP_PARM_G+OP_PARM_d) 
    738 #define OP_PARM_Gv      (OP_PARM_G+OP_PARM_v) 
    739 #define OP_PARM_Gw      (OP_PARM_G+OP_PARM_w) 
    740 #define OP_PARM_Ib      (OP_PARM_I+OP_PARM_b) 
    741 #define OP_PARM_Id      (OP_PARM_I+OP_PARM_d) 
    742 #define OP_PARM_Iq      (OP_PARM_I+OP_PARM_q) 
    743 #define OP_PARM_Iw      (OP_PARM_I+OP_PARM_w) 
    744 #define OP_PARM_Iv      (OP_PARM_I+OP_PARM_v) 
    745 #define OP_PARM_Iz      (OP_PARM_I+OP_PARM_z) 
    746 #define OP_PARM_Jb      (OP_PARM_J+OP_PARM_b) 
    747 #define OP_PARM_Jv      (OP_PARM_J+OP_PARM_v) 
    748 #define OP_PARM_Ma      (OP_PARM_M+OP_PARM_a) 
    749 #define OP_PARM_Mb      (OP_PARM_M+OP_PARM_b) 
    750 #define OP_PARM_Mw      (OP_PARM_M+OP_PARM_w) 
    751 #define OP_PARM_Md      (OP_PARM_M+OP_PARM_d) 
    752 #define OP_PARM_Mp      (OP_PARM_M+OP_PARM_p) 
    753 #define OP_PARM_Mq      (OP_PARM_M+OP_PARM_q) 
    754 #define OP_PARM_Ms      (OP_PARM_M+OP_PARM_s) 
    755 #define OP_PARM_Ob      (OP_PARM_O+OP_PARM_b) 
    756 #define OP_PARM_Ov      (OP_PARM_O+OP_PARM_v) 
    757 #define OP_PARM_Pq      (OP_PARM_P+OP_PARM_q) 
    758 #define OP_PARM_Pd      (OP_PARM_P+OP_PARM_d) 
    759 #define OP_PARM_Qd      (OP_PARM_Q+OP_PARM_d) 
    760 #define OP_PARM_Qq      (OP_PARM_Q+OP_PARM_q) 
    761 #define OP_PARM_Rd      (OP_PARM_R+OP_PARM_d) 
    762 #define OP_PARM_Rw      (OP_PARM_R+OP_PARM_w) 
    763 #define OP_PARM_Sw      (OP_PARM_S+OP_PARM_w) 
    764 #define OP_PARM_Td      (OP_PARM_T+OP_PARM_d) 
    765 #define OP_PARM_Vq      (OP_PARM_V+OP_PARM_q) 
    766 #define OP_PARM_Wq      (OP_PARM_W+OP_PARM_q) 
    767 #define OP_PARM_Ws      (OP_PARM_W+OP_PARM_s) 
    768 #define OP_PARM_Xb      (OP_PARM_X+OP_PARM_b) 
    769 #define OP_PARM_Xv      (OP_PARM_X+OP_PARM_v) 
    770 #define OP_PARM_Yb      (OP_PARM_Y+OP_PARM_b) 
    771 #define OP_PARM_Yv      (OP_PARM_Y+OP_PARM_v) 
    772  
    773  
    774 #define OP_PARM_Vps     (OP_PARM_V+OP_PARM_ps) 
    775 #define OP_PARM_Vss     (OP_PARM_V+OP_PARM_ss) 
    776 #define OP_PARM_Vpd     (OP_PARM_V+OP_PARM_pd) 
    777 #define OP_PARM_Vdq     (OP_PARM_V+OP_PARM_dq) 
    778 #define OP_PARM_Wps     (OP_PARM_W+OP_PARM_ps) 
    779 #define OP_PARM_Wpd     (OP_PARM_W+OP_PARM_pd) 
    780 #define OP_PARM_Wss     (OP_PARM_W+OP_PARM_ss) 
    781 #define OP_PARM_Wdq     (OP_PARM_W+OP_PARM_dq) 
    782 #define OP_PARM_Ppi     (OP_PARM_P+OP_PARM_pi) 
    783 #define OP_PARM_Qpi     (OP_PARM_Q+OP_PARM_pi) 
    784 #define OP_PARM_Qdq     (OP_PARM_Q+OP_PARM_dq) 
    785 #define OP_PARM_Vsd     (OP_PARM_V+OP_PARM_sd) 
    786 #define OP_PARM_Wsd     (OP_PARM_W+OP_PARM_sd) 
    787 #define OP_PARM_Vpq     (OP_PARM_V+OP_PARM_pq) 
    788 #define OP_PARM_Pdq     (OP_PARM_P+OP_PARM_dq) 
     719#define IS_OP_PARM_RARE(a)      ((a & 0xF00) == 0x300) 
     720#define OP_PARM_C               0x300       /* control register */ 
     721#define OP_PARM_D               0x320       /* debug register */ 
     722#define OP_PARM_S               0x340       /* segment register */ 
     723#define OP_PARM_T               0x360       /* test register */ 
     724#define OP_PARM_P               0x380       /* mmx register */ 
     725#define OP_PARM_W               0x3A0       /* xmm register */ 
     726#define OP_PARM_V               0x3C0 
     727 
     728#define OP_PARM_NONE            0 
     729#define OP_PARM_a               0x1 
     730#define OP_PARM_b               0x2 
     731#define OP_PARM_d               0x3 
     732#define OP_PARM_dq              0x4 
     733#define OP_PARM_p               0x5 
     734#define OP_PARM_pd              0x6 
     735#define OP_PARM_pi              0x7 
     736#define OP_PARM_ps              0x8 
     737#define OP_PARM_pq              0x9 
     738#define OP_PARM_q               0xA 
     739#define OP_PARM_s               0xB 
     740#define OP_PARM_sd              0xC 
     741#define OP_PARM_ss              0xD 
     742#define OP_PARM_v               0xE 
     743#define OP_PARM_w               0xF 
     744#define OP_PARM_z               0x10 
     745 
     746 
     747#define OP_PARM_Ap              (OP_PARM_A+OP_PARM_p) 
     748#define OP_PARM_Cd              (OP_PARM_C+OP_PARM_d) 
     749#define OP_PARM_Dd              (OP_PARM_D+OP_PARM_d) 
     750#define OP_PARM_Eb              (OP_PARM_E+OP_PARM_b) 
     751#define OP_PARM_Ed              (OP_PARM_E+OP_PARM_d) 
     752#define OP_PARM_Ep              (OP_PARM_E+OP_PARM_p) 
     753#define OP_PARM_Ev              (OP_PARM_E+OP_PARM_v) 
     754#define OP_PARM_Ew              (OP_PARM_E+OP_PARM_w) 
     755#define OP_PARM_Fv              (OP_PARM_F+OP_PARM_v) 
     756#define OP_PARM_Gb              (OP_PARM_G+OP_PARM_b) 
     757#define OP_PARM_Gd              (OP_PARM_G+OP_PARM_d) 
     758#define OP_PARM_Gv              (OP_PARM_G+OP_PARM_v) 
     759#define OP_PARM_Gw              (OP_PARM_G+OP_PARM_w) 
     760#define OP_PARM_Ib              (OP_PARM_I+OP_PARM_b) 
     761#define OP_PARM_Id              (OP_PARM_I+OP_PARM_d) 
     762#define OP_PARM_Iq              (OP_PARM_I+OP_PARM_q) 
     763#define OP_PARM_Iw              (OP_PARM_I+OP_PARM_w) 
     764#define OP_PARM_Iv              (OP_PARM_I+OP_PARM_v) 
     765#define OP_PARM_Iz              (OP_PARM_I+OP_PARM_z) 
     766#define OP_PARM_Jb              (OP_PARM_J+OP_PARM_b) 
     767#define OP_PARM_Jv              (OP_PARM_J+OP_PARM_v) 
     768#define OP_PARM_Ma              (OP_PARM_M+OP_PARM_a) 
     769#define OP_PARM_Mb              (OP_PARM_M+OP_PARM_b) 
     770#define OP_PARM_Mw              (OP_PARM_M+OP_PARM_w) 
     771#define OP_PARM_Md              (OP_PARM_M+OP_PARM_d) 
     772#define OP_PARM_Mp              (OP_PARM_M+OP_PARM_p) 
     773#define OP_PARM_Mq              (OP_PARM_M+OP_PARM_q) 
     774#define OP_PARM_Ms              (OP_PARM_M+OP_PARM_s) 
     775#define OP_PARM_Ob              (OP_PARM_O+OP_PARM_b) 
     776#define OP_PARM_Ov              (OP_PARM_O+OP_PARM_v) 
     777#define OP_PARM_Pq              (OP_PARM_P+OP_PARM_q) 
     778#define OP_PARM_Pd              (OP_PARM_P+OP_PARM_d) 
     779#define OP_PARM_Qd              (OP_PARM_Q+OP_PARM_d) 
     780#define OP_PARM_Qq              (OP_PARM_Q+OP_PARM_q) 
     781#define OP_PARM_Rd              (OP_PARM_R+OP_PARM_d) 
     782#define OP_PARM_Rw              (OP_PARM_R+OP_PARM_w) 
     783#define OP_PARM_Sw              (OP_PARM_S+OP_PARM_w) 
     784#define OP_PARM_Td              (OP_PARM_T+OP_PARM_d) 
     785#define OP_PARM_Vq              (OP_PARM_V+OP_PARM_q) 
     786#define OP_PARM_Wq              (OP_PARM_W+OP_PARM_q) 
     787#define OP_PARM_Ws              (OP_PARM_W+OP_PARM_s) 
     788#define OP_PARM_Xb              (OP_PARM_X+OP_PARM_b) 
     789#define OP_PARM_Xv              (OP_PARM_X+OP_PARM_v) 
     790#define OP_PARM_Yb              (OP_PARM_Y+OP_PARM_b) 
     791#define OP_PARM_Yv              (OP_PARM_Y+OP_PARM_v) 
     792 
     793#define OP_PARM_Vps             (OP_PARM_V+OP_PARM_ps) 
     794#define OP_PARM_Vss             (OP_PARM_V+OP_PARM_ss) 
     795#define OP_PARM_Vpd             (OP_PARM_V+OP_PARM_pd) 
     796#define OP_PARM_Vdq             (OP_PARM_V+OP_PARM_dq) 
     797#define OP_PARM_Wps             (OP_PARM_W+OP_PARM_ps) 
     798#define OP_PARM_Wpd             (OP_PARM_W+OP_PARM_pd) 
     799#define OP_PARM_Wss             (OP_PARM_W+OP_PARM_ss) 
     800#define OP_PARM_Wdq             (OP_PARM_W+OP_PARM_dq) 
     801#define OP_PARM_Ppi             (OP_PARM_P+OP_PARM_pi) 
     802#define OP_PARM_Qpi             (OP_PARM_Q+OP_PARM_pi) 
     803#define OP_PARM_Qdq             (OP_PARM_Q+OP_PARM_dq) 
     804#define OP_PARM_Vsd             (OP_PARM_V+OP_PARM_sd) 
     805#define OP_PARM_Wsd             (OP_PARM_W+OP_PARM_sd) 
     806#define OP_PARM_Vpq             (OP_PARM_V+OP_PARM_pq) 
     807#define OP_PARM_Pdq             (OP_PARM_P+OP_PARM_dq) 
    789808 
    790809/** @} */ 

© 2008 Sun Microsystems, Inc.
ContactPrivacy policy