duran 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +20 -0
- data/README.rdoc +11 -0
- data/Rakefile +29 -0
- data/VERSION +1 -0
- data/client_src/dr_include/dr_api.h +102 -0
- data/client_src/dr_include/dr_app.h +92 -0
- data/client_src/dr_include/dr_config.h +650 -0
- data/client_src/dr_include/dr_defines.h +391 -0
- data/client_src/dr_include/dr_events.h +1057 -0
- data/client_src/dr_include/dr_ir_instr.h +1214 -0
- data/client_src/dr_include/dr_ir_instrlist.h +149 -0
- data/client_src/dr_include/dr_ir_macros.h +2426 -0
- data/client_src/dr_include/dr_ir_opcodes.h +768 -0
- data/client_src/dr_include/dr_ir_opnd.h +1170 -0
- data/client_src/dr_include/dr_ir_utils.h +708 -0
- data/client_src/dr_include/dr_proc.h +327 -0
- data/client_src/dr_include/dr_tools.h +1304 -0
- data/client_src/duran.c +57 -0
- data/client_src/extconf.rb +28 -0
- data/lib/duran.rb +18 -0
- data/lib/duran/app.rb +8 -0
- data/lib/duran/defines.rb +39 -0
- data/lib/duran/events.rb +156 -0
- data/lib/duran/ir_opcodes.rb +616 -0
- data/lib/duran/ir_opnd.rb +329 -0
- data/lib/duran/ir_utils.rb +133 -0
- data/lib/duran/proc.rb +49 -0
- data/lib/duran/structs.rb +20 -0
- data/lib/duran/structs/exception.rb +23 -0
- data/lib/duran/structs/fault_fragment_info.rb +34 -0
- data/lib/duran/structs/instruction.rb +15 -0
- data/lib/duran/structs/machine_context.rb +80 -0
- data/lib/duran/structs/memory_info.rb +12 -0
- data/lib/duran/structs/module_data.rb +61 -0
- data/lib/duran/structs/module_names.rb +24 -0
- data/lib/duran/structs/operand.rb +15 -0
- data/lib/duran/structs/restore_state_info.rb +30 -0
- data/lib/duran/structs/signal_info.rb +41 -0
- data/lib/duran/structs/tracedump.rb +50 -0
- data/lib/duran/tools.rb +214 -0
- metadata +104 -0
@@ -0,0 +1,768 @@
|
|
1
|
+
/* **********************************************************
|
2
|
+
* Copyright (c) 2002-2009 VMware, Inc. All rights reserved.
|
3
|
+
* **********************************************************/
|
4
|
+
|
5
|
+
/*
|
6
|
+
* Redistribution and use in source and binary forms, with or without
|
7
|
+
* modification, are permitted provided that the following conditions are met:
|
8
|
+
*
|
9
|
+
* * Redistributions of source code must retain the above copyright notice,
|
10
|
+
* this list of conditions and the following disclaimer.
|
11
|
+
*
|
12
|
+
* * Redistributions in binary form must reproduce the above copyright notice,
|
13
|
+
* this list of conditions and the following disclaimer in the documentation
|
14
|
+
* and/or other materials provided with the distribution.
|
15
|
+
*
|
16
|
+
* * Neither the name of VMware, Inc. nor the names of its contributors may be
|
17
|
+
* used to endorse or promote products derived from this software without
|
18
|
+
* specific prior written permission.
|
19
|
+
*
|
20
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
21
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
22
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
23
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL VMWARE, INC. OR CONTRIBUTORS BE LIABLE
|
24
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
25
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
26
|
+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
27
|
+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
28
|
+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
29
|
+
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
30
|
+
* DAMAGE.
|
31
|
+
*/
|
32
|
+
|
33
|
+
#ifndef _DR_IR_OPCODES_H_
|
34
|
+
#define _DR_IR_OPCODES_H_ 1
|
35
|
+
|
36
|
+
|
37
|
+
/****************************************************************************
|
38
|
+
* OPCODES
|
39
|
+
*/
|
40
|
+
/**
|
41
|
+
* @file dr_ir_opcodes.h
|
42
|
+
* @brief Instruction opcode constants.
|
43
|
+
*/
|
44
|
+
/** Opcode constants for use in the instr_t data structure. */
|
45
|
+
enum {
|
46
|
+
/* 0 */ OP_INVALID, /**< Indicates an invalid instr_t. */
|
47
|
+
/* 1 */ OP_UNDECODED, /**< Indicates an undecoded instr_t. */
|
48
|
+
/* 2 */ OP_CONTD, /**< Used internally only. */
|
49
|
+
/* 3 */ OP_LABEL, /**< A label is used for instr_t branch targets. */
|
50
|
+
|
51
|
+
/* 4 */ OP_add, /**< add opcode */
|
52
|
+
/* 5 */ OP_or, /**< or opcode */
|
53
|
+
/* 6 */ OP_adc, /**< adc opcode */
|
54
|
+
/* 7 */ OP_sbb, /**< sbb opcode */
|
55
|
+
/* 8 */ OP_and, /**< and opcode */
|
56
|
+
/* 9 */ OP_daa, /**< daa opcode */
|
57
|
+
/* 10 */ OP_sub, /**< sub opcode */
|
58
|
+
/* 11 */ OP_das, /**< das opcode */
|
59
|
+
/* 12 */ OP_xor, /**< xor opcode */
|
60
|
+
/* 13 */ OP_aaa, /**< aaa opcode */
|
61
|
+
/* 14 */ OP_cmp, /**< cmp opcode */
|
62
|
+
/* 15 */ OP_aas, /**< aas opcode */
|
63
|
+
/* 16 */ OP_inc, /**< inc opcode */
|
64
|
+
/* 17 */ OP_dec, /**< dec opcode */
|
65
|
+
/* 18 */ OP_push, /**< push opcode */
|
66
|
+
/* 19 */ OP_push_imm, /**< push_imm opcode */
|
67
|
+
/* 20 */ OP_pop, /**< pop opcode */
|
68
|
+
/* 21 */ OP_pusha, /**< pusha opcode */
|
69
|
+
/* 22 */ OP_popa, /**< popa opcode */
|
70
|
+
/* 23 */ OP_bound, /**< bound opcode */
|
71
|
+
/* 24 */ OP_arpl, /**< arpl opcode */
|
72
|
+
/* 25 */ OP_imul, /**< imul opcode */
|
73
|
+
|
74
|
+
/* 26 */ OP_jo_short, /**< jo_short opcode */
|
75
|
+
/* 27 */ OP_jno_short, /**< jno_short opcode */
|
76
|
+
/* 28 */ OP_jb_short, /**< jb_short opcode */
|
77
|
+
/* 29 */ OP_jnb_short, /**< jnb_short opcode */
|
78
|
+
/* 30 */ OP_jz_short, /**< jz_short opcode */
|
79
|
+
/* 31 */ OP_jnz_short, /**< jnz_short opcode */
|
80
|
+
/* 32 */ OP_jbe_short, /**< jbe_short opcode */
|
81
|
+
/* 33 */ OP_jnbe_short, /**< jnbe_short opcode */
|
82
|
+
/* 34 */ OP_js_short, /**< js_short opcode */
|
83
|
+
/* 35 */ OP_jns_short, /**< jns_short opcode */
|
84
|
+
/* 36 */ OP_jp_short, /**< jp_short opcode */
|
85
|
+
/* 37 */ OP_jnp_short, /**< jnp_short opcode */
|
86
|
+
/* 38 */ OP_jl_short, /**< jl_short opcode */
|
87
|
+
/* 39 */ OP_jnl_short, /**< jnl_short opcode */
|
88
|
+
/* 40 */ OP_jle_short, /**< jle_short opcode */
|
89
|
+
/* 41 */ OP_jnle_short, /**< jnle_short opcode */
|
90
|
+
|
91
|
+
/* 42 */ OP_call, /**< call opcode */
|
92
|
+
/* 43 */ OP_call_ind, /**< call_ind opcode */
|
93
|
+
/* 44 */ OP_call_far, /**< call_far opcode */
|
94
|
+
/* 45 */ OP_call_far_ind, /**< call_far_ind opcode */
|
95
|
+
/* 46 */ OP_jmp, /**< jmp opcode */
|
96
|
+
/* 47 */ OP_jmp_short, /**< jmp_short opcode */
|
97
|
+
/* 48 */ OP_jmp_ind, /**< jmp_ind opcode */
|
98
|
+
/* 49 */ OP_jmp_far, /**< jmp_far opcode */
|
99
|
+
/* 50 */ OP_jmp_far_ind, /**< jmp_far_ind opcode */
|
100
|
+
|
101
|
+
/* 51 */ OP_loopne, /**< loopne opcode */
|
102
|
+
/* 52 */ OP_loope, /**< loope opcode */
|
103
|
+
/* 53 */ OP_loop, /**< loop opcode */
|
104
|
+
/* 54 */ OP_jecxz, /**< jecxz opcode */
|
105
|
+
|
106
|
+
/* point ld & st at eAX & al instrs, they save 1 byte (no modrm),
|
107
|
+
* hopefully time taken considering them doesn't offset that */
|
108
|
+
/* 55 */ OP_mov_ld, /**< mov_ld opcode */
|
109
|
+
/* 56 */ OP_mov_st, /**< mov_st opcode */
|
110
|
+
/* note that store of immed is mov_st not mov_imm, even though can be immed->reg,
|
111
|
+
* which we address by sharing part of the mov_st template chain */
|
112
|
+
/* 57 */ OP_mov_imm, /**< mov_imm opcode */
|
113
|
+
/* 58 */ OP_mov_seg, /**< mov_seg opcode */
|
114
|
+
/* 59 */ OP_mov_priv, /**< mov_priv opcode */
|
115
|
+
|
116
|
+
/* 60 */ OP_test, /**< test opcode */
|
117
|
+
/* 61 */ OP_lea, /**< lea opcode */
|
118
|
+
/* 62 */ OP_xchg, /**< xchg opcode */
|
119
|
+
/* 63 */ OP_cwde, /**< cwde opcode */
|
120
|
+
/* 64 */ OP_cdq, /**< cdq opcode */
|
121
|
+
/* 65 */ OP_fwait, /**< fwait opcode */
|
122
|
+
/* 66 */ OP_pushf, /**< pushf opcode */
|
123
|
+
/* 67 */ OP_popf, /**< popf opcode */
|
124
|
+
/* 68 */ OP_sahf, /**< sahf opcode */
|
125
|
+
/* 69 */ OP_lahf, /**< lahf opcode */
|
126
|
+
|
127
|
+
/* 70 */ OP_ret, /**< ret opcode */
|
128
|
+
/* 71 */ OP_ret_far, /**< ret_far opcode */
|
129
|
+
|
130
|
+
/* 72 */ OP_les, /**< les opcode */
|
131
|
+
/* 73 */ OP_lds, /**< lds opcode */
|
132
|
+
/* 74 */ OP_enter, /**< enter opcode */
|
133
|
+
/* 75 */ OP_leave, /**< leave opcode */
|
134
|
+
/* 76 */ OP_int3, /**< int3 opcode */
|
135
|
+
/* 77 */ OP_int, /**< int opcode */
|
136
|
+
/* 78 */ OP_into, /**< into opcode */
|
137
|
+
/* 79 */ OP_iret, /**< iret opcode */
|
138
|
+
/* 80 */ OP_aam, /**< aam opcode */
|
139
|
+
/* 81 */ OP_aad, /**< aad opcode */
|
140
|
+
/* 82 */ OP_xlat, /**< xlat opcode */
|
141
|
+
/* 83 */ OP_in, /**< in opcode */
|
142
|
+
/* 84 */ OP_out, /**< out opcode */
|
143
|
+
/* 85 */ OP_hlt, /**< hlt opcode */
|
144
|
+
/* 86 */ OP_cmc, /**< cmc opcode */
|
145
|
+
/* 87 */ OP_clc, /**< clc opcode */
|
146
|
+
/* 88 */ OP_stc, /**< stc opcode */
|
147
|
+
/* 89 */ OP_cli, /**< cli opcode */
|
148
|
+
/* 90 */ OP_sti, /**< sti opcode */
|
149
|
+
/* 91 */ OP_cld, /**< cld opcode */
|
150
|
+
/* 92 */ OP_std, /**< std opcode */
|
151
|
+
|
152
|
+
|
153
|
+
/* 93 */ OP_lar, /**< lar opcode */
|
154
|
+
/* 94 */ OP_lsl, /**< lsl opcode */
|
155
|
+
/* 95 */ OP_syscall, /**< syscall opcode */
|
156
|
+
/* 96 */ OP_clts, /**< clts opcode */
|
157
|
+
/* 97 */ OP_sysret, /**< sysret opcode */
|
158
|
+
/* 98 */ OP_invd, /**< invd opcode */
|
159
|
+
/* 99 */ OP_wbinvd, /**< wbinvd opcode */
|
160
|
+
/* 100 */ OP_ud2a, /**< ud2a opcode */
|
161
|
+
/* 101 */ OP_nop_modrm, /**< nop_modrm opcode */
|
162
|
+
/* 102 */ OP_movntps, /**< movntps opcode */
|
163
|
+
/* 103 */ OP_movntpd, /**< movntpd opcode */
|
164
|
+
/* 104 */ OP_wrmsr, /**< wrmsr opcode */
|
165
|
+
/* 105 */ OP_rdtsc, /**< rdtsc opcode */
|
166
|
+
/* 106 */ OP_rdmsr, /**< rdmsr opcode */
|
167
|
+
/* 107 */ OP_rdpmc, /**< rdpmc opcode */
|
168
|
+
/* 108 */ OP_sysenter, /**< sysenter opcode */
|
169
|
+
/* 109 */ OP_sysexit, /**< sysexit opcode */
|
170
|
+
|
171
|
+
/* 110 */ OP_cmovo, /**< cmovo opcode */
|
172
|
+
/* 111 */ OP_cmovno, /**< cmovno opcode */
|
173
|
+
/* 112 */ OP_cmovb, /**< cmovb opcode */
|
174
|
+
/* 113 */ OP_cmovnb, /**< cmovnb opcode */
|
175
|
+
/* 114 */ OP_cmovz, /**< cmovz opcode */
|
176
|
+
/* 115 */ OP_cmovnz, /**< cmovnz opcode */
|
177
|
+
/* 116 */ OP_cmovbe, /**< cmovbe opcode */
|
178
|
+
/* 117 */ OP_cmovnbe, /**< cmovnbe opcode */
|
179
|
+
/* 118 */ OP_cmovs, /**< cmovs opcode */
|
180
|
+
/* 119 */ OP_cmovns, /**< cmovns opcode */
|
181
|
+
/* 120 */ OP_cmovp, /**< cmovp opcode */
|
182
|
+
/* 121 */ OP_cmovnp, /**< cmovnp opcode */
|
183
|
+
/* 122 */ OP_cmovl, /**< cmovl opcode */
|
184
|
+
/* 123 */ OP_cmovnl, /**< cmovnl opcode */
|
185
|
+
/* 124 */ OP_cmovle, /**< cmovle opcode */
|
186
|
+
/* 125 */ OP_cmovnle, /**< cmovnle opcode */
|
187
|
+
|
188
|
+
/* 126 */ OP_punpcklbw, /**< punpcklbw opcode */
|
189
|
+
/* 127 */ OP_punpcklwd, /**< punpcklwd opcode */
|
190
|
+
/* 128 */ OP_punpckldq, /**< punpckldq opcode */
|
191
|
+
/* 129 */ OP_packsswb, /**< packsswb opcode */
|
192
|
+
/* 130 */ OP_pcmpgtb, /**< pcmpgtb opcode */
|
193
|
+
/* 131 */ OP_pcmpgtw, /**< pcmpgtw opcode */
|
194
|
+
/* 132 */ OP_pcmpgtd, /**< pcmpgtd opcode */
|
195
|
+
/* 133 */ OP_packuswb, /**< packuswb opcode */
|
196
|
+
/* 134 */ OP_punpckhbw, /**< punpckhbw opcode */
|
197
|
+
/* 135 */ OP_punpckhwd, /**< punpckhwd opcode */
|
198
|
+
/* 136 */ OP_punpckhdq, /**< punpckhdq opcode */
|
199
|
+
/* 137 */ OP_packssdw, /**< packssdw opcode */
|
200
|
+
/* 138 */ OP_punpcklqdq, /**< punpcklqdq opcode */
|
201
|
+
/* 139 */ OP_punpckhqdq, /**< punpckhqdq opcode */
|
202
|
+
/* 140 */ OP_movd, /**< movd opcode */
|
203
|
+
/* 141 */ OP_movq, /**< movq opcode */
|
204
|
+
/* 142 */ OP_movdqu, /**< movdqu opcode */
|
205
|
+
/* 143 */ OP_movdqa, /**< movdqa opcode */
|
206
|
+
/* 144 */ OP_pshufw, /**< pshufw opcode */
|
207
|
+
/* 145 */ OP_pshufd, /**< pshufd opcode */
|
208
|
+
/* 146 */ OP_pshufhw, /**< pshufhw opcode */
|
209
|
+
/* 147 */ OP_pshuflw, /**< pshuflw opcode */
|
210
|
+
/* 148 */ OP_pcmpeqb, /**< pcmpeqb opcode */
|
211
|
+
/* 149 */ OP_pcmpeqw, /**< pcmpeqw opcode */
|
212
|
+
/* 150 */ OP_pcmpeqd, /**< pcmpeqd opcode */
|
213
|
+
/* 151 */ OP_emms, /**< emms opcode */
|
214
|
+
|
215
|
+
/* 152 */ OP_jo, /**< jo opcode */
|
216
|
+
/* 153 */ OP_jno, /**< jno opcode */
|
217
|
+
/* 154 */ OP_jb, /**< jb opcode */
|
218
|
+
/* 155 */ OP_jnb, /**< jnb opcode */
|
219
|
+
/* 156 */ OP_jz, /**< jz opcode */
|
220
|
+
/* 157 */ OP_jnz, /**< jnz opcode */
|
221
|
+
/* 158 */ OP_jbe, /**< jbe opcode */
|
222
|
+
/* 159 */ OP_jnbe, /**< jnbe opcode */
|
223
|
+
/* 160 */ OP_js, /**< js opcode */
|
224
|
+
/* 161 */ OP_jns, /**< jns opcode */
|
225
|
+
/* 162 */ OP_jp, /**< jp opcode */
|
226
|
+
/* 163 */ OP_jnp, /**< jnp opcode */
|
227
|
+
/* 164 */ OP_jl, /**< jl opcode */
|
228
|
+
/* 165 */ OP_jnl, /**< jnl opcode */
|
229
|
+
/* 166 */ OP_jle, /**< jle opcode */
|
230
|
+
/* 167 */ OP_jnle, /**< jnle opcode */
|
231
|
+
|
232
|
+
/* 168 */ OP_seto, /**< seto opcode */
|
233
|
+
/* 169 */ OP_setno, /**< setno opcode */
|
234
|
+
/* 170 */ OP_setb, /**< setb opcode */
|
235
|
+
/* 171 */ OP_setnb, /**< setnb opcode */
|
236
|
+
/* 172 */ OP_setz, /**< setz opcode */
|
237
|
+
/* 173 */ OP_setnz, /**< setnz opcode */
|
238
|
+
/* 174 */ OP_setbe, /**< setbe opcode */
|
239
|
+
/* 175 */ OP_setnbe, /**< setnbe opcode */
|
240
|
+
/* 176 */ OP_sets, /**< sets opcode */
|
241
|
+
/* 177 */ OP_setns, /**< setns opcode */
|
242
|
+
/* 178 */ OP_setp, /**< setp opcode */
|
243
|
+
/* 179 */ OP_setnp, /**< setnp opcode */
|
244
|
+
/* 180 */ OP_setl, /**< setl opcode */
|
245
|
+
/* 181 */ OP_setnl, /**< setnl opcode */
|
246
|
+
/* 182 */ OP_setle, /**< setle opcode */
|
247
|
+
/* 183 */ OP_setnle, /**< setnle opcode */
|
248
|
+
|
249
|
+
/* 184 */ OP_cpuid, /**< cpuid opcode */
|
250
|
+
/* 185 */ OP_bt, /**< bt opcode */
|
251
|
+
/* 186 */ OP_shld, /**< shld opcode */
|
252
|
+
/* 187 */ OP_rsm, /**< rsm opcode */
|
253
|
+
/* 188 */ OP_bts, /**< bts opcode */
|
254
|
+
/* 189 */ OP_shrd, /**< shrd opcode */
|
255
|
+
/* 190 */ OP_cmpxchg, /**< cmpxchg opcode */
|
256
|
+
/* 191 */ OP_lss, /**< lss opcode */
|
257
|
+
/* 192 */ OP_btr, /**< btr opcode */
|
258
|
+
/* 193 */ OP_lfs, /**< lfs opcode */
|
259
|
+
/* 194 */ OP_lgs, /**< lgs opcode */
|
260
|
+
/* 195 */ OP_movzx, /**< movzx opcode */
|
261
|
+
/* 196 */ OP_ud2b, /**< ud2b opcode */
|
262
|
+
/* 197 */ OP_btc, /**< btc opcode */
|
263
|
+
/* 198 */ OP_bsf, /**< bsf opcode */
|
264
|
+
/* 199 */ OP_bsr, /**< bsr opcode */
|
265
|
+
/* 200 */ OP_movsx, /**< movsx opcode */
|
266
|
+
/* 201 */ OP_xadd, /**< xadd opcode */
|
267
|
+
/* 202 */ OP_movnti, /**< movnti opcode */
|
268
|
+
/* 203 */ OP_pinsrw, /**< pinsrw opcode */
|
269
|
+
/* 204 */ OP_pextrw, /**< pextrw opcode */
|
270
|
+
/* 205 */ OP_bswap, /**< bswap opcode */
|
271
|
+
/* 206 */ OP_psrlw, /**< psrlw opcode */
|
272
|
+
/* 207 */ OP_psrld, /**< psrld opcode */
|
273
|
+
/* 208 */ OP_psrlq, /**< psrlq opcode */
|
274
|
+
/* 209 */ OP_paddq, /**< paddq opcode */
|
275
|
+
/* 210 */ OP_pmullw, /**< pmullw opcode */
|
276
|
+
/* 211 */ OP_pmovmskb, /**< pmovmskb opcode */
|
277
|
+
/* 212 */ OP_psubusb, /**< psubusb opcode */
|
278
|
+
/* 213 */ OP_psubusw, /**< psubusw opcode */
|
279
|
+
/* 214 */ OP_pminub, /**< pminub opcode */
|
280
|
+
/* 215 */ OP_pand, /**< pand opcode */
|
281
|
+
/* 216 */ OP_paddusb, /**< paddusb opcode */
|
282
|
+
/* 217 */ OP_paddusw, /**< paddusw opcode */
|
283
|
+
/* 218 */ OP_pmaxub, /**< pmaxub opcode */
|
284
|
+
/* 219 */ OP_pandn, /**< pandn opcode */
|
285
|
+
/* 220 */ OP_pavgb, /**< pavgb opcode */
|
286
|
+
/* 221 */ OP_psraw, /**< psraw opcode */
|
287
|
+
/* 222 */ OP_psrad, /**< psrad opcode */
|
288
|
+
/* 223 */ OP_pavgw, /**< pavgw opcode */
|
289
|
+
/* 224 */ OP_pmulhuw, /**< pmulhuw opcode */
|
290
|
+
/* 225 */ OP_pmulhw, /**< pmulhw opcode */
|
291
|
+
/* 226 */ OP_movntq, /**< movntq opcode */
|
292
|
+
/* 227 */ OP_movntdq, /**< movntdq opcode */
|
293
|
+
/* 228 */ OP_psubsb, /**< psubsb opcode */
|
294
|
+
/* 229 */ OP_psubsw, /**< psubsw opcode */
|
295
|
+
/* 230 */ OP_pminsw, /**< pminsw opcode */
|
296
|
+
/* 231 */ OP_por, /**< por opcode */
|
297
|
+
/* 232 */ OP_paddsb, /**< paddsb opcode */
|
298
|
+
/* 233 */ OP_paddsw, /**< paddsw opcode */
|
299
|
+
/* 234 */ OP_pmaxsw, /**< pmaxsw opcode */
|
300
|
+
/* 235 */ OP_pxor, /**< pxor opcode */
|
301
|
+
/* 236 */ OP_psllw, /**< psllw opcode */
|
302
|
+
/* 237 */ OP_pslld, /**< pslld opcode */
|
303
|
+
/* 238 */ OP_psllq, /**< psllq opcode */
|
304
|
+
/* 239 */ OP_pmuludq, /**< pmuludq opcode */
|
305
|
+
/* 240 */ OP_pmaddwd, /**< pmaddwd opcode */
|
306
|
+
/* 241 */ OP_psadbw, /**< psadbw opcode */
|
307
|
+
/* 242 */ OP_maskmovq, /**< maskmovq opcode */
|
308
|
+
/* 243 */ OP_maskmovdqu, /**< maskmovdqu opcode */
|
309
|
+
/* 244 */ OP_psubb, /**< psubb opcode */
|
310
|
+
/* 245 */ OP_psubw, /**< psubw opcode */
|
311
|
+
/* 246 */ OP_psubd, /**< psubd opcode */
|
312
|
+
/* 247 */ OP_psubq, /**< psubq opcode */
|
313
|
+
/* 248 */ OP_paddb, /**< paddb opcode */
|
314
|
+
/* 249 */ OP_paddw, /**< paddw opcode */
|
315
|
+
/* 250 */ OP_paddd, /**< paddd opcode */
|
316
|
+
/* 251 */ OP_psrldq, /**< psrldq opcode */
|
317
|
+
/* 252 */ OP_pslldq, /**< pslldq opcode */
|
318
|
+
|
319
|
+
|
320
|
+
/* 253 */ OP_rol, /**< rol opcode */
|
321
|
+
/* 254 */ OP_ror, /**< ror opcode */
|
322
|
+
/* 255 */ OP_rcl, /**< rcl opcode */
|
323
|
+
/* 256 */ OP_rcr, /**< rcr opcode */
|
324
|
+
/* 257 */ OP_shl, /**< shl opcode */
|
325
|
+
/* 258 */ OP_shr, /**< shr opcode */
|
326
|
+
/* 259 */ OP_sar, /**< sar opcode */
|
327
|
+
/* 260 */ OP_not, /**< not opcode */
|
328
|
+
/* 261 */ OP_neg, /**< neg opcode */
|
329
|
+
/* 262 */ OP_mul, /**< mul opcode */
|
330
|
+
/* 263 */ OP_div, /**< div opcode */
|
331
|
+
/* 264 */ OP_idiv, /**< idiv opcode */
|
332
|
+
/* 265 */ OP_sldt, /**< sldt opcode */
|
333
|
+
/* 266 */ OP_str, /**< str opcode */
|
334
|
+
/* 267 */ OP_lldt, /**< lldt opcode */
|
335
|
+
/* 268 */ OP_ltr, /**< ltr opcode */
|
336
|
+
/* 269 */ OP_verr, /**< verr opcode */
|
337
|
+
/* 270 */ OP_verw, /**< verw opcode */
|
338
|
+
/* 271 */ OP_sgdt, /**< sgdt opcode */
|
339
|
+
/* 272 */ OP_sidt, /**< sidt opcode */
|
340
|
+
/* 273 */ OP_lgdt, /**< lgdt opcode */
|
341
|
+
/* 274 */ OP_lidt, /**< lidt opcode */
|
342
|
+
/* 275 */ OP_smsw, /**< smsw opcode */
|
343
|
+
/* 276 */ OP_lmsw, /**< lmsw opcode */
|
344
|
+
/* 277 */ OP_invlpg, /**< invlpg opcode */
|
345
|
+
/* 278 */ OP_cmpxchg8b, /**< cmpxchg8b opcode */
|
346
|
+
/* 279 */ OP_fxsave, /**< fxsave opcode */
|
347
|
+
/* 280 */ OP_fxrstor, /**< fxrstor opcode */
|
348
|
+
/* 281 */ OP_ldmxcsr, /**< ldmxcsr opcode */
|
349
|
+
/* 282 */ OP_stmxcsr, /**< stmxcsr opcode */
|
350
|
+
/* 283 */ OP_lfence, /**< lfence opcode */
|
351
|
+
/* 284 */ OP_mfence, /**< mfence opcode */
|
352
|
+
/* 285 */ OP_clflush, /**< clflush opcode */
|
353
|
+
/* 286 */ OP_sfence, /**< sfence opcode */
|
354
|
+
/* 287 */ OP_prefetchnta, /**< prefetchnta opcode */
|
355
|
+
/* 288 */ OP_prefetcht0, /**< prefetcht0 opcode */
|
356
|
+
/* 289 */ OP_prefetcht1, /**< prefetcht1 opcode */
|
357
|
+
/* 290 */ OP_prefetcht2, /**< prefetcht2 opcode */
|
358
|
+
/* 291 */ OP_prefetch, /**< prefetch opcode */
|
359
|
+
/* 292 */ OP_prefetchw, /**< prefetchw opcode */
|
360
|
+
|
361
|
+
|
362
|
+
/* 293 */ OP_movups, /**< movups opcode */
|
363
|
+
/* 294 */ OP_movss, /**< movss opcode */
|
364
|
+
/* 295 */ OP_movupd, /**< movupd opcode */
|
365
|
+
/* 296 */ OP_movsd, /**< movsd opcode */
|
366
|
+
/* 297 */ OP_movlps, /**< movlps opcode */
|
367
|
+
/* 298 */ OP_movlpd, /**< movlpd opcode */
|
368
|
+
/* 299 */ OP_unpcklps, /**< unpcklps opcode */
|
369
|
+
/* 300 */ OP_unpcklpd, /**< unpcklpd opcode */
|
370
|
+
/* 301 */ OP_unpckhps, /**< unpckhps opcode */
|
371
|
+
/* 302 */ OP_unpckhpd, /**< unpckhpd opcode */
|
372
|
+
/* 303 */ OP_movhps, /**< movhps opcode */
|
373
|
+
/* 304 */ OP_movhpd, /**< movhpd opcode */
|
374
|
+
/* 305 */ OP_movaps, /**< movaps opcode */
|
375
|
+
/* 306 */ OP_movapd, /**< movapd opcode */
|
376
|
+
/* 307 */ OP_cvtpi2ps, /**< cvtpi2ps opcode */
|
377
|
+
/* 308 */ OP_cvtsi2ss, /**< cvtsi2ss opcode */
|
378
|
+
/* 309 */ OP_cvtpi2pd, /**< cvtpi2pd opcode */
|
379
|
+
/* 310 */ OP_cvtsi2sd, /**< cvtsi2sd opcode */
|
380
|
+
/* 311 */ OP_cvttps2pi, /**< cvttps2pi opcode */
|
381
|
+
/* 312 */ OP_cvttss2si, /**< cvttss2si opcode */
|
382
|
+
/* 313 */ OP_cvttpd2pi, /**< cvttpd2pi opcode */
|
383
|
+
/* 314 */ OP_cvttsd2si, /**< cvttsd2si opcode */
|
384
|
+
/* 315 */ OP_cvtps2pi, /**< cvtps2pi opcode */
|
385
|
+
/* 316 */ OP_cvtss2si, /**< cvtss2si opcode */
|
386
|
+
/* 317 */ OP_cvtpd2pi, /**< cvtpd2pi opcode */
|
387
|
+
/* 318 */ OP_cvtsd2si, /**< cvtsd2si opcode */
|
388
|
+
/* 319 */ OP_ucomiss, /**< ucomiss opcode */
|
389
|
+
/* 320 */ OP_ucomisd, /**< ucomisd opcode */
|
390
|
+
/* 321 */ OP_comiss, /**< comiss opcode */
|
391
|
+
/* 322 */ OP_comisd, /**< comisd opcode */
|
392
|
+
/* 323 */ OP_movmskps, /**< movmskps opcode */
|
393
|
+
/* 324 */ OP_movmskpd, /**< movmskpd opcode */
|
394
|
+
/* 325 */ OP_sqrtps, /**< sqrtps opcode */
|
395
|
+
/* 326 */ OP_sqrtss, /**< sqrtss opcode */
|
396
|
+
/* 327 */ OP_sqrtpd, /**< sqrtpd opcode */
|
397
|
+
/* 328 */ OP_sqrtsd, /**< sqrtsd opcode */
|
398
|
+
/* 329 */ OP_rsqrtps, /**< rsqrtps opcode */
|
399
|
+
/* 330 */ OP_rsqrtss, /**< rsqrtss opcode */
|
400
|
+
/* 331 */ OP_rcpps, /**< rcpps opcode */
|
401
|
+
/* 332 */ OP_rcpss, /**< rcpss opcode */
|
402
|
+
/* 333 */ OP_andps, /**< andps opcode */
|
403
|
+
/* 334 */ OP_andpd, /**< andpd opcode */
|
404
|
+
/* 335 */ OP_andnps, /**< andnps opcode */
|
405
|
+
/* 336 */ OP_andnpd, /**< andnpd opcode */
|
406
|
+
/* 337 */ OP_orps, /**< orps opcode */
|
407
|
+
/* 338 */ OP_orpd, /**< orpd opcode */
|
408
|
+
/* 339 */ OP_xorps, /**< xorps opcode */
|
409
|
+
/* 340 */ OP_xorpd, /**< xorpd opcode */
|
410
|
+
/* 341 */ OP_addps, /**< addps opcode */
|
411
|
+
/* 342 */ OP_addss, /**< addss opcode */
|
412
|
+
/* 343 */ OP_addpd, /**< addpd opcode */
|
413
|
+
/* 344 */ OP_addsd, /**< addsd opcode */
|
414
|
+
/* 345 */ OP_mulps, /**< mulps opcode */
|
415
|
+
/* 346 */ OP_mulss, /**< mulss opcode */
|
416
|
+
/* 347 */ OP_mulpd, /**< mulpd opcode */
|
417
|
+
/* 348 */ OP_mulsd, /**< mulsd opcode */
|
418
|
+
/* 349 */ OP_cvtps2pd, /**< cvtps2pd opcode */
|
419
|
+
/* 350 */ OP_cvtss2sd, /**< cvtss2sd opcode */
|
420
|
+
/* 351 */ OP_cvtpd2ps, /**< cvtpd2ps opcode */
|
421
|
+
/* 352 */ OP_cvtsd2ss, /**< cvtsd2ss opcode */
|
422
|
+
/* 353 */ OP_cvtdq2ps, /**< cvtdq2ps opcode */
|
423
|
+
/* 354 */ OP_cvttps2dq, /**< cvttps2dq opcode */
|
424
|
+
/* 355 */ OP_cvtps2dq, /**< cvtps2dq opcode */
|
425
|
+
/* 356 */ OP_subps, /**< subps opcode */
|
426
|
+
/* 357 */ OP_subss, /**< subss opcode */
|
427
|
+
/* 358 */ OP_subpd, /**< subpd opcode */
|
428
|
+
/* 359 */ OP_subsd, /**< subsd opcode */
|
429
|
+
/* 360 */ OP_minps, /**< minps opcode */
|
430
|
+
/* 361 */ OP_minss, /**< minss opcode */
|
431
|
+
/* 362 */ OP_minpd, /**< minpd opcode */
|
432
|
+
/* 363 */ OP_minsd, /**< minsd opcode */
|
433
|
+
/* 364 */ OP_divps, /**< divps opcode */
|
434
|
+
/* 365 */ OP_divss, /**< divss opcode */
|
435
|
+
/* 366 */ OP_divpd, /**< divpd opcode */
|
436
|
+
/* 367 */ OP_divsd, /**< divsd opcode */
|
437
|
+
/* 368 */ OP_maxps, /**< maxps opcode */
|
438
|
+
/* 369 */ OP_maxss, /**< maxss opcode */
|
439
|
+
/* 370 */ OP_maxpd, /**< maxpd opcode */
|
440
|
+
/* 371 */ OP_maxsd, /**< maxsd opcode */
|
441
|
+
/* 372 */ OP_cmpps, /**< cmpps opcode */
|
442
|
+
/* 373 */ OP_cmpss, /**< cmpss opcode */
|
443
|
+
/* 374 */ OP_cmppd, /**< cmppd opcode */
|
444
|
+
/* 375 */ OP_cmpsd, /**< cmpsd opcode */
|
445
|
+
/* 376 */ OP_shufps, /**< shufps opcode */
|
446
|
+
/* 377 */ OP_shufpd, /**< shufpd opcode */
|
447
|
+
/* 378 */ OP_cvtdq2pd, /**< cvtdq2pd opcode */
|
448
|
+
/* 379 */ OP_cvttpd2dq, /**< cvttpd2dq opcode */
|
449
|
+
/* 380 */ OP_cvtpd2dq, /**< cvtpd2dq opcode */
|
450
|
+
/* 381 */ OP_nop, /**< nop opcode */
|
451
|
+
/* 382 */ OP_pause, /**< pause opcode */
|
452
|
+
|
453
|
+
/* 383 */ OP_ins, /**< ins opcode */
|
454
|
+
/* 384 */ OP_rep_ins, /**< rep_ins opcode */
|
455
|
+
/* 385 */ OP_outs, /**< outs opcode */
|
456
|
+
/* 386 */ OP_rep_outs, /**< rep_outs opcode */
|
457
|
+
/* 387 */ OP_movs, /**< movs opcode */
|
458
|
+
/* 388 */ OP_rep_movs, /**< rep_movs opcode */
|
459
|
+
/* 389 */ OP_stos, /**< stos opcode */
|
460
|
+
/* 390 */ OP_rep_stos, /**< rep_stos opcode */
|
461
|
+
/* 391 */ OP_lods, /**< lods opcode */
|
462
|
+
/* 392 */ OP_rep_lods, /**< rep_lods opcode */
|
463
|
+
/* 393 */ OP_cmps, /**< cmps opcode */
|
464
|
+
/* 394 */ OP_rep_cmps, /**< rep_cmps opcode */
|
465
|
+
/* 395 */ OP_repne_cmps, /**< repne_cmps opcode */
|
466
|
+
/* 396 */ OP_scas, /**< scas opcode */
|
467
|
+
/* 397 */ OP_rep_scas, /**< rep_scas opcode */
|
468
|
+
/* 398 */ OP_repne_scas, /**< repne_scas opcode */
|
469
|
+
|
470
|
+
|
471
|
+
/* 399 */ OP_fadd, /**< fadd opcode */
|
472
|
+
/* 400 */ OP_fmul, /**< fmul opcode */
|
473
|
+
/* 401 */ OP_fcom, /**< fcom opcode */
|
474
|
+
/* 402 */ OP_fcomp, /**< fcomp opcode */
|
475
|
+
/* 403 */ OP_fsub, /**< fsub opcode */
|
476
|
+
/* 404 */ OP_fsubr, /**< fsubr opcode */
|
477
|
+
/* 405 */ OP_fdiv, /**< fdiv opcode */
|
478
|
+
/* 406 */ OP_fdivr, /**< fdivr opcode */
|
479
|
+
/* 407 */ OP_fld, /**< fld opcode */
|
480
|
+
/* 408 */ OP_fst, /**< fst opcode */
|
481
|
+
/* 409 */ OP_fstp, /**< fstp opcode */
|
482
|
+
/* 410 */ OP_fldenv, /**< fldenv opcode */
|
483
|
+
/* 411 */ OP_fldcw, /**< fldcw opcode */
|
484
|
+
/* 412 */ OP_fnstenv, /**< fnstenv opcode */
|
485
|
+
/* 413 */ OP_fnstcw, /**< fnstcw opcode */
|
486
|
+
/* 414 */ OP_fiadd, /**< fiadd opcode */
|
487
|
+
/* 415 */ OP_fimul, /**< fimul opcode */
|
488
|
+
/* 416 */ OP_ficom, /**< ficom opcode */
|
489
|
+
/* 417 */ OP_ficomp, /**< ficomp opcode */
|
490
|
+
/* 418 */ OP_fisub, /**< fisub opcode */
|
491
|
+
/* 419 */ OP_fisubr, /**< fisubr opcode */
|
492
|
+
/* 420 */ OP_fidiv, /**< fidiv opcode */
|
493
|
+
/* 421 */ OP_fidivr, /**< fidivr opcode */
|
494
|
+
/* 422 */ OP_fild, /**< fild opcode */
|
495
|
+
/* 423 */ OP_fist, /**< fist opcode */
|
496
|
+
/* 424 */ OP_fistp, /**< fistp opcode */
|
497
|
+
/* 425 */ OP_frstor, /**< frstor opcode */
|
498
|
+
/* 426 */ OP_fnsave, /**< fnsave opcode */
|
499
|
+
/* 427 */ OP_fnstsw, /**< fnstsw opcode */
|
500
|
+
|
501
|
+
/* 428 */ OP_fbld, /**< fbld opcode */
|
502
|
+
/* 429 */ OP_fbstp, /**< fbstp opcode */
|
503
|
+
|
504
|
+
|
505
|
+
/* 430 */ OP_fxch, /**< fxch opcode */
|
506
|
+
/* 431 */ OP_fnop, /**< fnop opcode */
|
507
|
+
/* 432 */ OP_fchs, /**< fchs opcode */
|
508
|
+
/* 433 */ OP_fabs, /**< fabs opcode */
|
509
|
+
/* 434 */ OP_ftst, /**< ftst opcode */
|
510
|
+
/* 435 */ OP_fxam, /**< fxam opcode */
|
511
|
+
/* 436 */ OP_fld1, /**< fld1 opcode */
|
512
|
+
/* 437 */ OP_fldl2t, /**< fldl2t opcode */
|
513
|
+
/* 438 */ OP_fldl2e, /**< fldl2e opcode */
|
514
|
+
/* 439 */ OP_fldpi, /**< fldpi opcode */
|
515
|
+
/* 440 */ OP_fldlg2, /**< fldlg2 opcode */
|
516
|
+
/* 441 */ OP_fldln2, /**< fldln2 opcode */
|
517
|
+
/* 442 */ OP_fldz, /**< fldz opcode */
|
518
|
+
/* 443 */ OP_f2xm1, /**< f2xm1 opcode */
|
519
|
+
/* 444 */ OP_fyl2x, /**< fyl2x opcode */
|
520
|
+
/* 445 */ OP_fptan, /**< fptan opcode */
|
521
|
+
/* 446 */ OP_fpatan, /**< fpatan opcode */
|
522
|
+
/* 447 */ OP_fxtract, /**< fxtract opcode */
|
523
|
+
/* 448 */ OP_fprem1, /**< fprem1 opcode */
|
524
|
+
/* 449 */ OP_fdecstp, /**< fdecstp opcode */
|
525
|
+
/* 450 */ OP_fincstp, /**< fincstp opcode */
|
526
|
+
/* 451 */ OP_fprem, /**< fprem opcode */
|
527
|
+
/* 452 */ OP_fyl2xp1, /**< fyl2xp1 opcode */
|
528
|
+
/* 453 */ OP_fsqrt, /**< fsqrt opcode */
|
529
|
+
/* 454 */ OP_fsincos, /**< fsincos opcode */
|
530
|
+
/* 455 */ OP_frndint, /**< frndint opcode */
|
531
|
+
/* 456 */ OP_fscale, /**< fscale opcode */
|
532
|
+
/* 457 */ OP_fsin, /**< fsin opcode */
|
533
|
+
/* 458 */ OP_fcos, /**< fcos opcode */
|
534
|
+
/* 459 */ OP_fcmovb, /**< fcmovb opcode */
|
535
|
+
/* 460 */ OP_fcmove, /**< fcmove opcode */
|
536
|
+
/* 461 */ OP_fcmovbe, /**< fcmovbe opcode */
|
537
|
+
/* 462 */ OP_fcmovu, /**< fcmovu opcode */
|
538
|
+
/* 463 */ OP_fucompp, /**< fucompp opcode */
|
539
|
+
/* 464 */ OP_fcmovnb, /**< fcmovnb opcode */
|
540
|
+
/* 465 */ OP_fcmovene, /**< fcmovene opcode */
|
541
|
+
/* 466 */ OP_fcmovnbe, /**< fcmovnbe opcode */
|
542
|
+
/* 467 */ OP_fcmovnu, /**< fcmovnu opcode */
|
543
|
+
/* 468 */ OP_fnclex, /**< fnclex opcode */
|
544
|
+
/* 469 */ OP_fninit, /**< fninit opcode */
|
545
|
+
/* 470 */ OP_fucomi, /**< fucomi opcode */
|
546
|
+
/* 471 */ OP_fcomi, /**< fcomi opcode */
|
547
|
+
/* 472 */ OP_ffree, /**< ffree opcode */
|
548
|
+
/* 473 */ OP_fucom, /**< fucom opcode */
|
549
|
+
/* 474 */ OP_fucomp, /**< fucomp opcode */
|
550
|
+
/* 475 */ OP_faddp, /**< faddp opcode */
|
551
|
+
/* 476 */ OP_fmulp, /**< fmulp opcode */
|
552
|
+
/* 477 */ OP_fcompp, /**< fcompp opcode */
|
553
|
+
/* 478 */ OP_fsubrp, /**< fsubrp opcode */
|
554
|
+
/* 479 */ OP_fsubp, /**< fsubp opcode */
|
555
|
+
/* 480 */ OP_fdivrp, /**< fdivrp opcode */
|
556
|
+
/* 481 */ OP_fdivp, /**< fdivp opcode */
|
557
|
+
/* 482 */ OP_fucomip, /**< fucomip opcode */
|
558
|
+
/* 483 */ OP_fcomip, /**< fcomip opcode */
|
559
|
+
|
560
|
+
/* SSE3 instructions */
|
561
|
+
/* 484 */ OP_fisttp, /**< fisttp opcode */
|
562
|
+
/* 485 */ OP_haddpd, /**< haddpd opcode */
|
563
|
+
/* 486 */ OP_haddps, /**< haddps opcode */
|
564
|
+
/* 487 */ OP_hsubpd, /**< hsubpd opcode */
|
565
|
+
/* 488 */ OP_hsubps, /**< hsubps opcode */
|
566
|
+
/* 489 */ OP_addsubpd, /**< addsubpd opcode */
|
567
|
+
/* 490 */ OP_addsubps, /**< addsubps opcode */
|
568
|
+
/* 491 */ OP_lddqu, /**< lddqu opcode */
|
569
|
+
/* 492 */ OP_monitor, /**< monitor opcode */
|
570
|
+
/* 493 */ OP_mwait, /**< mwait opcode */
|
571
|
+
/* 494 */ OP_movsldup, /**< movsldup opcode */
|
572
|
+
/* 495 */ OP_movshdup, /**< movshdup opcode */
|
573
|
+
/* 496 */ OP_movddup, /**< movddup opcode */
|
574
|
+
|
575
|
+
/* 3D-Now! instructions */
|
576
|
+
/* 497 */ OP_femms, /**< femms opcode */
|
577
|
+
/* 498 */ OP_unknown_3dnow, /**< unknown_3dnow opcode */
|
578
|
+
/* 499 */ OP_pavgusb, /**< pavgusb opcode */
|
579
|
+
/* 500 */ OP_pfadd, /**< pfadd opcode */
|
580
|
+
/* 501 */ OP_pfacc, /**< pfacc opcode */
|
581
|
+
/* 502 */ OP_pfcmpge, /**< pfcmpge opcode */
|
582
|
+
/* 503 */ OP_pfcmpgt, /**< pfcmpgt opcode */
|
583
|
+
/* 504 */ OP_pfcmpeq, /**< pfcmpeq opcode */
|
584
|
+
/* 505 */ OP_pfmin, /**< pfmin opcode */
|
585
|
+
/* 506 */ OP_pfmax, /**< pfmax opcode */
|
586
|
+
/* 507 */ OP_pfmul, /**< pfmul opcode */
|
587
|
+
/* 508 */ OP_pfrcp, /**< pfrcp opcode */
|
588
|
+
/* 509 */ OP_pfrcpit1, /**< pfrcpit1 opcode */
|
589
|
+
/* 510 */ OP_pfrcpit2, /**< pfrcpit2 opcode */
|
590
|
+
/* 511 */ OP_pfrsqrt, /**< pfrsqrt opcode */
|
591
|
+
/* 512 */ OP_pfrsqit1, /**< pfrsqit1 opcode */
|
592
|
+
/* 513 */ OP_pmulhrw, /**< pmulhrw opcode */
|
593
|
+
/* 514 */ OP_pfsub, /**< pfsub opcode */
|
594
|
+
/* 515 */ OP_pfsubr, /**< pfsubr opcode */
|
595
|
+
/* 516 */ OP_pi2fd, /**< pi2fd opcode */
|
596
|
+
/* 517 */ OP_pf2id, /**< pf2id opcode */
|
597
|
+
/* 518 */ OP_pi2fw, /**< pi2fw opcode */
|
598
|
+
/* 519 */ OP_pf2iw, /**< pf2iw opcode */
|
599
|
+
/* 520 */ OP_pfnacc, /**< pfnacc opcode */
|
600
|
+
/* 521 */ OP_pfpnacc, /**< pfpnacc opcode */
|
601
|
+
/* 522 */ OP_pswapd, /**< pswapd opcode */
|
602
|
+
|
603
|
+
/* SSSE3 */
|
604
|
+
/* 523 */ OP_pshufb, /**< pshufb opcode */
|
605
|
+
/* 524 */ OP_phaddw, /**< phaddw opcode */
|
606
|
+
/* 525 */ OP_phaddd, /**< phaddd opcode */
|
607
|
+
/* 526 */ OP_phaddsw, /**< phaddsw opcode */
|
608
|
+
/* 527 */ OP_pmaddubsw, /**< pmaddubsw opcode */
|
609
|
+
/* 528 */ OP_phsubw, /**< phsubw opcode */
|
610
|
+
/* 529 */ OP_phsubd, /**< phsubd opcode */
|
611
|
+
/* 530 */ OP_phsubsw, /**< phsubsw opcode */
|
612
|
+
/* 531 */ OP_psignb, /**< psignb opcode */
|
613
|
+
/* 532 */ OP_psignw, /**< psignw opcode */
|
614
|
+
/* 533 */ OP_psignd, /**< psignd opcode */
|
615
|
+
/* 534 */ OP_pmulhrsw, /**< pmulhrsw opcode */
|
616
|
+
/* 535 */ OP_pabsb, /**< pabsb opcode */
|
617
|
+
/* 536 */ OP_pabsw, /**< pabsw opcode */
|
618
|
+
/* 537 */ OP_pabsd, /**< pabsd opcode */
|
619
|
+
/* 538 */ OP_palignr, /**< palignr opcode */
|
620
|
+
|
621
|
+
/* SSE4 (incl AMD and Intel-specific extensions */
|
622
|
+
/* 539 */ OP_popcnt, /**< popcnt opcode */
|
623
|
+
/* 540 */ OP_movntss, /**< movntss opcode */
|
624
|
+
/* 541 */ OP_movntsd, /**< movntsd opcode */
|
625
|
+
/* 542 */ OP_extrq, /**< extrq opcode */
|
626
|
+
/* 543 */ OP_insertq, /**< insertq opcode */
|
627
|
+
/* 544 */ OP_lzcnt, /**< lzcnt opcode */
|
628
|
+
/* 545 */ OP_pblendvb, /**< pblendvb opcode */
|
629
|
+
/* 546 */ OP_blendvps, /**< blendvps opcode */
|
630
|
+
/* 547 */ OP_blendvpd, /**< blendvpd opcode */
|
631
|
+
/* 548 */ OP_ptest, /**< ptest opcode */
|
632
|
+
/* 549 */ OP_pmovsxbw, /**< pmovsxbw opcode */
|
633
|
+
/* 550 */ OP_pmovsxbd, /**< pmovsxbd opcode */
|
634
|
+
/* 551 */ OP_pmovsxbq, /**< pmovsxbq opcode */
|
635
|
+
/* 552 */ OP_pmovsxdw, /**< pmovsxdw opcode */
|
636
|
+
/* 553 */ OP_pmovsxwq, /**< pmovsxwq opcode */
|
637
|
+
/* 554 */ OP_pmovsxdq, /**< pmovsxdq opcode */
|
638
|
+
/* 555 */ OP_pmuldq, /**< pmuldq opcode */
|
639
|
+
/* 556 */ OP_pcmpeqq, /**< pcmpeqq opcode */
|
640
|
+
/* 557 */ OP_movntdqa, /**< movntdqa opcode */
|
641
|
+
/* 558 */ OP_packusdw, /**< packusdw opcode */
|
642
|
+
/* 559 */ OP_pmovzxbw, /**< pmovzxbw opcode */
|
643
|
+
/* 560 */ OP_pmovzxbd, /**< pmovzxbd opcode */
|
644
|
+
/* 561 */ OP_pmovzxbq, /**< pmovzxbq opcode */
|
645
|
+
/* 562 */ OP_pmovzxdw, /**< pmovzxdw opcode */
|
646
|
+
/* 563 */ OP_pmovzxwq, /**< pmovzxwq opcode */
|
647
|
+
/* 564 */ OP_pmovzxdq, /**< pmovzxdq opcode */
|
648
|
+
/* 565 */ OP_pcmpgtq, /**< pcmpgtq opcode */
|
649
|
+
/* 566 */ OP_pminsb, /**< pminsb opcode */
|
650
|
+
/* 567 */ OP_pminsd, /**< pminsd opcode */
|
651
|
+
/* 568 */ OP_pminuw, /**< pminuw opcode */
|
652
|
+
/* 569 */ OP_pminud, /**< pminud opcode */
|
653
|
+
/* 570 */ OP_pmaxsb, /**< pmaxsb opcode */
|
654
|
+
/* 571 */ OP_pmaxsd, /**< pmaxsd opcode */
|
655
|
+
/* 572 */ OP_pmaxuw, /**< pmaxuw opcode */
|
656
|
+
/* 573 */ OP_pmaxud, /**< pmaxud opcode */
|
657
|
+
/* 574 */ OP_pmulld, /**< pmulld opcode */
|
658
|
+
/* 575 */ OP_phminposuw, /**< phminposuw opcode */
|
659
|
+
/* 576 */ OP_crc32, /**< crc32 opcode */
|
660
|
+
/* 577 */ OP_pextrb, /**< pextrb opcode */
|
661
|
+
/* 578 */ OP_pextrd, /**< pextrd opcode */
|
662
|
+
/* 579 */ OP_extractps, /**< extractps opcode */
|
663
|
+
/* 580 */ OP_roundps, /**< roundps opcode */
|
664
|
+
/* 581 */ OP_roundpd, /**< roundpd opcode */
|
665
|
+
/* 582 */ OP_roundss, /**< roundss opcode */
|
666
|
+
/* 583 */ OP_roundsd, /**< roundsd opcode */
|
667
|
+
/* 584 */ OP_blendps, /**< blendps opcode */
|
668
|
+
/* 585 */ OP_blendpd, /**< blendpd opcode */
|
669
|
+
/* 586 */ OP_pblendw, /**< pblendw opcode */
|
670
|
+
/* 587 */ OP_pinsrb, /**< pinsrb opcode */
|
671
|
+
/* 588 */ OP_insertps, /**< insertps opcode */
|
672
|
+
/* 589 */ OP_pinsrd, /**< pinsrd opcode */
|
673
|
+
/* 590 */ OP_dpps, /**< dpps opcode */
|
674
|
+
/* 591 */ OP_dppd, /**< dppd opcode */
|
675
|
+
/* 592 */ OP_mpsadbw, /**< mpsadbw opcode */
|
676
|
+
/* 593 */ OP_pcmpestrm, /**< pcmpestrm opcode */
|
677
|
+
/* 594 */ OP_pcmpestri, /**< pcmpestri opcode */
|
678
|
+
/* 595 */ OP_pcmpistrm, /**< pcmpistrm opcode */
|
679
|
+
/* 596 */ OP_pcmpistri, /**< pcmpistri opcode */
|
680
|
+
|
681
|
+
/* x64 */
|
682
|
+
/* 597 */ OP_movsxd, /**< movsxd opcode */
|
683
|
+
/* 598 */ OP_swapgs, /**< swapgs opcode */
|
684
|
+
|
685
|
+
/* VMX */
|
686
|
+
/* 599 */ OP_vmcall, /**< vmcall opcode */
|
687
|
+
/* 600 */ OP_vmlaunch, /**< vmlaunch opcode */
|
688
|
+
/* 601 */ OP_vmresume, /**< vmresume opcode */
|
689
|
+
/* 602 */ OP_vmxoff, /**< vmxoff opcode */
|
690
|
+
/* 603 */ OP_vmptrst, /**< vmptrst opcode */
|
691
|
+
/* 604 */ OP_vmptrld, /**< vmptrld opcode */
|
692
|
+
/* 605 */ OP_vmxon, /**< vmxon opcode */
|
693
|
+
/* 606 */ OP_vmclear, /**< vmclear opcode */
|
694
|
+
/* 607 */ OP_vmread, /**< vmread opcode */
|
695
|
+
/* 608 */ OP_vmwrite, /**< vmwrite opcode */
|
696
|
+
|
697
|
+
/* undocumented */
|
698
|
+
/* 609 */ OP_int1, /**< int1 opcode */
|
699
|
+
/* 610 */ OP_salc, /**< salc opcode */
|
700
|
+
/* 611 */ OP_ffreep, /**< ffreep opcode */
|
701
|
+
|
702
|
+
/* Keep these at the end so that ifdefs don't change internal enum values */
|
703
|
+
|
704
|
+
OP_FIRST = OP_add, /**< First real opcode. */
|
705
|
+
OP_LAST = OP_ffreep, /**< Last real opcode. */
|
706
|
+
};
|
707
|
+
|
708
|
+
|
709
|
+
/* alternative names */
|
710
|
+
/* we do not equate the fwait+op opcodes
|
711
|
+
* fstsw, fstcw, fstenv, finit, fclex
|
712
|
+
* for us that has to be a sequence of instructions: a separate fwait
|
713
|
+
*/
|
714
|
+
/* 16-bit versions that have different names */
|
715
|
+
#define OP_cbw OP_cwde /**< Alternative opcode name for 16-bit version. */
|
716
|
+
#define OP_cwd OP_cdq /**< Alternative opcode name for 16-bit version. */
|
717
|
+
#define OP_jcxz OP_jecxz /**< Alternative opcode name for 16-bit version. */
|
718
|
+
/* 64-bit versions that have different names */
|
719
|
+
#define OP_jrcxz OP_jecxz /**< Alternative opcode name for 64-bit version. */
|
720
|
+
#define OP_cmpxchg16b OP_cmpxchg8b /**< Alternative opcode name for 64-bit version. */
|
721
|
+
#define OP_pextrq OP_pextrd /**< Alternative opcode name for 64-bit version. */
|
722
|
+
#define OP_pinsrq OP_pinsrd /**< Alternative opcode name for 64-bit version. */
|
723
|
+
/* reg-reg version has different name */
|
724
|
+
#define OP_movhlps OP_movlps /**< Alternative opcode name for reg-reg version. */
|
725
|
+
#define OP_movlhps OP_movhps /**< Alternative opcode name for reg-reg version. */
|
726
|
+
/* condition codes */
|
727
|
+
#define OP_jae_short OP_jnb_short /**< Alternative opcode name. */
|
728
|
+
#define OP_jnae_short OP_jb_short /**< Alternative opcode name. */
|
729
|
+
#define OP_ja_short OP_jnbe_short /**< Alternative opcode name. */
|
730
|
+
#define OP_jna_short OP_jbe_short /**< Alternative opcode name. */
|
731
|
+
#define OP_je_short OP_jz_short /**< Alternative opcode name. */
|
732
|
+
#define OP_jne_short OP_jnz_short /**< Alternative opcode name. */
|
733
|
+
#define OP_jge_short OP_jnl_short /**< Alternative opcode name. */
|
734
|
+
#define OP_jg_short OP_jnle_short /**< Alternative opcode name. */
|
735
|
+
#define OP_jae OP_jnb /**< Alternative opcode name. */
|
736
|
+
#define OP_jnae OP_jb /**< Alternative opcode name. */
|
737
|
+
#define OP_ja OP_jnbe /**< Alternative opcode name. */
|
738
|
+
#define OP_jna OP_jbe /**< Alternative opcode name. */
|
739
|
+
#define OP_je OP_jz /**< Alternative opcode name. */
|
740
|
+
#define OP_jne OP_jnz /**< Alternative opcode name. */
|
741
|
+
#define OP_jge OP_jnl /**< Alternative opcode name. */
|
742
|
+
#define OP_jg OP_jnle /**< Alternative opcode name. */
|
743
|
+
#define OP_setae OP_setnb /**< Alternative opcode name. */
|
744
|
+
#define OP_setnae OP_setb /**< Alternative opcode name. */
|
745
|
+
#define OP_seta OP_setnbe /**< Alternative opcode name. */
|
746
|
+
#define OP_setna OP_setbe /**< Alternative opcode name. */
|
747
|
+
#define OP_sete OP_setz /**< Alternative opcode name. */
|
748
|
+
#define OP_setne OP_setnz /**< Alternative opcode name. */
|
749
|
+
#define OP_setge OP_setnl /**< Alternative opcode name. */
|
750
|
+
#define OP_setg OP_setnle /**< Alternative opcode name. */
|
751
|
+
#define OP_cmovae OP_cmovnb /**< Alternative opcode name. */
|
752
|
+
#define OP_cmovnae OP_cmovb /**< Alternative opcode name. */
|
753
|
+
#define OP_cmova OP_cmovnbe /**< Alternative opcode name. */
|
754
|
+
#define OP_cmovna OP_cmovbe /**< Alternative opcode name. */
|
755
|
+
#define OP_cmove OP_cmovz /**< Alternative opcode name. */
|
756
|
+
#define OP_cmovne OP_cmovnz /**< Alternative opcode name. */
|
757
|
+
#define OP_cmovge OP_cmovnl /**< Alternative opcode name. */
|
758
|
+
#define OP_cmovg OP_cmovnle /**< Alternative opcode name. */
|
759
|
+
/* undocumented opcodes */
|
760
|
+
#define OP_icebp OP_int1
|
761
|
+
#define OP_setalc OP_salc
|
762
|
+
|
763
|
+
/****************************************************************************/
|
764
|
+
|
765
|
+
|
766
|
+
|
767
|
+
|
768
|
+
#endif /* _DR_IR_OPCODES_H_ */
|