x86.ml 150 KB
Newer Older
mb0's avatar
mb0 committed
1
granularity = 8
mb0's avatar
mb0 committed
2
export = decode
mb0's avatar
mb0 committed
3 4 5 6 7 8 9 10 11 12 13 14 15

# Optional arguments
#
# Limit:
#   - Restricts the maximium size of the decode-stream
# Recursion-depth:
#   - Annotate the maximum number of recursion steps for
#     the given decoder. This way, we can compute an upper
#     bound for the maximum used storage for the emitted AST.
#     Additionally, the decoder may fail if during runtime
#     a recrusion depth violation occurs.
#
# limit = 120
mb0's avatar
mb0 committed
16
# recursion-depth = p64 = 4
mb0's avatar
mb0 committed
17 18 19 20 21 22 23 24 25 26 27 28 29

val decode = do
   update
      @{mode64='1',
        repne='0',
        rep='0',
        rex='0',
        rexw='0',
        rexb='0',
        rexr='0',
        rexx='0',
        opndsz='0',
        addrsz='0',
mb0's avatar
mb0 committed
30
        lock='0',
mb0's avatar
mb0 committed
31
        segment=DS,
mb0's avatar
mb0 committed
32
        ptrty=32}; #TODO: check
mb0's avatar
mb0 committed
33 34 35
   p64
end

Axel Simon's avatar
Axel Simon committed
36 37
val complement v = not v

mb0's avatar
mb0 committed
38 39 40 41 42 43 44 45 46 47
val set-opndsz = update@{opndsz='1'}
val set-repne = update@{repne='1'}
val set-rep = update@{rep='1'}

val set-CS = update@{segment=CS}
val set-DS = update@{segment=DS}
val set-ES = update@{segment=ES}
val set-FS = update@{segment=FS}
val set-GS = update@{segment=GS}
val set-SS = update@{segment=SS}
mb0's avatar
mb0 committed
48
val set-lock = update@{lock='1'}
mb0's avatar
mb0 committed
49 50 51 52
val set-addrsz = update@{addrsz='1'}

## Decoding prefixes

mb0's avatar
mb0 committed
53
# The functions 'after' and 'continue' are used to try different decoders
Axel Simon's avatar
Axel Simon committed
54 55 56
# in sequence. The first function takes two arguments and runs the first
# one until it calls 'continue', at which point the second decoder is run.

mb0's avatar
mb0 committed
57
val after fst snd = do
58 59 60
  update@{tab=snd};
  r <- fst;
  # make the type checker happy
Axel Simon's avatar
Axel Simon committed
61
  update@{~tab};
62
  return r
Axel Simon's avatar
Axel Simon committed
63 64 65
end

val continue = do
66 67
  t <- query$tab;
  # make the type checker happy
Axel Simon's avatar
Axel Simon committed
68
  update@{~tab};  
69 70
  # make the type checker happy
  r <- t;
Axel Simon's avatar
Axel Simon committed
71
  update@{~tab};
72
  return r
Axel Simon's avatar
Axel Simon committed
73 74
end

75 76 77 78 79 80 81 82 83 84
# val after fst snd = do
#    update@{tab=snd};
#    fst
# end
# 
# val continue = do
#    t <- query$tab;
#    t
# end

Axel Simon's avatar
Axel Simon committed
85 86 87 88
val /66 [] = continue
val /f2 [] = continue
val /f3 [] = continue

Axel Simon's avatar
Axel Simon committed
89 90 91 92
val /rex-p ['0100 w:1 r:1 x:1 b:1'] =
   update @{rex='1', rexw=w, rexb=b, rexx=x, rexr=r}
val clear-rex = update @{rex='0',rexw='0',rexb='0',rexr='0',rexx='0'}

mb0's avatar
mb0 committed
93 94 95 96 97 98 99 100
val /legacy-p [0x2e] = do clear-rex; set-CS end
val /legacy-p [0x36] = do clear-rex; set-SS end
val /legacy-p [0x3e] = do clear-rex; set-DS end
val /legacy-p [0x26] = do clear-rex; set-ES end
val /legacy-p [0x64] = do clear-rex; set-FS end
val /legacy-p [0x65] = do clear-rex; set-GS end
val /legacy-p [0x67] = do clear-rex; set-addrsz end
val /legacy-p [0xf0] = do clear-rex; set-lock end
mb0's avatar
mb0 committed
101

mb0's avatar
mb0 committed
102
val p/vex/0f [0xc4 'r:1 x:1 b:1 00001' 'w:1 v:4 l:1 00'] = do
mb0's avatar
mb0 committed
103 104 105 106 107 108 109 110
   update
      @{rex='1',
        rexw=w,
        vexw=w,
        rexr=not r,
        rexb=not b,
        rexx=not x,
        vexl=l,
111
        vexv=complement v,
mb0's avatar
mb0 committed
112 113 114
        vexm='00001'}
end

mb0's avatar
mb0 committed
115
val p/vex/0f [0xc5 'r:1 v:4 l:1 00'] = do
mb0's avatar
mb0 committed
116 117 118 119 120 121
   update
      @{rex='1',
        rexw='0',
        vexw='0',
        rexr=not r,
        vexl=l,
122
        vexv=complement v,
mb0's avatar
mb0 committed
123 124 125
        vexm='00001'} #TODO: sane default value for vexm,rexw,rexb,..
end

mb0's avatar
mb0 committed
126
val p/vex/66/0f [0xc4 'r:1 x:1 b:1 00001' 'w:1 v:4 l:1 01'] = do
mb0's avatar
mb0 committed
127 128 129 130 131 132 133 134
   update
      @{rex='1',
        rexw=w,
        vexw=w,
        rexr=not r,
        rexb=not b,
        rexx=not x,
        vexl=l,
135
        vexv=complement v,
Julian Kranz's avatar
Julian Kranz committed
136

mb0's avatar
mb0 committed
137 138 139
        vexm='00001'}
end

mb0's avatar
mb0 committed
140
val p/vex/66/0f [0xc5 'r:1 v:4 l:1 01'] = do
mb0's avatar
mb0 committed
141 142 143 144 145 146
   update
      @{rex='1',
        rexw='0',
        vexw='0',
        rexr=not r,
        vexl=l,
147
        vexv=complement v,
mb0's avatar
mb0 committed
148 149 150
        vexm='00001'} #TODO: sane default value for vexm,rexw,rexb,..
end

mb0's avatar
mb0 committed
151
val p/vex/f3/0f [0xc4 'r:1 x:1 b:1 00001' 'w:1 v:4 l:1 10'] = do
mb0's avatar
mb0 committed
152 153 154 155 156 157 158 159
   update
      @{rex='1',
        rexw=w,
        vexw=w,
        rexr=not r,
        rexb=not b,
        rexx=not x,
        vexl=l,
160
        vexv=complement v,
mb0's avatar
mb0 committed
161 162 163
        vexm='00001'}
end

mb0's avatar
mb0 committed
164
val p/vex/f3/0f [0xc5 'r:1 v:4 l:1 10'] = do
mb0's avatar
mb0 committed
165 166 167 168 169 170
   update
      @{rex='1',
        rexw='0',
        vexw='0',
        rexr=not r,
        vexl=l,
171
        vexv=complement v,
mb0's avatar
mb0 committed
172 173 174
        vexm='00001'} #TODO: sane default value for vexm,rexw,rexb,..
end

mb0's avatar
mb0 committed
175
val p/vex/f2/0f [0xc4 'r:1 x:1 b:1 00001' 'w:1 v:4 l:1 11'] = do
mb0's avatar
mb0 committed
176 177 178 179 180 181 182 183
   update
      @{rex='1',
        rexw=w,
        vexw=w,
        rexr=not r,
        rexb=not b,
        rexx=not x,
        vexl=l,
184
        vexv=complement v,
mb0's avatar
mb0 committed
185 186 187
        vexm='00001'}
end

mb0's avatar
mb0 committed
188
val p/vex/f2/0f [0xc5 'r:1 v:4 l:1 11'] = do
mb0's avatar
mb0 committed
189 190 191 192 193 194
   update
      @{rex='1',
        rexw='0',
        vexw='0',
        rexr=not r,
        vexl=l,
195
        vexv=complement v,
mb0's avatar
mb0 committed
196 197 198
        vexm='00001'} #TODO: sane default value for vexm,rexw,rexb,..
end

mb0's avatar
mb0 committed
199
val p/vex/0f/38 [0xc4 'r:1 x:1 b:1 00010' 'w:1 v:4 l:1 00'] = do
mb0's avatar
mb0 committed
200 201 202 203 204 205 206 207
   update
      @{rex='1',
        rexw=w,
        vexw=w,
        rexr=not r,
        rexb=not b,
        rexx=not x,
        vexl=l,
208
        vexv=complement v,
mb0's avatar
mb0 committed
209 210 211
        vexm='00010'}
end

mb0's avatar
mb0 committed
212
val p/vex/66/0f/38 [0xc4 'r:1 x:1 b:1 00010' 'w:1 v:4 l:1 01'] = do
mb0's avatar
mb0 committed
213 214 215 216 217 218 219 220
   update
      @{rex='1',
        rexw=w,
        vexw=w,
        rexr=not r,
        rexb=not b,
        rexx=not x,
        vexl=l,
221
        vexv=complement v,
mb0's avatar
mb0 committed
222 223 224
        vexm='00010'}
end

mb0's avatar
mb0 committed
225
val p/vex/f2/0f/38 [0xc4 'r:1 x:1 b:1 00010' 'w:1 v:4 l:1 11'] = do
mb0's avatar
mb0 committed
226 227 228 229 230 231 232 233
   update
      @{rex='1',
        rexw=w,
        vexw=w,
        rexr=not r,
        rexb=not b,
        rexx=not x,
        vexl=l,
234
        vexv=complement v,
mb0's avatar
mb0 committed
235 236 237
        vexm='00010'}
end

mb0's avatar
mb0 committed
238
val p/vex/f3/0f/38 [0xc4 'r:1 x:1 b:1 00010' 'w:1 v:4 l:1 10'] = do
mb0's avatar
mb0 committed
239 240 241 242 243 244 245 246
   update
      @{rex='1',
        rexw=w,
        vexw=w,
        rexr=not r,
        rexb=not b,
        rexx=not x,
        vexl=l,
247
        vexv=complement v,
mb0's avatar
mb0 committed
248 249 250
        vexm='00010'}
end

mb0's avatar
mb0 committed
251
val p/vex/0f/3a [0xc4 'r:1 x:1 b:1 00011' 'w:1 v:4 l:1 00'] = do
mb0's avatar
mb0 committed
252 253 254 255 256 257 258 259
   update
      @{rex='1',
        rexw=w,
        vexw=w,
        rexr=not r,
        rexb=not b,
        rexx=not x,
        vexl=l,
260
        vexv=complement v,
mb0's avatar
mb0 committed
261 262 263
        vexm='00011'}
end

mb0's avatar
mb0 committed
264
val p/vex/66/0f/3a [0xc4 'r:1 x:1 b:1 00011' 'w:1 v:4 l:1 01'] = do
mb0's avatar
mb0 committed
265 266 267 268 269 270 271 272
   update
      @{rex='1',
        rexw=w,
        vexw=w,
        rexr=not r,
        rexb=not b,
        rexx=not x,
        vexl=l,
273
        vexv=complement v,
mb0's avatar
mb0 committed
274 275 276
        vexm='00011'}
end

mb0's avatar
mb0 committed
277
val p/vex/f2/0f/3a [0xc4 'r:1 x:1 b:1 00011' 'w:1 v:4 l:1 11'] = do
mb0's avatar
mb0 committed
278 279
   update
      @{rex='1',
Julian Kranz's avatar
Julian Kranz committed
280
	rexw=w,
mb0's avatar
mb0 committed
281 282 283 284 285
        vexw=w,
        rexr=not r,
        rexb=not b,
        rexx=not x,
        vexl=l,
286
        vexv=complement v,
mb0's avatar
mb0 committed
287 288 289
        vexm='00011'}
end

mb0's avatar
mb0 committed
290
val p/vex/f3/0f/3a [0xc4 'r:1 x:1 b:1 00011' 'w:1 v:4 l:1 10'] = do
mb0's avatar
mb0 committed
291 292 293 294 295 296 297 298
   update
      @{rex='1',
        rexw=w,
        vexw=w,
        rexr=not r,
        rexb=not b,
        rexx=not x,
        vexl=l,
299
        vexv=complement v,
mb0's avatar
mb0 committed
300 301 302
        vexm='00011'}
end

mb0's avatar
mb0 committed
303 304 305 306
val p64 [0x66] = do set-opndsz; p/66 end
val p64 [0xf2] = do set-repne; p/f2 end
val p64 [0xf3] = do set-rep; p/f3 end
val p64 [/legacy-p] = p64
mb0's avatar
mb0 committed
307
val p64 [/rex-p] = p64
mb0's avatar
mb0 committed
308 309 310 311
#val p64 [p/vex/0f] = /vex/0f
val p64 [p/vex/f2/0f] = /vex/f2/0f
val p64 [p/vex/f3/0f] = /vex/f3/0f
val p64 [p/vex/66/0f] = /vex/66/0f
mb0's avatar
mb0 committed
312 313
val p64 [p/vex/66/0f/38] = /vex/66/0f/38
val p64 [p/vex/66/0f/3a] = /vex/66/0f/3a
mb0's avatar
mb0 committed
314 315
#val p64 [p/vex/66/f2/0f] = /vex/66/f2/0f
#val p64 [p/vex/66/f3/0f] = /vex/66/f3/0f
mb0's avatar
mb0 committed
316
val p64 [] = /
mb0's avatar
mb0 committed
317 318 319

val p/66 [0xf2] = do set-repne; p/66/f2 end
val p/66 [0xf3] = do set-rep; p/66/f3 end
mb0's avatar
mb0 committed
320
val p/66 [0x66] = do set-opndsz; p/66 end
mb0's avatar
mb0 committed
321
val p/66 [/legacy-p] = p/66
mb0's avatar
mb0 committed
322
val p/66 [/rex-p] = p/66
mb0's avatar
mb0 committed
323
val p/66 [] = after /66 /
mb0's avatar
mb0 committed
324

mb0's avatar
mb0 committed
325
val p/f2 [0x66] = do set-opndsz; p/66/f2 end
mb0's avatar
mb0 committed
326
val p/f2 [0xf2] = do set-repne; p/f2 end
mb0's avatar
mb0 committed
327
val p/f2 [0xf3] = do set-rep; p/f2/f3 end
mb0's avatar
mb0 committed
328
val p/f2 [/legacy-p] = p/f2
mb0's avatar
mb0 committed
329
val p/f2 [/rex-p] = p/f2
mb0's avatar
mb0 committed
330
val p/f2 [] = after /f2 / 
mb0's avatar
mb0 committed
331

mb0's avatar
mb0 committed
332
val p/f3 [0x66] = do set-opndsz; p/66/f3 end
mb0's avatar
mb0 committed
333
val p/f3 [0xf2] = do set-repne; p/f3/f2 end
mb0's avatar
mb0 committed
334
val p/f3 [0xf3] = do set-rep; p/f3 end
mb0's avatar
mb0 committed
335
val p/f3 [/legacy-p] = p/f3
mb0's avatar
mb0 committed
336
val p/f3 [/rex-p] = p/f3
mb0's avatar
mb0 committed
337
val p/f3 [] = after /f3 / 
mb0's avatar
mb0 committed
338

mb0's avatar
mb0 committed
339
val p/f2/f3 [0x66] = do set-opndsz; p/66/f2/f3 end
mb0's avatar
mb0 committed
340 341
val p/f2/f3 [0xf2] = do set-repne; p/f3/f2 end
val p/f2/f3 [0xf3] = do set-rep; p/f2/f3 end
mb0's avatar
mb0 committed
342
val p/f2/f3 [/legacy-p] = p/f2/f3
mb0's avatar
mb0 committed
343
val p/f2/f3 [/rex-p] = p/f2/f3
mb0's avatar
mb0 committed
344
val p/f2/f3 [] = after /f3 (after /f2 /)
mb0's avatar
mb0 committed
345

mb0's avatar
mb0 committed
346
val p/f3/f2 [0x66] = do set-opndsz; p/66/f2/f3 end
mb0's avatar
mb0 committed
347 348
val p/f3/f2 [0xf2] = do set-repne; p/f3/f2 end
val p/f3/f2 [0xf3] = do set-rep; p/f2/f3 end
mb0's avatar
mb0 committed
349
val p/f3/f2 [/legacy-p] = p/f3/f2
mb0's avatar
mb0 committed
350
val p/f3/f2 [/rex-p] = p/f3/f2
mb0's avatar
mb0 committed
351
val p/f3/f2 [] = after /f2 (after /f3 /)
mb0's avatar
mb0 committed
352

mb0's avatar
mb0 committed
353
val p/66/f2 [0x66] = do set-opndsz; p/66/f2 end
mb0's avatar
mb0 committed
354
val p/66/f2 [0xf2] = do set-repne; p/66/f2 end
mb0's avatar
mb0 committed
355
val p/66/f2 [0xf3] = do set-rep; p/66/f2/f3 end
mb0's avatar
mb0 committed
356
val p/66/f2 [/legacy-p] = p/66/f2
mb0's avatar
mb0 committed
357
val p/66/f2 [/rex-p] = p/66/f2
mb0's avatar
mb0 committed
358
val p/66/f2 [] = after /f2 (after /66 /)
mb0's avatar
mb0 committed
359

mb0's avatar
mb0 committed
360
val p/66/f3 [0x66] = do set-opndsz; p/66/f3 end
mb0's avatar
mb0 committed
361
val p/66/f3 [0xf2] = do set-repne; p/66/f3/f2 end
mb0's avatar
mb0 committed
362
val p/66/f3 [0xf3] = do set-rep; p/66/f3 end
mb0's avatar
mb0 committed
363
val p/66/f3 [/legacy-p] = p/66/f3
mb0's avatar
mb0 committed
364
val p/66/f3 [/rex-p] = p/66/f3
mb0's avatar
mb0 committed
365 366 367
val p/66/f3 [] = after /f3 (after /66 /)

val p/66/f2/f3 [0x66] = do clear-rex; p/66/f2/f3 end
mb0's avatar
mb0 committed
368 369
val p/66/f2/f3 [0xf2] = do clear-rex; p/66/f3/f2 end
val p/66/f2/f3 [0xf3] = do clear-rex; p/66/f2/f3 end
mb0's avatar
mb0 committed
370
val p/66/f2/f3 [/legacy-p] = p/66/f2/f3
mb0's avatar
mb0 committed
371
val p/66/f2/f3 [/rex-p] = p/66/f2/f3
mb0's avatar
mb0 committed
372
val p/66/f2/f3 [] = after /f3 (after /f2 (after /66 /))
mb0's avatar
mb0 committed
373

mb0's avatar
mb0 committed
374
val p/66/f3/f2 [0x66] = do clear-rex; p/66/f3/f2 end
mb0's avatar
mb0 committed
375 376
val p/66/f3/f2 [0xf2] = do clear-rex; p/66/f3/f2 end
val p/66/f3/f2 [0xf3] = do clear-rex; p/66/f2/f3 end
mb0's avatar
mb0 committed
377
val p/66/f3/f2 [/legacy-p] = p/66/f3/f2
mb0's avatar
mb0 committed
378
val p/66/f3/f2 [/rex-p] = p/66/f3/f2
mb0's avatar
mb0 committed
379
val p/66/f3/f2 [] = after /f2 (after /f3 (after /66 /))
mb0's avatar
mb0 committed
380

mb0's avatar
Foo.  
mb0 committed
381
type register =
mb0's avatar
mb0 committed
382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499
   AL
 | AH
 | AX
 | EAX
 | RAX
 | BL
 | BH
 | BX
 | EBX
 | RBX
 | CL
 | CH
 | CX
 | ECX
 | RCX
 | DL
 | DH
 | DX
 | EDX
 | RDX
 | R8B
 | R8L
 | R8D
 | R8 
 | R9B
 | R9L
 | R9D
 | R9 
 | R10B
 | R10L
 | R10D
 | R10 
 | R11B
 | R11L
 | R11D
 | R11 
 | R12B
 | R12L
 | R12D
 | R12 
 | R13B
 | R13L
 | R13D
 | R13 
 | R14B
 | R14L
 | R14D
 | R14 
 | R15B
 | R15L
 | R15D
 | R15 
 | SP
 | ESP
 | RSP
 | BP
 | EBP
 | RBP
 | SI
 | ESI
 | RSI
 | DI
 | EDI
 | RDI
 | XMM0
 | XMM1
 | XMM2
 | XMM3
 | XMM4
 | XMM5
 | XMM6
 | XMM7
 | XMM8
 | XMM9
 | XMM10
 | XMM11
 | XMM12
 | XMM13
 | XMM14
 | XMM15
 | YMM0
 | YMM1
 | YMM2
 | YMM3
 | YMM4
 | YMM5
 | YMM6
 | YMM7
 | YMM8
 | YMM9
 | YMM10
 | YMM11
 | YMM12
 | YMM13
 | YMM14
 | YMM15
 | MM0
 | MM1
 | MM2
 | MM3
 | MM4
 | MM5
 | MM6
 | MM7
 | MM8
 | MM9
 | MM10
 | MM11
 | MM12
 | MM13
 | MM14
 | MM15
 | ES
 | SS
 | DS
 | FS
 | GS
 | CS
mb0's avatar
mb0 committed
500 501 502 503 504 505 506 507
 | ST0
 | ST1
 | ST2
 | ST3
 | ST4
 | ST5
 | ST6
 | ST7
mb0's avatar
mb0 committed
508
 | RIP
mb0's avatar
mb0 committed
509

mb0's avatar
Foo.  
mb0 committed
510
type opnd =
mb0's avatar
mb0 committed
511 512 513 514 515
   IMM8 of 8
 | IMM16 of 16
 | IMM32 of 32
 | IMM64 of 64
 | REG of register
mb0's avatar
Foo.  
mb0 committed
516
 | MEM of {sz:int,psz:int,segment:register,opnd:opnd}
mb0's avatar
sem.  
mb0 committed
517 518
 | SUM of {a:opnd,b:opnd}
 | SCALE of {imm:2,opnd:opnd}
mb0's avatar
mb0 committed
519

mb0's avatar
Foo.  
mb0 committed
520
type flowopnd =
mb0's avatar
mb0 committed
521 522 523 524
   REL8 of 8
 | REL16 of 16
 | REL32 of 32
 | REL64 of 64
Julian Kranz's avatar
Julian Kranz committed
525 526
 | PTR16/16 of 32
 | PTR16/32 of 48
mb0's avatar
mb0 committed
527 528 529
 | NEARABS of opnd
 | FARABS of opnd

530 531 532 533 534
type flow1 = {opnd1:flowopnd}
type arity1 = {opnd1:opnd}
type arity2 = {opnd1:opnd,opnd2:opnd} 
type arity3 = {opnd1:opnd,opnd2:opnd,opnd3:opnd} 
type arity4 = {opnd1:opnd,opnd2:opnd,opnd3:opnd,opnd4:opnd} 
mb0's avatar
mb0 committed
535

mb0's avatar
Foo.  
mb0 committed
536
type varity =
mb0's avatar
mb0 committed
537 538 539 540 541 542
   VA0
 | VA1 of arity1
 | VA2 of arity2
 | VA3 of arity3
 | VA4 of arity4

mb0's avatar
Foo.  
mb0 committed
543
type insn =
mb0's avatar
mb0 committed
544 545 546 547 548
   AAA
 | AAD of arity1
 | AAM of arity1
 | AAS
 | ADC of arity2
mb0's avatar
mb0 committed
549
 | ADD of arity2
mb0's avatar
mb0 committed
550
 | ADDPD of arity2
Julian Kranz's avatar
Merge  
Julian Kranz committed
551 552 553 554 555 556 557 558 559 560 561
 | ADDPS of arity2
 | ADDSD of arity2
 | ADDSS of arity2
 | ADDSUBPD of arity2
 | ADDSUBPS of arity2
 | AESDEC of arity2
 | AESDECLAST of arity2
 | AESENC of arity2
 | AESENCLAST of arity2
 | AESIMC of arity2
 | AESKEYGENASSIST of arity3
mb0's avatar
mb0 committed
562
 | AND of arity2
Julian Kranz's avatar
Julian Kranz committed
563 564
 | ANDNPD of arity2
 | ANDNPS of arity2
Julian Kranz's avatar
Julian Kranz committed
565 566
 | ANDPD of arity2
 | ANDPS of arity2
Julian Kranz's avatar
Julian Kranz committed
567 568 569
 | ARPL of arity2
 | BLENDPD of arity3
 | BLENDPS of arity3
Julian Kranz's avatar
Julian Kranz committed
570
 | BLENDVPD of arity3
Julian Kranz's avatar
Julian Kranz committed
571
 | BLENDVPS of arity3
Julian Kranz's avatar
Julian Kranz committed
572
 | BOUND of arity2
mb0's avatar
mb0 committed
573 574
 | BSF of arity2
 | BSR of arity2
mb0's avatar
mb0 committed
575
 | BSWAP of arity1
mb0's avatar
mb0 committed
576
 | BT of arity2
Julian Kranz's avatar
Julian Kranz committed
577 578 579
 | BTC of arity2
 | BTR of arity2
 | BTS of arity2
mb0's avatar
mb0 committed
580
 | CALL of flow1
mb0's avatar
mb0 committed
581
 | CBW
Julian Kranz's avatar
Julian Kranz committed
582
 | CDQ 
mb0's avatar
mb0 committed
583
 | CDQE
Julian Kranz's avatar
Julian Kranz committed
584
 | CLC
mb0's avatar
mb0 committed
585
 | CLD
Julian Kranz's avatar
Julian Kranz committed
586 587 588 589
 | CLFLUSH of arity1
 | CLI
 | CLTS
 | CMC
mb0's avatar
mb0 committed
590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620
 | CMOVA of arity2
 | CMOVAE of arity2
 | CMOVB of arity2
 | CMOVBE of arity2
 | CMOVC of arity2
 | CMOVE of arity2
 | CMOVG of arity2
 | CMOVGE of arity2
 | CMOVL of arity2
 | CMOVLE of arity2
 | CMOVNA of arity2
 | CMOVNAE of arity2
 | CMOVNB of arity2
 | CMOVNBE of arity2
 | CMOVNC of arity2
 | CMOVNE of arity2
 | CMOVNG of arity2
 | CMOVNGE of arity2
 | CMOVNL of arity2
 | CMOVNLE of arity2
 | CMOVNO of arity2
 | CMOVNP of arity2
 | CMOVNS of arity2
 | CMOVNZ of arity2
 | CMOVO of arity2
 | CMOVP of arity2
 | CMOVPE of arity2
 | CMOVPO of arity2
 | CMOVS of arity2
 | CMOVZ of arity2
 | CMP of arity2
Julian Kranz's avatar
Julian Kranz committed
621 622
 | CMPPD of arity3
 | CMPPS of arity3
mb0's avatar
mb0 committed
623
 | CMPSB
Julian Kranz's avatar
Julian Kranz committed
624
 | CMPSD of varity
mb0's avatar
mb0 committed
625
 | CMPSQ
Julian Kranz's avatar
Julian Kranz committed
626
 | CMPSS of arity3
Julian Kranz's avatar
Julian Kranz committed
627
 | CMPSW
mb0's avatar
mb0 committed
628
 | CMPXCHG of arity2
Julian Kranz's avatar
Julian Kranz committed
629
 | CMPXCHG16B of arity1
Julian Kranz's avatar
Julian Kranz committed
630
 | CMPXCHG8B of arity1
Julian Kranz's avatar
Julian Kranz committed
631 632
 | COMISD of arity2
 | COMISS of arity2
mb0's avatar
mb0 committed
633
 | CPUID
Julian Kranz's avatar
Julian Kranz committed
634
 | CQO
Julian Kranz's avatar
Julian Kranz committed
635
 | CRC32 of arity2
Julian Kranz's avatar
Julian Kranz committed
636 637 638
 | CVTDQ2PD of arity2
 | CVTDQ2PS of arity2
 | CVTPD2DQ of arity2
mb0's avatar
mb0 committed
639
 | CVTPD2PI of arity2
Julian Kranz's avatar
Julian Kranz committed
640 641 642 643 644 645 646 647
 | CVTPD2PS of arity2
 | CVTPI2PD of arity2
 | CVTPI2PS of arity2
 | CVTPS2DQ of arity2
 | CVTPS2PD of arity2
 | CVTPS2PI of arity2
 | CVTSD2SI of arity2
 | CVTSD2SS of arity2
mb0's avatar
mb0 committed
648
 | CVTSI2SD of arity2
Julian Kranz's avatar
Julian Kranz committed
649 650 651 652 653 654 655 656 657 658
 | CVTSI2SS of arity2
 | CVTSS2SD of arity2
 | CVTSS2SI of arity2
 | CVTTPD2DQ of arity2
 | CVTTPD2PI of arity2
 | CVTTPS2DQ of arity2
 | CVTTPS2PI of arity2
 | CVTTSD2SI of arity2
 | CVTTSS2SI of arity2
 | CWD
Julian Kranz's avatar
Julian Kranz committed
659
 | CWDE
Julian Kranz's avatar
Julian Kranz committed
660 661
 | DAA
 | DAS
mb0's avatar
mb0 committed
662 663
 | DEC of arity1
 | DIV of arity1
Julian Kranz's avatar
Julian Kranz committed
664 665 666 667 668 669 670 671 672
 | DIVPD of arity2
 | DIVPS of arity2
 | DIVSD of arity2
 | DIVSS of arity2
 | DPPD of arity3
 | DPPS of arity3
 | EMMS
 | ENTER of arity2
 | EXTRACTPS of arity3
Julian Kranz's avatar
Julian Kranz committed
673 674
 | F2XM1
 | FABS
Julian Kranz's avatar
Julian Kranz committed
675
 | FADD of arity2
Julian Kranz's avatar
Julian Kranz committed
676
 | FADDP of arity2
Julian Kranz's avatar
Julian Kranz committed
677 678
 | FBLD of arity1
 | FBSTP of arity1
mb0's avatar
mb0 committed
679
 | FCHS
Julian Kranz's avatar
Julian Kranz committed
680
 | FCLEX
mb0's avatar
mb0 committed
681 682 683 684 685 686 687 688
 | FCMOVB of arity2
 | FCMOVBE of arity2
 | FCMOVE of arity2
 | FCMOVNB of arity2
 | FCMOVNBE of arity2
 | FCMOVNE of arity2
 | FCMOVNU of arity2
 | FCMOVU of arity2
Julian Kranz's avatar
Julian Kranz committed
689
 | FCOM of arity1
mb0's avatar
mb0 committed
690 691
 | FCOMI of arity2
 | FCOMIP of arity2
Julian Kranz's avatar
Julian Kranz committed
692 693
 | FCOMP of arity1
 | FCOMPP
Julian Kranz's avatar
Julian Kranz committed
694 695 696 697 698 699 700
 | FCOS
 | FDECSTP
 | FDIV of arity2
 | FDIVP of arity2
 | FDIVR of arity2
 | FDIVRP of arity2
 | FFREE of arity1
Julian Kranz's avatar
Julian Kranz committed
701
 | FIADD of arity1
Julian Kranz's avatar
Julian Kranz committed
702 703
 | FICOM of arity1
 | FICOMP of arity1
Julian Kranz's avatar
Julian Kranz committed
704 705
 | FIDIV of arity2
 | FIDIVR of arity1
Julian Kranz's avatar
Julian Kranz committed
706
 | FILD of arity1
Julian Kranz's avatar
Julian Kranz committed
707
 | FIMUL of arity1
Julian Kranz's avatar
Julian Kranz committed
708 709 710 711 712
 | FINCSTP
 | FINIT
 | FIST of arity1
 | FISTP of arity1
 | FISTTP of arity1
Julian Kranz's avatar
Julian Kranz committed
713 714
 | FISUB of arity1
 | FISUBR of arity1
mb0's avatar
mb0 committed
715
 | FLD of arity1
Julian Kranz's avatar
Julian Kranz committed
716 717 718
 | FLD1
 | FLDCW of arity1
 | FLDENV of arity1
mb0's avatar
mb0 committed
719 720 721 722 723 724
 | FLDL2E
 | FLDL2T
 | FLDLG2
 | FLDLN2
 | FLDPI
 | FLDZ
Julian Kranz's avatar
Julian Kranz committed
725 726
 | FMUL of arity2
 | FMULP of arity2
Julian Kranz's avatar
Julian Kranz committed
727 728
 | FNCLEX
 | FNINIT
Julian Kranz's avatar
Julian Kranz committed
729
 | FNOP
Julian Kranz's avatar
Julian Kranz committed
730 731 732 733
 | FNSAVE of arity1
 | FNSTCW of arity1
 | FNSTENV of arity1
 | FNSTSW of arity1
Julian Kranz's avatar
Julian Kranz committed
734 735 736 737 738
 | FPATAN
 | FPREM
 | FPREM1
 | FPTAN
 | FRNDINT
Julian Kranz's avatar
Julian Kranz committed
739 740
 | FRSTOR of arity1
 | FSAVE of arity1
Julian Kranz's avatar
Julian Kranz committed
741 742 743 744
 | FSCALE
 | FSIN
 | FSINCOS
 | FSQRT
mb0's avatar
mb0 committed
745
 | FST of arity1
Julian Kranz's avatar
Julian Kranz committed
746
 | FSTCW of arity1
Julian Kranz's avatar
Julian Kranz committed
747
 | FSTENV of arity1
Julian Kranz's avatar
Julian Kranz committed
748
 | FSTP of arity1
Julian Kranz's avatar
Julian Kranz committed
749 750 751 752 753 754 755
 | FSTSW of arity1
 | FSUB of arity2
 | FSUBP of arity2
 | FSUBR of arity2
 | FSUBRP of arity2
 | FTST
 | FUCOM of arity1
Julian Kranz's avatar
Julian Kranz committed
756 757
 | FUCOMI of arity1
 | FUCOMIP of arity1
Julian Kranz's avatar
Julian Kranz committed
758 759 760 761 762 763 764 765 766 767 768 769 770
 | FUCOMP of arity1
 | FUCOMPP
 | FXAM
 | FXCH of arity1
 | FXRSTOR64_m512byte
 | FXRSTOR_m512byte
 | FXSAVE64_m512byte
 | FXSAVE_m512byte
 | FXTRACT
 | FYL2X
 | FYL2XP1
 | HADDPD of arity2
 | HADDPS of arity2
mb0's avatar
mb0 committed
771
 | HLT
Julian Kranz's avatar
Julian Kranz committed
772
 | HSUBPD of arity2
Julian Kranz's avatar
Julian Kranz committed
773
 | HSUBPS of arity2
mb0's avatar
mb0 committed
774
 | IDIV of arity1
Julian Kranz's avatar
Julian Kranz committed
775 776
 | IMUL of varity
 | IN of arity2
mb0's avatar
mb0 committed
777
 | INC of arity1
Julian Kranz's avatar
Julian Kranz committed
778 779 780
 | INSERTPS of arity3
 | INT of arity1
 | INT0
Julian Kranz's avatar
Julian Kranz committed
781
 | INT3
Julian Kranz's avatar
Julian Kranz committed
782 783
 | INVD
 | INVLPG of arity1
Julian Kranz's avatar
Julian Kranz committed
784 785 786 787
 | INVPCID of arity2
 | IRET
 | IRETD
 | IRETQ
mb0's avatar
mb0 committed
788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821
 | JA of flow1
 | JAE of flow1
 | JB of flow1
 | JBE of flow1
 | JC of flow1
 | JCXZ of flow1
 | JE of flow1
 | JECXZ of flow1
 | JG of flow1
 | JGE of flow1
 | JL of flow1
 | JLE of flow1
 | JMP of flow1
 | JNA of flow1
 | JNAE of flow1
 | JNB of flow1
 | JNBE of flow1
 | JNC of flow1
 | JNE of flow1
 | JNG of flow1
 | JNGE of flow1
 | JNL of flow1
 | JNLE of flow1
 | JNO of flow1
 | JNP of flow1
 | JNS of flow1
 | JNZ of flow1
 | JO of flow1
 | JP of flow1
 | JPE of flow1
 | JPO of flow1
 | JRCXZ of flow1
 | JS of flow1
 | JZ of flow1
Julian Kranz's avatar
Julian Kranz committed
822 823
 | LAHF
 | LAR of arity2
mb0's avatar
mb0 committed
824
 | LDDQU of arity2
Julian Kranz's avatar
Julian Kranz committed
825 826
 | LDMXCSR of arity1
 | LDS of arity2
mb0's avatar
mb0 committed
827
 | LEA of arity2
mb0's avatar
mb0 committed
828
 | LEAVE
Julian Kranz's avatar
Julian Kranz committed
829
 | LES of arity2
mb0's avatar
mb0 committed
830
 | LFENCE
Julian Kranz's avatar
Julian Kranz committed
831
 | LFS of arity2
Julian Kranz's avatar
Julian Kranz committed
832
 | LGDT of arity1
Julian Kranz's avatar
Julian Kranz committed
833
 | LGS of arity2
Julian Kranz's avatar
Julian Kranz committed
834
 | LIDT of arity1
Julian Kranz's avatar
Julian Kranz committed
835 836 837 838 839 840
 | LLDT of arity1
 | LMSW of arity1
 | LOCK
 | LODSB
 | LODSD
 | LODSQ
Julian Kranz's avatar
Julian Kranz committed
841
 | LODSW
Julian Kranz's avatar
Julian Kranz committed
842 843 844 845
 | LOOP of flow1
 | LOOPE of flow1
 | LOOPNE of flow1
 | LSL of arity2
Julian Kranz's avatar
Julian Kranz committed
846
 | LSS of arity2
Julian Kranz's avatar
Julian Kranz committed
847
 | LTR of arity1
mb0's avatar
mb0 committed
848 849 850 851 852 853
 | MASKMOVDQU of arity2
 | MASKMOVQ of arity2
 | MAXPD of arity2
 | MAXPS of arity2
 | MAXSD of arity2
 | MAXSS of arity2
mb0's avatar
mb0 committed
854
 | MFENCE
mb0's avatar
mb0 committed
855 856 857 858
 | MINPD of arity2
 | MINPS of arity2
 | MINSD of arity2
 | MINSS of arity2
mb0's avatar
mb0 committed
859
 | MONITOR
mb0's avatar
mb0 committed
860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884
 | MOV of arity2
 | MOVAPD of arity2
 | MOVAPS of arity2
 | MOVBE of arity2
 | MOVD of arity2
 | MOVDDUP of arity2
 | MOVDQ2Q of arity2
 | MOVDQA of arity2
 | MOVDQU of arity2
 | MOVHLPS of arity2
 | MOVHPD of arity2
 | MOVHPS of arity2
 | MOVLHPS of arity2
 | MOVLPD of arity2
 | MOVLPS of arity2
 | MOVMSKPD of arity2
 | MOVMSKPS of arity2
 | MOVNTDQ of arity2
 | MOVNTDQA of arity2
 | MOVNTI of arity2
 | MOVNTPD of arity2
 | MOVNTPS of arity2
 | MOVNTQ of arity2
 | MOVQ of arity2
 | MOVQ2DQ of arity2
mb0's avatar
mb0 committed
885
 | MOVSB
mb0's avatar
mb0 committed
886
 | MOVSD of varity
mb0's avatar
mb0 committed
887 888
 | MOVSHDUP of arity2
 | MOVSLDUP of arity2
mb0's avatar
mb0 committed
889
 | MOVSQ
mb0's avatar
mb0 committed
890 891 892 893 894 895 896 897 898 899 900 901 902
 | MOVSS of arity2
 | MOVSW of arity2
 | MOVSX of arity2
 | MOVSXD of arity2
 | MOVUPD of arity2
 | MOVUPS of arity2
 | MOVZX of arity2
 | MPSADBW of arity3
 | MUL of arity1
 | MULPD of arity2
 | MULPS of arity2
 | MULSD of arity2
 | MULSS of arity2
Julian Kranz's avatar
Julian Kranz committed
903
 | MWAIT
mb0's avatar
mb0 committed
904 905 906 907 908 909 910
 | NEG of arity1
 | NOP of varity
 | NOT of arity1
 | OR of arity2
 | ORPD of arity2
 | ORPS of arity2
 | OUT of arity2
Julian Kranz's avatar
Julian Kranz committed
911 912 913
 | OUTS
 | OUTSB
 | OUTSD
Julian Kranz's avatar
Julian Kranz committed
914
 | OUTSW
Julian Kranz's avatar
Julian Kranz committed
915 916
 | PABSB of arity2
 | PABSD of arity2
Julian Kranz's avatar
Julian Kranz committed
917
 | PABSW of arity2
Julian Kranz's avatar
Julian Kranz committed
918
 | PACKSSDW of arity2
Julian Kranz's avatar
Julian Kranz committed
919
 | PACKSSWB of arity2
Julian Kranz's avatar
Julian Kranz committed
920
 | PACKUSDW of arity2
Julian Kranz's avatar
Julian Kranz committed
921
 | PACKUSWB of arity2
Julian Kranz's avatar
Julian Kranz committed
922 923
 | PADDB of arity2
 | PADDD of arity2
Julian Kranz's avatar
Julian Kranz committed
924
 | PADDQ of arity2
Julian Kranz's avatar
Julian Kranz committed
925 926
 | PADDSB of arity2
 | PADDSW of arity2
Julian Kranz's avatar
Julian Kranz committed
927 928
 | PADDUSB of arity2
 | PADDUSW of arity2
Julian Kranz's avatar
Julian Kranz committed
929
 | PADDW of arity2
mb0's avatar
mb0 committed
930 931
 | PALIGNR of arity3
 | PAND of arity2
Julian Kranz's avatar
Julian Kranz committed
932
 | PANDN of arity2
Julian Kranz's avatar
Julian Kranz committed
933
 | PAUSE
Julian Kranz's avatar
Julian Kranz committed
934 935
 | PAVGB of arity2
 | PAVGW of arity2
Julian Kranz's avatar
Julian Kranz committed
936
 | PBLENDVB of arity2
Julian Kranz's avatar
Julian Kranz committed
937
 | PBLENDW of arity3
Julian Kranz's avatar
Julian Kranz committed
938
 | PCLMULQDQ of arity3
mb0's avatar
mb0 committed
939 940 941 942 943
 | PCMPEQB of arity2
 | PCMPEQD of arity2
 | PCMPEQQ of arity2
 | PCMPEQW of arity2
 | PCMPESTRI of arity3
Julian Kranz's avatar
Julian Kranz committed
944
 | PCMPESTRM of arity3
mb0's avatar
mb0 committed
945 946 947
 | PCMPGRD of arity2
 | PCMPGTB of arity2
 | PCMPGTD of arity2
Julian Kranz's avatar
Julian Kranz committed
948
 | PCMPGTQ of arity2
Julian Kranz's avatar
Julian Kranz committed
949
 | PCMPGTW of arity2
mb0's avatar
mb0 committed
950
 | PCMPISTRI of arity3
Julian Kranz's avatar
Julian Kranz committed
951
 | PCMPISTRM of arity3
Julian Kranz's avatar
Julian Kranz committed
952 953 954
 | PEXTRB of arity3
 | PEXTRD of arity3
 | PEXTRQ of arity3
Julian Kranz's avatar
Julian Kranz committed
955
 | PEXTRW of arity3
mb0's avatar
mb0 committed
956
 | PHADDD of arity2
Julian Kranz's avatar
Julian Kranz committed
957
 | PHADDSW of arity2
Julian Kranz's avatar
Julian Kranz committed
958
 | PHADDW of arity2
Julian Kranz's avatar
Julian Kranz committed
959
 | PHMINPOSUW of arity2
Julian Kranz's avatar
Julian Kranz committed
960
 | PHSUBD of arity2
Julian Kranz's avatar
Julian Kranz committed
961
 | PHSUBSW of arity2
Julian Kranz's avatar
Julian Kranz committed
962
 | PHSUBW of arity2
mb0's avatar
mb0 committed
963 964 965
 | PINSRB of arity3
 | PINSRD of arity3
 | PINSRQ of arity3
Julian Kranz's avatar
Julian Kranz committed
966
 | PINSRW of arity3
Julian Kranz's avatar
Julian Kranz committed
967
 | PMADDUBSW of arity2
Julian Kranz's avatar
Julian Kranz committed
968 969
 | PMADDWD of arity2
 | PMAXSB of arity2
Julian Kranz's avatar
Julian Kranz committed
970
 | PMAXSD of arity2
Julian Kranz's avatar
Julian Kranz committed
971
 | PMAXSW of arity2
Julian Kranz's avatar
Julian Kranz committed
972
 | PMAXUB of arity2
Julian Kranz's avatar
Julian Kranz committed
973
 | PMAXUD of arity2
Julian Kranz's avatar
Julian Kranz committed
974 975
 | PMAXUW of arity2
 | PMINSB of arity2
Julian Kranz's avatar
Julian Kranz committed
976
 | PMINSD of arity2
Julian Kranz's avatar
Julian Kranz committed
977 978
 | PMINSW of arity2
 | PMINUB of arity2
Julian Kranz's avatar
Julian Kranz committed
979 980
 | PMINUD of arity2
 | PMINUW of arity2
mb0's avatar
mb0 committed
981
 | PMOVMSKB of arity2
Julian Kranz's avatar
Julian Kranz committed
982 983
 | PMOVSXBD of arity2
 | PMOVSXBQ of arity2
Julian Kranz's avatar
Julian Kranz committed
984 985
 | PMOVSXBW of arity2
 | PMOVSXDQ of arity2
Julian Kranz's avatar
Julian Kranz committed
986 987 988 989
 | PMOVSXWD of arity2
 | PMOVSXWQ of arity2
 | PMOVZXBD of arity2
 | PMOVZXBQ of arity2
Julian Kranz's avatar
Julian Kranz committed
990 991
 | PMOVZXBW of arity2
 | PMOVZXDQ of arity2
Julian Kranz's avatar
Julian Kranz committed
992 993 994 995 996 997 998 999
 | PMOVZXWD of arity2
 | PMOVZXWQ of arity2
 | PMULDQ of arity2
 | PMULHRSW of arity2
 | PMULHUW of arity2
 | PMULHW of arity2
 | PMULLD of arity2
 | PMULLW of arity2
Julian Kranz's avatar
Julian Kranz committed
1000
 | PMULUDQ of arity2
Julian Kranz's avatar
Julian Kranz committed
1001
 | POP of arity1
Julian Kranz's avatar
Julian Kranz committed
1002 1003 1004 1005 1006 1007
 | POPA
 | POPAD
 | POPCNT of arity2
 | POPF
 | POPFD
 | POPFQ
mb0's avatar
mb0 committed
1008 1009 1010 1011 1012 1013
 | POR of arity2
 | PREFETCHNTA of arity1
 | PREFETCHT0 of arity1
 | PREFETCHT1 of arity1
 | PREFETCHT2 of arity1
 | PREFETCHW of arity1
Julian Kranz's avatar
Julian Kranz committed
1014
 | PSADBW of arity2
mb0's avatar
mb0 committed
1015 1016
 | PSHUFB of arity2
 | PSHUFD of arity3
Julian Kranz's avatar
Julian Kranz committed
1017 1018 1019 1020 1021
 | PSHUFHW of arity3
 | PSHUFLW of arity3
 | PSHUFW of arity3
 | PSIGNB of arity2
 | PSIGND of arity2
Julian Kranz's avatar
Julian Kranz committed
1022
 | PSIGNW of arity2
Julian Kranz's avatar
Julian Kranz committed
1023
 | PSLLD of arity2
Julian Kranz's avatar
Julian Kranz committed
1024
 | PSLLDQ of arity2
Julian Kranz's avatar
Julian Kranz committed
1025
 | PSLLQ of arity2
Julian Kranz's avatar
Julian Kranz committed
1026
 | PSLLW of arity2
Julian Kranz's avatar
Julian Kranz committed
1027
 | PSRAD of arity2
Julian Kranz's avatar
Julian Kranz committed
1028
 | PSRAW of arity2
Julian Kranz's avatar
Julian Kranz committed
1029
 | PSRLD of arity2
Julian Kranz's avatar
Julian Kranz committed
1030
 | PSRLDQ of arity2
Julian Kranz's avatar
Julian Kranz committed
1031
 | PSRLQ of arity2
Julian Kranz's avatar
Julian Kranz committed
1032
 | PSRLW of arity2
mb0's avatar
mb0 committed
1033 1034
 | PSUBB of arity2
 | PSUBD of arity2
Julian Kranz's avatar
Julian Kranz committed
1035 1036 1037 1038 1039
 | PSUBQ of arity2
 | PSUBSB of arity2
 | PSUBSW of arity2
 | PSUBUSB of arity2
 | PSUBUSW of arity2
Julian Kranz's avatar
Julian Kranz committed
1040
 | PSUBW of arity2
mb0's avatar
mb0 committed
1041
 | PTEST of arity2
Julian Kranz's avatar
Julian Kranz committed
1042 1043 1044
 | PUNPCKHBW of arity2
 | PUNPCKHDQ of arity2
 | PUNPCKHQDQ of arity2
Julian Kranz's avatar
Julian Kranz committed
1045
 | PUNPCKHWD of arity2
mb0's avatar
mb0 committed
1046
 | PUNPCKLBW of arity2
Julian Kranz's avatar
Julian Kranz committed
1047
 | PUNPCKLDQ of arity2
mb0's avatar
mb0 committed
1048
 | PUNPCKLQDQ of arity2
Julian Kranz's avatar
Julian Kranz committed
1049
 | PUNPCKLWD of arity2
mb0's avatar
mb0 committed
1050
 | PUSH of arity1
Julian Kranz's avatar
Julian Kranz committed
1051 1052 1053 1054 1055
 | PUSHA
 | PUSHAD
 | PUSHF
 | PUSHFD
 | PUSHFQ
mb0's avatar
mb0 committed
1056 1057
 | PXOR of arity2
 | RCL of arity2
Julian Kranz's avatar
Julian Kranz committed
1058 1059
 | RCPPS of arity2
 | RCPSS of arity2
Julian Kranz's avatar
Julian Kranz committed
1060
 | RCR of arity2
Julian Kranz's avatar
Julian Kranz committed
1061 1062 1063
 | RDFSBASE of arity1
 | RDGSBASE of arity1
 | RDMSR
Julian Kranz's avatar
Julian Kranz committed
1064 1065
 | RDPMC
 | RDRAND of arity1
mb0's avatar
mb0 committed
1066 1067
 | RDTSC
 | RDTSCP
mb0's avatar
mb0 committed
1068 1069
 | RET of varity
 | RET_FAR of varity
Julian Kranz's avatar
Julian Kranz committed
1070 1071
 | ROL of arity2
 | ROR of arity2
Julian Kranz's avatar
Julian Kranz committed
1072 1073 1074 1075 1076 1077 1078 1079
 | ROUNDPD of arity3
 | ROUNDPS of arity3
 | ROUNDSD of arity3
 | ROUNDSS of arity3
 | RSM
 | RSQRTPS of arity2
 | RSQRTSS of arity2
 | SAHF
mb0's avatar
mb0 committed
1080 1081 1082
 | SAL of arity2
 | SAR of arity2
 | SBB of arity2
mb0's avatar
mb0 committed
1083 1084 1085 1086
 | SCASB
 | SCASD
 | SCASQ
 | SCASW
mb0's avatar
mb0 committed
1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116
 | SETA of arity1
 | SETAE of arity1
 | SETB of arity1
 | SETBE of arity1
 | SETC of arity1
 | SETE of arity1
 | SETG of arity1
 | SETGE of arity1
 | SETL of arity1
 | SETLE of arity1
 | SETNA of arity1
 | SETNAE of arity1
 | SETNB of arity1
 | SETNBE of arity1
 | SETNC of arity1
 | SETNE of arity1
 | SETNG of arity1
 | SETNGE of arity1
 | SETNL of arity1
 | SETNLE of arity1
 | SETNO of arity1
 | SETNP of arity1
 | SETNS of arity1
 | SETNZ of arity1
 | SETO of arity1
 | SETP of arity1
 | SETPE of arity1
 | SETPO of arity1
 | SETS of arity1
 | SETZ of arity1
mb0's avatar
mb0 committed
1117
 | SFENCE
Julian Kranz's avatar
Julian Kranz committed
1118
 | SGDT of arity1
Julian Kranz's avatar
Julian Kranz committed
1119
 | SHL of arity2
mb0's avatar
mb0 committed
1120
 | SHLD of arity3
Julian Kranz's avatar
Julian Kranz committed
1121
 | SHR of arity2
mb0's avatar
mb0 committed
1122
 | SHRD of arity3
Julian Kranz's avatar
Julian Kranz committed
1123 1124 1125 1126 1127 1128
 | SHUFPD of arity3
 | SHUFPS of arity3
 | SIDT of arity1
 | SLDT of arity1
 | SMSW of arity1
 | SQRTPD of arity2
Julian Kranz's avatar
Julian Kranz committed
1129
 | SQRTPS of arity2
Julian Kranz's avatar
Julian Kranz committed
1130 1131 1132 1133 1134 1135
 | SQRTSD of arity2
 | SQRTSS of arity2
 | STC
 | STD
 | STI
 | STMXCSR of arity1
mb0's avatar
mb0 committed
1136 1137 1138 1139
 | STOSB
 | STOSD
 | STOSQ
 | STOSW
Julian Kranz's avatar
Julian Kranz committed
1140
 | STR of arity1
Julian Kranz's avatar
Julian Kranz committed
1141
 | SUB of arity2
Julian Kranz's avatar
Julian Kranz committed
1142 1143 1144 1145
 | SUBPD of arity2
 | SUBPS of arity2
 | SUBSD of arity2
 | SUBSS of arity2
Julian Kranz's avatar
Julian Kranz committed
1146
 | SWAPGS
Julian Kranz's avatar
Julian Kranz committed
1147
 | SYSCALL
Julian Kranz's avatar
Julian Kranz committed
1148 1149 1150
 | SYSENTER
 | SYSEXIT
 | SYSRET
mb0's avatar
mb0 committed
1151 1152
 | TEST of arity2
 | UCOMISD of arity2
Julian Kranz's avatar
Julian Kranz committed
1153
 | UCOMISS of arity2
mb0's avatar
mb0 committed
1154
 | UD2
Julian Kranz's avatar
Julian Kranz committed
1155 1156 1157 1158
 | UNPCKHPD of arity2
 | UNPCKHPS of arity2
 | UNPCKLPD of arity2
 | UNPCKLPS of arity2 
mb0's avatar
mb0 committed
1159
 | VADDPD of varity
Julian Kranz's avatar
Merge  
Julian Kranz committed
1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170
 | VADDPS of varity
 | VADDSD of varity
 | VADDSS of varity
 | VADDSUBPD of varity
 | VADDSUBPS of varity
 | VAESDEC of varity
 | VAESDECLAST of varity
 | VAESENC of varity
 | VAESENCLAST of varity
 | VAESIMC of varity
 | VAESKEYGENASSIST of varity
Julian Kranz's avatar
Julian Kranz committed
1171 1172
 | VANDNPD of varity
 | VANDNPS of varity
Julian Kranz's avatar
Julian Kranz committed
1173 1174
 | VANDPD of varity
 | VANDPS of varity
Julian Kranz's avatar
Julian Kranz committed
1175 1176 1177 1178
 | VBLENDPD of varity
 | VBLENDPS of varity
 | VBLENDVPD of varity
 | VBLENDVPS of varity
Julian Kranz's avatar
Julian Kranz committed
1179 1180 1181
 | VBROADCASTF128 of varity
 | VBROADCASTSD of varity
 | VBROADCASTSS of varity
mb0's avatar
mb0 committed
1182 1183 1184
 | VCMPEQB of varity
 | VCMPEQD of varity
 | VCMPEQW of varity
Julian Kranz's avatar
Julian Kranz committed
1185 1186 1187 1188
 | VCMPPD of varity
 | VCMPPS of varity
 | VCMPSD of varity
 | VCMPSS of varity
Julian Kranz's avatar
Julian Kranz committed
1189 1190
 | VCOMISD of varity
 | VCOMISS of varity
Julian Kranz's avatar
Julian Kranz committed
1191 1192 1193
 | VCVTDQ2PD of varity
 | VCVTDQ2PS of varity
 | VCVTPD2DQ of varity
Julian Kranz's avatar
Julian Kranz committed
1194
 | VCVTPD2PS of varity
Julian Kranz's avatar
Julian Kranz committed
1195
 | VCVTPH2PS of varity
Julian Kranz's avatar
Julian Kranz committed
1196 1197
 | VCVTPS2DQ of varity
 | VCVTPS2PD of varity
Julian Kranz's avatar
Julian Kranz committed
1198
 | VCVTPS2PH of varity
Julian Kranz's avatar
Julian Kranz committed
1199 1200
 | VCVTSD2SI of varity
 | VCVTSD2SS of varity
Julian Kranz's avatar
Julian Kranz committed
1201 1202 1203 1204 1205 1206 1207 1208
 | VCVTSI2SD of varity
 | VCVTSI2SS of varity
 | VCVTSS2SD of varity
 | VCVTSS2SI of varity
 | VCVTTPD2DQ of varity
 | VCVTTPS2DQ of varity
 | VCVTTSD2SI of varity
 | VCVTTSS2SI of varity
Julian Kranz's avatar
Julian Kranz committed
1209 1210 1211 1212 1213 1214
 | VDIVPD of varity
 | VDIVPS of varity
 | VDIVSD of varity
 | VDIVSS of varity
 | VDPPD of varity
 | VDPPS of varity
Julian Kranz's avatar
Julian Kranz committed
1215 1216 1217
 | VERR of arity1
 | VERW of arity1
 | VEXTRACTF128 of varity
Julian Kranz's avatar
Julian Kranz committed
1218
 | VEXTRACTPS of varity
Julian Kranz's avatar
Julian Kranz committed
1219 1220
 | VHADDPD of varity
 | VHADDPS of varity
Julian Kranz's avatar
Julian Kranz committed
1221
 | VHSUBPD of varity
Julian Kranz's avatar
Julian Kranz committed
1222
 | VHSUBPS of varity
Julian Kranz's avatar
Julian Kranz committed
1223
 | VINSERTF128 of varity