diff options
author | H. Peter Anvin <hpa@zytor.com> | 2014-05-21 08:19:16 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2014-05-21 08:24:21 -0700 |
commit | 0a9250c2ab32028dfdca6578655882b4be6a5c04 (patch) | |
tree | a1a48e04b96a2060c8ef4eb464c0fedd080ee510 /nasm.h | |
parent | 13558c1e7cb2a1a2ea1b1c13ff554063de8afaf0 (diff) | |
download | nasm-0a9250c2ab32028dfdca6578655882b4be6a5c04.tar.gz nasm-0a9250c2ab32028dfdca6578655882b4be6a5c04.tar.bz2 nasm-0a9250c2ab32028dfdca6578655882b4be6a5c04.zip |
BR 3392279: Fix duplicated REX prefixes
The fix for BR 3392278:
aa29b1d93f5a assemble.c: Don't drop rex prefix from instruction itself
... would cause multiple REX prefixes to be emitted for some
instructions. Create a new flag to indicate that REX has already been
emitted, which can be cleared for each instance of an instruction.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'nasm.h')
-rw-r--r-- | nasm.h | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -1,6 +1,6 @@ /* ----------------------------------------------------------------------- * * - * Copyright 1996-2013 The NASM Authors - All Rights Reserved + * Copyright 1996-2014 The NASM Authors - All Rights Reserved * See the file AUTHORS included with the NASM distribution for * the specific copyright holders. * @@ -702,6 +702,7 @@ typedef struct insn { /* an instruction itself */ int eops_float; /* true if DD and floating */ int32_t times; /* repeat count (TIMES prefix) */ bool forw_ref; /* is there a forward reference? */ + bool rex_done; /* REX prefix emitted? */ int rex; /* Special REX Prefix */ int vexreg; /* Register encoded in VEX prefix */ int vex_cm; /* Class and M field for VEX prefix */ |