diff options
author | Randy Dunlap <rdunlap@infradead.org> | 2017-12-11 13:38:36 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2017-12-15 07:45:20 -0500 |
commit | f5b5fab1780c98b74526dbac527574bd02dc16f8 (patch) | |
tree | 728e8d225102e0cbfea5793e2a90db5aa58087e0 | |
parent | 7ee18d677989e99635027cee04c878950e0752b9 (diff) |
x86/decoder: Fix and update the opcodes map
Update x86-opcode-map.txt based on the October 2017 Intel SDM publication.
Fix INVPID to INVVPID.
Add UD0 and UD1 instruction opcodes.
Also sync the objtool and perf tooling copies of this file.
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Masami Hiramatsu <masami.hiramatsu@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/aac062d7-c0f6-96e3-5c92-ed299e2bd3da@infradead.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r-- | arch/x86/lib/x86-opcode-map.txt | 13 | ||||
-rw-r--r-- | tools/objtool/arch/x86/insn/x86-opcode-map.txt | 15 | ||||
-rw-r--r-- | tools/perf/util/intel-pt-decoder/x86-opcode-map.txt | 15 |
3 files changed, 35 insertions, 8 deletions
diff --git a/arch/x86/lib/x86-opcode-map.txt b/arch/x86/lib/x86-opcode-map.txt index c4d55919fac1..e0b85930dd77 100644 --- a/arch/x86/lib/x86-opcode-map.txt +++ b/arch/x86/lib/x86-opcode-map.txt | |||
@@ -607,7 +607,7 @@ fb: psubq Pq,Qq | vpsubq Vx,Hx,Wx (66),(v1) | |||
607 | fc: paddb Pq,Qq | vpaddb Vx,Hx,Wx (66),(v1) | 607 | fc: paddb Pq,Qq | vpaddb Vx,Hx,Wx (66),(v1) |
608 | fd: paddw Pq,Qq | vpaddw Vx,Hx,Wx (66),(v1) | 608 | fd: paddw Pq,Qq | vpaddw Vx,Hx,Wx (66),(v1) |
609 | fe: paddd Pq,Qq | vpaddd Vx,Hx,Wx (66),(v1) | 609 | fe: paddd Pq,Qq | vpaddd Vx,Hx,Wx (66),(v1) |
610 | ff: | 610 | ff: UD0 |
611 | EndTable | 611 | EndTable |
612 | 612 | ||
613 | Table: 3-byte opcode 1 (0x0f 0x38) | 613 | Table: 3-byte opcode 1 (0x0f 0x38) |
@@ -717,7 +717,7 @@ AVXcode: 2 | |||
717 | 7e: vpermt2d/q Vx,Hx,Wx (66),(ev) | 717 | 7e: vpermt2d/q Vx,Hx,Wx (66),(ev) |
718 | 7f: vpermt2ps/d Vx,Hx,Wx (66),(ev) | 718 | 7f: vpermt2ps/d Vx,Hx,Wx (66),(ev) |
719 | 80: INVEPT Gy,Mdq (66) | 719 | 80: INVEPT Gy,Mdq (66) |
720 | 81: INVPID Gy,Mdq (66) | 720 | 81: INVVPID Gy,Mdq (66) |
721 | 82: INVPCID Gy,Mdq (66) | 721 | 82: INVPCID Gy,Mdq (66) |
722 | 83: vpmultishiftqb Vx,Hx,Wx (66),(ev) | 722 | 83: vpmultishiftqb Vx,Hx,Wx (66),(ev) |
723 | 88: vexpandps/d Vpd,Wpd (66),(ev) | 723 | 88: vexpandps/d Vpd,Wpd (66),(ev) |
@@ -970,6 +970,15 @@ GrpTable: Grp9 | |||
970 | EndTable | 970 | EndTable |
971 | 971 | ||
972 | GrpTable: Grp10 | 972 | GrpTable: Grp10 |
973 | # all are UD1 | ||
974 | 0: UD1 | ||
975 | 1: UD1 | ||
976 | 2: UD1 | ||
977 | 3: UD1 | ||
978 | 4: UD1 | ||
979 | 5: UD1 | ||
980 | 6: UD1 | ||
981 | 7: UD1 | ||
973 | EndTable | 982 | EndTable |
974 | 983 | ||
975 | # Grp11A and Grp11B are expressed as Grp11 in Intel SDM | 984 | # Grp11A and Grp11B are expressed as Grp11 in Intel SDM |
diff --git a/tools/objtool/arch/x86/insn/x86-opcode-map.txt b/tools/objtool/arch/x86/insn/x86-opcode-map.txt index 12e377184ee4..e0b85930dd77 100644 --- a/tools/objtool/arch/x86/insn/x86-opcode-map.txt +++ b/tools/objtool/arch/x86/insn/x86-opcode-map.txt | |||
@@ -607,7 +607,7 @@ fb: psubq Pq,Qq | vpsubq Vx,Hx,Wx (66),(v1) | |||
607 | fc: paddb Pq,Qq | vpaddb Vx,Hx,Wx (66),(v1) | 607 | fc: paddb Pq,Qq | vpaddb Vx,Hx,Wx (66),(v1) |
608 | fd: paddw Pq,Qq | vpaddw Vx,Hx,Wx (66),(v1) | 608 | fd: paddw Pq,Qq | vpaddw Vx,Hx,Wx (66),(v1) |
609 | fe: paddd Pq,Qq | vpaddd Vx,Hx,Wx (66),(v1) | 609 | fe: paddd Pq,Qq | vpaddd Vx,Hx,Wx (66),(v1) |
610 | ff: | 610 | ff: UD0 |
611 | EndTable | 611 | EndTable |
612 | 612 | ||
613 | Table: 3-byte opcode 1 (0x0f 0x38) | 613 | Table: 3-byte opcode 1 (0x0f 0x38) |
@@ -717,7 +717,7 @@ AVXcode: 2 | |||
717 | 7e: vpermt2d/q Vx,Hx,Wx (66),(ev) | 717 | 7e: vpermt2d/q Vx,Hx,Wx (66),(ev) |
718 | 7f: vpermt2ps/d Vx,Hx,Wx (66),(ev) | 718 | 7f: vpermt2ps/d Vx,Hx,Wx (66),(ev) |
719 | 80: INVEPT Gy,Mdq (66) | 719 | 80: INVEPT Gy,Mdq (66) |
720 | 81: INVPID Gy,Mdq (66) | 720 | 81: INVVPID Gy,Mdq (66) |
721 | 82: INVPCID Gy,Mdq (66) | 721 | 82: INVPCID Gy,Mdq (66) |
722 | 83: vpmultishiftqb Vx,Hx,Wx (66),(ev) | 722 | 83: vpmultishiftqb Vx,Hx,Wx (66),(ev) |
723 | 88: vexpandps/d Vpd,Wpd (66),(ev) | 723 | 88: vexpandps/d Vpd,Wpd (66),(ev) |
@@ -896,7 +896,7 @@ EndTable | |||
896 | 896 | ||
897 | GrpTable: Grp3_1 | 897 | GrpTable: Grp3_1 |
898 | 0: TEST Eb,Ib | 898 | 0: TEST Eb,Ib |
899 | 1: | 899 | 1: TEST Eb,Ib |
900 | 2: NOT Eb | 900 | 2: NOT Eb |
901 | 3: NEG Eb | 901 | 3: NEG Eb |
902 | 4: MUL AL,Eb | 902 | 4: MUL AL,Eb |
@@ -970,6 +970,15 @@ GrpTable: Grp9 | |||
970 | EndTable | 970 | EndTable |
971 | 971 | ||
972 | GrpTable: Grp10 | 972 | GrpTable: Grp10 |
973 | # all are UD1 | ||
974 | 0: UD1 | ||
975 | 1: UD1 | ||
976 | 2: UD1 | ||
977 | 3: UD1 | ||
978 | 4: UD1 | ||
979 | 5: UD1 | ||
980 | 6: UD1 | ||
981 | 7: UD1 | ||
973 | EndTable | 982 | EndTable |
974 | 983 | ||
975 | # Grp11A and Grp11B are expressed as Grp11 in Intel SDM | 984 | # Grp11A and Grp11B are expressed as Grp11 in Intel SDM |
diff --git a/tools/perf/util/intel-pt-decoder/x86-opcode-map.txt b/tools/perf/util/intel-pt-decoder/x86-opcode-map.txt index 12e377184ee4..e0b85930dd77 100644 --- a/tools/perf/util/intel-pt-decoder/x86-opcode-map.txt +++ b/tools/perf/util/intel-pt-decoder/x86-opcode-map.txt | |||
@@ -607,7 +607,7 @@ fb: psubq Pq,Qq | vpsubq Vx,Hx,Wx (66),(v1) | |||
607 | fc: paddb Pq,Qq | vpaddb Vx,Hx,Wx (66),(v1) | 607 | fc: paddb Pq,Qq | vpaddb Vx,Hx,Wx (66),(v1) |
608 | fd: paddw Pq,Qq | vpaddw Vx,Hx,Wx (66),(v1) | 608 | fd: paddw Pq,Qq | vpaddw Vx,Hx,Wx (66),(v1) |
609 | fe: paddd Pq,Qq | vpaddd Vx,Hx,Wx (66),(v1) | 609 | fe: paddd Pq,Qq | vpaddd Vx,Hx,Wx (66),(v1) |
610 | ff: | 610 | ff: UD0 |
611 | EndTable | 611 | EndTable |
612 | 612 | ||
613 | Table: 3-byte opcode 1 (0x0f 0x38) | 613 | Table: 3-byte opcode 1 (0x0f 0x38) |
@@ -717,7 +717,7 @@ AVXcode: 2 | |||
717 | 7e: vpermt2d/q Vx,Hx,Wx (66),(ev) | 717 | 7e: vpermt2d/q Vx,Hx,Wx (66),(ev) |
718 | 7f: vpermt2ps/d Vx,Hx,Wx (66),(ev) | 718 | 7f: vpermt2ps/d Vx,Hx,Wx (66),(ev) |
719 | 80: INVEPT Gy,Mdq (66) | 719 | 80: INVEPT Gy,Mdq (66) |
720 | 81: INVPID Gy,Mdq (66) | 720 | 81: INVVPID Gy,Mdq (66) |
721 | 82: INVPCID Gy,Mdq (66) | 721 | 82: INVPCID Gy,Mdq (66) |
722 | 83: vpmultishiftqb Vx,Hx,Wx (66),(ev) | 722 | 83: vpmultishiftqb Vx,Hx,Wx (66),(ev) |
723 | 88: vexpandps/d Vpd,Wpd (66),(ev) | 723 | 88: vexpandps/d Vpd,Wpd (66),(ev) |
@@ -896,7 +896,7 @@ EndTable | |||
896 | 896 | ||
897 | GrpTable: Grp3_1 | 897 | GrpTable: Grp3_1 |
898 | 0: TEST Eb,Ib | 898 | 0: TEST Eb,Ib |
899 | 1: | 899 | 1: TEST Eb,Ib |
900 | 2: NOT Eb | 900 | 2: NOT Eb |
901 | 3: NEG Eb | 901 | 3: NEG Eb |
902 | 4: MUL AL,Eb | 902 | 4: MUL AL,Eb |
@@ -970,6 +970,15 @@ GrpTable: Grp9 | |||
970 | EndTable | 970 | EndTable |
971 | 971 | ||
972 | GrpTable: Grp10 | 972 | GrpTable: Grp10 |
973 | # all are UD1 | ||
974 | 0: UD1 | ||
975 | 1: UD1 | ||
976 | 2: UD1 | ||
977 | 3: UD1 | ||
978 | 4: UD1 | ||
979 | 5: UD1 | ||
980 | 6: UD1 | ||
981 | 7: UD1 | ||
973 | EndTable | 982 | EndTable |
974 | 983 | ||
975 | # Grp11A and Grp11B are expressed as Grp11 in Intel SDM | 984 | # Grp11A and Grp11B are expressed as Grp11 in Intel SDM |