aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2024-06-21 08:36:03 +0200
committerJan Beulich <jbeulich@suse.com>2024-06-21 08:36:03 +0200
commit87860ef6f4650d513530af4cb4e3e85a863139cf (patch)
tree028affe87a8289d38dc889ae3bf6cfc7ea77440f
parent8bcda53caab0308b5908dda68194ab5e3e2dd09d (diff)
downloadbinutils-87860ef6f4650d513530af4cb4e3e85a863139cf.zip
binutils-87860ef6f4650d513530af4cb4e3e85a863139cf.tar.gz
binutils-87860ef6f4650d513530af4cb4e3e85a863139cf.tar.bz2
x86/APX: fix disassembly of byte register operands
Like for REX/REX2, EVEX-prefixed insns access the low bytes of all registers; %ah...%bh are inaccessible. Reflect this correctly in output, by leveraging REX machinery we already have to this effect.
-rw-r--r--opcodes/i386-dis.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 3a1afcc..9c5063e 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -9004,6 +9004,7 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
ins->evex_type = evex_from_legacy;
if (ins->address_mode != mode_64bit)
return &bad_opcode;
+ ins->rex |= REX_OPCODE;
break;
case 0x5:
vex_table_index = EVEX_MAP5;