| OLD | NEW |
| 1 # Copyright (c) 2012 The Native Client Authors. All rights reserved. | 1 # Copyright (c) 2012 The Native Client Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 ################################################################################ | 4 ################################################################################ |
| 5 # This file describes instructions from AMD64 Architecture Programmer's Manual | 5 # This file describes instructions from AMD64 Architecture Programmer's Manual |
| 6 # Volume 3: General-Purpose and System Instruction | 6 # Volume 3: General-Purpose and System Instruction |
| 7 # Chapter 3: General-Purpose Instruction Reference | 7 # Chapter 3: General-Purpose Instruction Reference |
| 8 ################################################################################ | 8 ################################################################################ |
| 9 # File format: see def_format.py | 9 # File format: see def_format.py |
| 10 ######## ADC ################################################################### | 10 ######## ADC ################################################################### |
| (...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 470 movmskpd Upd Gy, 0x66 0x0f 0x50, CPUFeature_SSE2 | 470 movmskpd Upd Gy, 0x66 0x0f 0x50, CPUFeature_SSE2 |
| 471 ######## MOVMSKPS ############################################################## | 471 ######## MOVMSKPS ############################################################## |
| 472 # Textbook definition of "movmskps" as per AMD/Intel manuals looks like this: | 472 # Textbook definition of "movmskps" as per AMD/Intel manuals looks like this: |
| 473 # movmskps Ups Gd, 0x0f 0x50, CPUFeature_SSE2 | 473 # movmskps Ups Gd, 0x0f 0x50, CPUFeature_SSE2 |
| 474 # GNU as accepts this description, but objdump decodes last operand as "Gy". | 474 # GNU as accepts this description, but objdump decodes last operand as "Gy". |
| 475 # Technically it makes no difference: "movmskps" clears everything except least | 475 # Technically it makes no difference: "movmskps" clears everything except least |
| 476 # significant four bits and this operation produces precisely idential output | 476 # significant four bits and this operation produces precisely idential output |
| 477 # for "Gy" and "Gd" operands. We use objdump's description. | 477 # for "Gy" and "Gd" operands. We use objdump's description. |
| 478 movmskps Ups Gy, 0x0f 0x50, CPUFeature_SSE | 478 movmskps Ups Gy, 0x0f 0x50, CPUFeature_SSE |
| 479 ######## MOVNTI ################################################################ | 479 ######## MOVNTI ################################################################ |
| 480 movnti Gy My, 0x0f 0xc3, CPUFeature_SSE2 | 480 movnti Gy My, 0x0f 0xc3, CPUFeature_SSE2 nacl-unsupported |
| 481 ######## MOVS/MOVSB/MOVSW/MOVSD/MOVSQ ########################################## | 481 ######## MOVS/MOVSB/MOVSW/MOVSD/MOVSQ ########################################## |
| 482 movs X Y, 0xa4, rep nacl-amd64-forbidden | 482 movs X Y, 0xa4, rep nacl-amd64-forbidden |
| 483 ######## MOVSX ################################################################# | 483 ######## MOVSX ################################################################# |
| 484 # Textbook definition of "movsx" as per AMD/Intel manuals looks like this: | 484 # Textbook definition of "movsx" as per AMD/Intel manuals looks like this: |
| 485 # movsx Eb Gv, 0x0f 0xbe | 485 # movsx Eb Gv, 0x0f 0xbe |
| 486 # movsx Ew Gy, 0x0f 0xbf | 486 # movsx Ew Gy, 0x0f 0xbf |
| 487 # Objdump has different names for this instrustion: "movsbw", "movsbl", "movsbq"
, | 487 # Objdump has different names for this instrustion: "movsbw", "movsbl", "movsbq"
, |
| 488 # "movswl", "movswq" depending on operand size. We describe 32bit versions and | 488 # "movswl", "movswq" depending on operand size. We describe 32bit versions and |
| 489 # 64bit version separately. | 489 # 64bit version separately. |
| 490 movsbl Eb Gd, 0x0f 0xbe, norexw nacl-amd64-zero-extends | 490 movsbl Eb Gd, 0x0f 0xbe, norexw nacl-amd64-zero-extends |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 609 # For consistency with the production validators, drop support for this form of | 609 # For consistency with the production validators, drop support for this form of |
| 610 # "prefetch" in ia32 mode but support in in amd64 mode. | 610 # "prefetch" in ia32 mode but support in in amd64 mode. |
| 611 # Note that the former 32- and 64-bit validators treat "prefetch" inconsistently
: | 611 # Note that the former 32- and 64-bit validators treat "prefetch" inconsistently
: |
| 612 # http://code.google.com/p/nativeclient/issues/detail?id=2977 | 612 # http://code.google.com/p/nativeclient/issues/detail?id=2977 |
| 613 prefetch Mb, 0x0f 0x0d /3, CPUFeature_3DPRFTCH no_memory_access nacl-ia32-forbid
den | 613 prefetch Mb, 0x0f 0x0d /3, CPUFeature_3DPRFTCH no_memory_access nacl-ia32-forbid
den |
| 614 prefetch Mb, 0x0f 0x0d /4, CPUFeature_3DPRFTCH no_memory_access nacl-forbidden | 614 prefetch Mb, 0x0f 0x0d /4, CPUFeature_3DPRFTCH no_memory_access nacl-forbidden |
| 615 prefetch Mb, 0x0f 0x0d /5, CPUFeature_3DPRFTCH no_memory_access nacl-forbidden | 615 prefetch Mb, 0x0f 0x0d /5, CPUFeature_3DPRFTCH no_memory_access nacl-forbidden |
| 616 prefetch Mb, 0x0f 0x0d /6, CPUFeature_3DPRFTCH no_memory_access nacl-forbidden | 616 prefetch Mb, 0x0f 0x0d /6, CPUFeature_3DPRFTCH no_memory_access nacl-forbidden |
| 617 prefetch Mb, 0x0f 0x0d /7, CPUFeature_3DPRFTCH no_memory_access nacl-forbidden | 617 prefetch Mb, 0x0f 0x0d /7, CPUFeature_3DPRFTCH no_memory_access nacl-forbidden |
| 618 ######## PREFETCHlevel ######################################################### | 618 ######## PREFETCHlevel ######################################################### |
| 619 prefetchnta Mb, 0x0f 0x18 /0, CPUFeature_SSE no_memory_access | 619 prefetchnta Mb, 0x0f 0x18 /0, CPUFeature_SSE no_memory_access nacl-unsupported |
| 620 prefetcht0 Mb, 0x0f 0x18 /1, CPUFeature_SSE no_memory_access | 620 prefetcht0 Mb, 0x0f 0x18 /1, CPUFeature_SSE no_memory_access |
| 621 prefetcht1 Mb, 0x0f 0x18 /2, CPUFeature_SSE no_memory_access | 621 prefetcht1 Mb, 0x0f 0x18 /2, CPUFeature_SSE no_memory_access |
| 622 prefetcht2 Mb, 0x0f 0x18 /3, CPUFeature_SSE no_memory_access | 622 prefetcht2 Mb, 0x0f 0x18 /3, CPUFeature_SSE no_memory_access |
| 623 # AMD manual claims this opcode is "nop". Intel manual says it's "reserved". | 623 # AMD manual claims this opcode is "nop". Intel manual says it's "reserved". |
| 624 # Real silicon accepts it and seemingly doing nothing. | 624 # Real silicon accepts it and seemingly doing nothing. |
| 625 "nop/reserved" Mb, 0x0f 0x18 /4, CPUFeature_SSE no_memory_access nacl-forbidden | 625 "nop/reserved" Mb, 0x0f 0x18 /4, CPUFeature_SSE no_memory_access nacl-forbidden |
| 626 "nop/reserved" Mb, 0x0f 0x18 /5, CPUFeature_SSE no_memory_access nacl-forbidden | 626 "nop/reserved" Mb, 0x0f 0x18 /5, CPUFeature_SSE no_memory_access nacl-forbidden |
| 627 "nop/reserved" Mb, 0x0f 0x18 /6, CPUFeature_SSE no_memory_access nacl-forbidden | 627 "nop/reserved" Mb, 0x0f 0x18 /6, CPUFeature_SSE no_memory_access nacl-forbidden |
| 628 "nop/reserved" Mb, 0x0f 0x18 /7, CPUFeature_SSE no_memory_access nacl-forbidden | 628 "nop/reserved" Mb, 0x0f 0x18 /7, CPUFeature_SSE no_memory_access nacl-forbidden |
| 629 ######## PUSH ################################################################## | 629 ######## PUSH ################################################################## |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 828 xchg &G M, 0x86, lock | 828 xchg &G M, 0x86, lock |
| 829 ######## XLAT ################################################################## | 829 ######## XLAT ################################################################## |
| 830 xlat xb, 0xd7, nacl-forbidden | 830 xlat xb, 0xd7, nacl-forbidden |
| 831 ######## XOR ################################################################### | 831 ######## XOR ################################################################### |
| 832 xor I a, 0x34, nacl-amd64-zero-extends | 832 xor I a, 0x34, nacl-amd64-zero-extends |
| 833 xor I E, 0x80 /6, lock nacl-amd64-zero-extends | 833 xor I E, 0x80 /6, lock nacl-amd64-zero-extends |
| 834 xor Ib Ev, 0x83 /6, lock nacl-amd64-zero-extends | 834 xor Ib Ev, 0x83 /6, lock nacl-amd64-zero-extends |
| 835 xor G E, 0x30, lock nacl-amd64-zero-extends | 835 xor G E, 0x30, lock nacl-amd64-zero-extends |
| 836 xor E G, 0x32, nacl-amd64-zero-extends | 836 xor E G, 0x32, nacl-amd64-zero-extends |
| 837 ################################################################################ | 837 ################################################################################ |
| OLD | NEW |