diff --git a/assemble.c b/assemble.c index 86253a4d..7ba38693 100644 --- a/assemble.c +++ b/assemble.c @@ -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. * @@ -1368,9 +1368,12 @@ static int64_t calcsize(int32_t segment, int64_t offset, int bits, static inline unsigned int emit_rex(insn *ins, int32_t segment, int64_t offset, int bits) { if (bits == 64) { - if ((ins->rex & REX_MASK) && !(ins->rex & (REX_V | REX_EV))) { + if ((ins->rex & REX_MASK) && + !(ins->rex & (REX_V | REX_EV)) && + !ins->rex_done) { int rex = (ins->rex & REX_MASK) | REX_P; out(offset, segment, &rex, OUT_RAWDATA, 1, NO_SEG, NO_SEG); + ins->rex_done = true; return 1; } } @@ -1392,6 +1395,8 @@ static void gencode(int32_t segment, int64_t offset, int bits, uint8_t opex = 0; enum ea_type eat = EA_SCALAR; + ins->rex_done = false; + while (*codes) { c = *codes++; op1 = (c & 3) + ((opex & 1) << 2); diff --git a/doc/changes.src b/doc/changes.src index 38cc97ef..ec4de219 100644 --- a/doc/changes.src +++ b/doc/changes.src @@ -7,6 +7,14 @@ The NASM 2 series supports x86-64, and is the production version of NASM since 2007. +\S{cl-2.11.05} Version 2.11.05 + +\b Add \c{--v} as an alias for \c{-v} (see \k{opt-v}), for +command-line compatibility with Yasm. + +\b Fix a bug introduced in 2.11.03 whereby certain instructions would +contain multiple REX prefixes, and thus be corrupt. + \S{cl-2.11.04} Version 2.11.04 \b Removed an invalid error checking code. Sometimes a memref only with diff --git a/doc/nasmdoc.src b/doc/nasmdoc.src index 55a63133..30250918 100644 --- a/doc/nasmdoc.src +++ b/doc/nasmdoc.src @@ -984,6 +984,9 @@ and the date on which it was compiled. You will need the version number if you report a bug. +For command-line compatibility with Yasm, the form \i\c{--v} is also +accepted for this option. + \S{opt-y} The \i\c{-y} Option: Display Available Debug Info Formats Typing \c{nasm -f