diff options
author | Aiden Grossman <aidengrossman@google.com> | 2024-11-22 10:56:24 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-22 10:56:24 -0800 |
commit | 7530e707afc60014624eb62bda9557cdc7f28dd0 (patch) | |
tree | 6b1099fcfb6e36ffd8cdb5b290529a881d635504 /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | 71f14ffba6ec8a6606911279781576e521c2b7dd (diff) | |
download | llvm-7530e707afc60014624eb62bda9557cdc7f28dd0.zip llvm-7530e707afc60014624eb62bda9557cdc7f28dd0.tar.gz llvm-7530e707afc60014624eb62bda9557cdc7f28dd0.tar.bz2 |
[X86] Ignore REX prefixes not immediately before opcode (#117299)
The Intel X86 Architecture Manual says the following:
> A REX prefix is ignored, as are its individual bits, when it is not
needed
> for an instruction or when it does not immediately precede the opcode
byte or
> the escape opcode byte (0FH) of an instruction for which it is needed.
This
> has the implication that only one REX prefix, properly located, can
affect an
> instruction.
We currently do not handle these cases in the disassembler, leading to
incorrect disassembly. This patch rectifies the situation by treating
REX prefixes as standard prefixes rather than only expecting them before
the Opcode.
The motivating test case added as a test was fuzzer generated.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions