linux/tools
Adrian Hunter eada38d575 x86/insn: Add support for REX2 prefix to the instruction decoder logic
Intel Advanced Performance Extensions (APX) uses a new 2-byte prefix named
REX2 to select extended general purpose registers (EGPRs) i.e. r16 to r31.

The REX2 prefix is effectively an extended version of the REX prefix.

REX2 and EVEX are also used with PUSH/POP instructions to provide a
Push-Pop Acceleration (PPX) hint. With PPX hints, a CPU will attempt to
fast-forward register data between matching PUSH and POP instructions.

REX2 is valid only with opcodes in maps 0 and 1. Similar extension for
other maps is provided by the EVEX prefix, covered in a separate patch.

Some opcodes in maps 0 and 1 are reserved under REX2. One of these is used
for a new 64-bit absolute direct jump instruction JMPABS.

Refer to the Intel Advanced Performance Extensions (Intel APX) Architecture
Specification for details.

Define a code value for the REX2 prefix (INAT_PFX_REX2), and add attribute
flags for opcodes reserved under REX2 (INAT_NO_REX2) and to identify
opcodes (only JMPABS) that require a mandatory REX2 prefix
(INAT_REX2_VARIANT).

Amend logic to read the REX2 prefix and get the opcode attribute for the
map number (0 or 1) encoded in the REX2 prefix.

Amend the awk script that generates the attribute tables from the opcode
map, to recognise "REX2" as attribute INAT_PFX_REX2, and "(!REX2)"
as attribute INAT_NO_REX2, and "(REX2)" as attribute INAT_REX2_VARIANT.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20240502105853.5338-6-adrian.hunter@intel.com
2024-05-02 13:13:44 +02:00
..
accounting
arch x86/insn: Add support for REX2 prefix to the instruction decoder logic 2024-05-02 13:13:44 +02:00
bootconfig
bpf libbpf, selftests/bpf: Adjust libbpf, bpftool, selftests to match LLVM 2024-03-15 14:24:00 -07:00
build
certs
cgroup
counter
crypto
debugging
firewire
firmware
gpio
hv hv/hv_kvp_daemon: Handle IPv4 and Ipv6 combination for keyfile format 2024-04-10 21:25:40 +00:00
iio
include perf tools fixes for v6.9 2024-04-19 16:34:10 -07:00
kvm/kvm_stat
laptop
leds
lib bpf-for-netdev 2024-03-26 12:55:18 +01:00
memory-model
mm
net/ynl tools: ynl: don't ignore errors in NLMSG_DONE messages 2024-04-23 15:37:33 +02:00
objtool objtool: Fix compile failure when using the x32 compiler 2024-03-30 22:12:37 +01:00
pci
pcmcia
perf RISC-V Fixes for 6.9-rc6 2024-04-27 12:02:55 -07:00
power Turbostat version 2024.04.10 2024-04-10 13:13:27 -07:00
rcu
scripts
spi
testing Linux 6.9-rc6 2024-05-02 13:12:31 +02:00
thermal
time
tracing tools/rtla: Add -U/--user-load option to timerlat 2024-03-20 05:39:06 +01:00
usb
verification tools/verification: Use tools/build makefiles on rv 2024-03-20 05:39:06 +01:00
virtio
wmi
workqueue
Makefile tools/Makefile: remove cgroup target 2024-03-26 11:07:21 -07:00