mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-23 13:21:43 +08:00
x86/APX: correct disassembly for EVEX.B4
EVEX.B4 is used only for GPR (or addressing of memory) operands. SIMD registers encoded via ModR/M.rm (when ModR/M.mod == 3) have their top bit in EVEX.X3. Supposedly (doc version 004) EVEX.B4 is ignored when unused, hence also don't flag such encodings as invalid.
This commit is contained in:
parent
b7ee8ec914
commit
6170a088a6
@ -13012,14 +13012,15 @@ OP_EX (instr_info *ins, int bytemode, int sizeflag)
|
||||
USED_REX (REX_B);
|
||||
if (ins->rex & REX_B)
|
||||
reg += 8;
|
||||
if (ins->rex2 & REX_B)
|
||||
reg += 16;
|
||||
if (ins->vex.evex)
|
||||
{
|
||||
USED_REX (REX_X);
|
||||
if ((ins->rex & REX_X))
|
||||
reg += 16;
|
||||
ins->rex2_used &= ~REX_B;
|
||||
}
|
||||
else if (ins->rex2 & REX_B)
|
||||
reg += 16;
|
||||
|
||||
if ((sizeflag & SUFFIX_ALWAYS)
|
||||
&& (bytemode == x_swap_mode
|
||||
|
Loading…
Reference in New Issue
Block a user