duran 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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_ */
|