linux/tools
Masami Hiramatsu 838bddc295 x86/decoder: Add TEST opcode to Group3-2
[ Upstream commit 8b7e20a7ba ]

Add TEST opcode to Group3-2 reg=001b as same as Group3-1 does.

Commit

  12a78d43de ("x86/decoder: Add new TEST instruction pattern")

added a TEST opcode assignment to f6 XX/001/XXX (Group 3-1), but did
not add f7 XX/001/XXX (Group 3-2).

Actually, this TEST opcode variant (ModRM.reg /1) is not described in
the Intel SDM Vol2 but in AMD64 Architecture Programmer's Manual Vol.3,
Appendix A.2 Table A-6. ModRM.reg Extensions for the Primary Opcode Map.

Without this fix, Randy found a warning by insn_decoder_test related
to this issue as below.

    HOSTCC  arch/x86/tools/insn_decoder_test
    HOSTCC  arch/x86/tools/insn_sanity
    TEST    posttest
  arch/x86/tools/insn_decoder_test: warning: Found an x86 instruction decoder bug, please report this.
  arch/x86/tools/insn_decoder_test: warning: ffffffff81000bf1:	f7 0b 00 01 08 00    	testl  $0x80100,(%rbx)
  arch/x86/tools/insn_decoder_test: warning: objdump says 6 bytes, but insn_get_length() says 2
  arch/x86/tools/insn_decoder_test: warning: Decoded and checked 11913894 instructions with 1 failures
    TEST    posttest
  arch/x86/tools/insn_sanity: Success: decoded and checked 1000000 random instructions with 0 errors (seed:0x871ce29c)

To fix this error, add the TEST opcode according to AMD64 APM Vol.3.

 [ bp: Massage commit message. ]

Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Tested-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://lkml.kernel.org/r/157966631413.9580.10311036595431878351.stgit@devnote2
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-02-24 08:36:55 +01:00
..
accounting
arch x86/decoder: Add TEST opcode to Group3-2 2020-02-24 08:36:55 +01:00
bpf bpf: Print error message for bpftool cgroup show 2020-02-24 08:36:40 +01:00
build
cgroup
debugging
firewire
firmware
gpio tools: gpio: Correctly add make dependencies for gpio_utils 2019-11-13 13:46:04 +01:00
hv
iio
include tools lib: Fix builds when glibc contains strlcpy() 2020-02-05 21:22:40 +00:00
io_uring
kvm/kvm_stat tools/kvm_stat: Fix kvm_exit filter name 2020-02-11 04:35:36 -08:00
laptop
leds
lib tools lib api fs: Fix gcc9 stringop-truncation compilation error 2020-02-24 08:36:43 +01:00
memory-model tools/memory-model: Fix data race detection for unordered store and load 2019-12-31 16:43:40 +01:00
nfsd
objtool objtool: Fix ARCH=x86_64 build error 2020-02-24 08:36:55 +01:00
pci tools: PCI: Fix fd leakage 2020-01-17 19:48:54 +01:00
pcmcia
perf perf stat: Don't report a null stalled cycles per insn metric 2020-02-19 19:53:08 +01:00
power tools/power/acpi: fix compilation error 2020-02-14 16:34:15 -05:00
scripts
spi
testing selftests/net: make so_txtime more robust to timer variance 2020-02-24 08:36:36 +01:00
thermal/tmon
time
usb usbip: Fix unsafe unaligned pointer usage 2020-02-24 08:36:44 +01:00
virtio tools/virtio: xen stub 2019-10-13 09:38:27 -04:00
vm
wmi
Makefile