| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- From 6c80693ba5d8d09e509a5613aa6e51b59a28585c Mon Sep 17 00:00:00 2001
- From: Randy Dunlap <[email protected]>
- Date: Mon, 11 Dec 2017 10:38:36 -0800
- Subject: [PATCH 134/242] x86/decoder: Fix and update the opcodes map
- MIME-Version: 1.0
- Content-Type: text/plain; charset=UTF-8
- Content-Transfer-Encoding: 8bit
- CVE-2017-5754
- 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 <[email protected]>
- Acked-by: Masami Hiramatsu <[email protected]>
- Cc: Josh Poimboeuf <[email protected]>
- Cc: Linus Torvalds <[email protected]>
- Cc: Masami Hiramatsu <[email protected]>
- Cc: Peter Zijlstra <[email protected]>
- Cc: Thomas Gleixner <[email protected]>
- Link: http://lkml.kernel.org/r/[email protected]
- Signed-off-by: Ingo Molnar <[email protected]>
- (cherry picked from commit f5395545058cd388da5d99bda3dedd2a2fe56dbc)
- Signed-off-by: Andy Whitcroft <[email protected]>
- Signed-off-by: Kleber Sacilotto de Souza <[email protected]>
- (cherry picked from commit f88b977dde8156d6c4514114baa0eed05dd48e41)
- Signed-off-by: Fabian Grünbichler <[email protected]>
- ---
- arch/x86/lib/x86-opcode-map.txt | 13 +++++++++++--
- tools/objtool/arch/x86/lib/x86-opcode-map.txt | 15 ++++++++++++---
- 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 12e377184ee4..aa2270dc9e87 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)
- fc: paddb Pq,Qq | vpaddb Vx,Hx,Wx (66),(v1)
- fd: paddw Pq,Qq | vpaddw Vx,Hx,Wx (66),(v1)
- fe: paddd Pq,Qq | vpaddd Vx,Hx,Wx (66),(v1)
- -ff:
- +ff: UD0
- EndTable
-
- Table: 3-byte opcode 1 (0x0f 0x38)
- @@ -717,7 +717,7 @@ AVXcode: 2
- 7e: vpermt2d/q Vx,Hx,Wx (66),(ev)
- 7f: vpermt2ps/d Vx,Hx,Wx (66),(ev)
- 80: INVEPT Gy,Mdq (66)
- -81: INVPID Gy,Mdq (66)
- +81: INVVPID Gy,Mdq (66)
- 82: INVPCID Gy,Mdq (66)
- 83: vpmultishiftqb Vx,Hx,Wx (66),(ev)
- 88: vexpandps/d Vpd,Wpd (66),(ev)
- @@ -970,6 +970,15 @@ GrpTable: Grp9
- EndTable
-
- GrpTable: Grp10
- +# all are UD1
- +0: UD1
- +1: UD1
- +2: UD1
- +3: UD1
- +4: UD1
- +5: UD1
- +6: UD1
- +7: UD1
- EndTable
-
- # Grp11A and Grp11B are expressed as Grp11 in Intel SDM
- diff --git a/tools/objtool/arch/x86/lib/x86-opcode-map.txt b/tools/objtool/arch/x86/lib/x86-opcode-map.txt
- index 12e377184ee4..e0b85930dd77 100644
- --- a/tools/objtool/arch/x86/lib/x86-opcode-map.txt
- +++ b/tools/objtool/arch/x86/lib/x86-opcode-map.txt
- @@ -607,7 +607,7 @@ fb: psubq Pq,Qq | vpsubq Vx,Hx,Wx (66),(v1)
- fc: paddb Pq,Qq | vpaddb Vx,Hx,Wx (66),(v1)
- fd: paddw Pq,Qq | vpaddw Vx,Hx,Wx (66),(v1)
- fe: paddd Pq,Qq | vpaddd Vx,Hx,Wx (66),(v1)
- -ff:
- +ff: UD0
- EndTable
-
- Table: 3-byte opcode 1 (0x0f 0x38)
- @@ -717,7 +717,7 @@ AVXcode: 2
- 7e: vpermt2d/q Vx,Hx,Wx (66),(ev)
- 7f: vpermt2ps/d Vx,Hx,Wx (66),(ev)
- 80: INVEPT Gy,Mdq (66)
- -81: INVPID Gy,Mdq (66)
- +81: INVVPID Gy,Mdq (66)
- 82: INVPCID Gy,Mdq (66)
- 83: vpmultishiftqb Vx,Hx,Wx (66),(ev)
- 88: vexpandps/d Vpd,Wpd (66),(ev)
- @@ -896,7 +896,7 @@ EndTable
-
- GrpTable: Grp3_1
- 0: TEST Eb,Ib
- -1:
- +1: TEST Eb,Ib
- 2: NOT Eb
- 3: NEG Eb
- 4: MUL AL,Eb
- @@ -970,6 +970,15 @@ GrpTable: Grp9
- EndTable
-
- GrpTable: Grp10
- +# all are UD1
- +0: UD1
- +1: UD1
- +2: UD1
- +3: UD1
- +4: UD1
- +5: UD1
- +6: UD1
- +7: UD1
- EndTable
-
- # 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)
- fc: paddb Pq,Qq | vpaddb Vx,Hx,Wx (66),(v1)
- fd: paddw Pq,Qq | vpaddw Vx,Hx,Wx (66),(v1)
- fe: paddd Pq,Qq | vpaddd Vx,Hx,Wx (66),(v1)
- -ff:
- +ff: UD0
- EndTable
-
- Table: 3-byte opcode 1 (0x0f 0x38)
- @@ -717,7 +717,7 @@ AVXcode: 2
- 7e: vpermt2d/q Vx,Hx,Wx (66),(ev)
- 7f: vpermt2ps/d Vx,Hx,Wx (66),(ev)
- 80: INVEPT Gy,Mdq (66)
- -81: INVPID Gy,Mdq (66)
- +81: INVVPID Gy,Mdq (66)
- 82: INVPCID Gy,Mdq (66)
- 83: vpmultishiftqb Vx,Hx,Wx (66),(ev)
- 88: vexpandps/d Vpd,Wpd (66),(ev)
- @@ -896,7 +896,7 @@ EndTable
-
- GrpTable: Grp3_1
- 0: TEST Eb,Ib
- -1:
- +1: TEST Eb,Ib
- 2: NOT Eb
- 3: NEG Eb
- 4: MUL AL,Eb
- @@ -970,6 +970,15 @@ GrpTable: Grp9
- EndTable
-
- GrpTable: Grp10
- +# all are UD1
- +0: UD1
- +1: UD1
- +2: UD1
- +3: UD1
- +4: UD1
- +5: UD1
- +6: UD1
- +7: UD1
- EndTable
-
- # Grp11A and Grp11B are expressed as Grp11 in Intel SDM
- --
- 2.14.2
|