Go to file
Cyrill Gorcunov aa29b1d93f assemble.c: Don't drop rex prefix from instruction itself
emit_rex is supposed to write REX prefix into output stream
if needed, but we happen to drop it off on a first write
which breaks REX required instructions if TIMES directive
is used.

For example the code like

	| times 4		movq	xmm11, xmm11

compiles into

	| 0000000000000000 <.text>:
	|   0:	f3 45 0f 7e db       	movq   %xmm11,%xmm11
	|   5:	f3 0f 7e db          	movq   %xmm3,%xmm3
	|   9:	f3 0f 7e db          	movq   %xmm3,%xmm3
	|   d:	f3 0f 7e db          	movq   %xmm3,%xmm3

instead of proper

	| 0000000000000000 <.text>:
	|   0:	f3 45 0f 7e db       	movq   %xmm11,%xmm11
	|   5:	f3 45 0f 7e db       	movq   %xmm11,%xmm11
	|   a:	f3 45 0f 7e db       	movq   %xmm11,%xmm11
	|   f:	f3 45 0f 7e db       	movq   %xmm11,%xmm11

http://bugzilla.nasm.us/show_bug.cgi?id=3392278

Reported-by: Javier <elpochodelagente@gmail.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2014-05-05 11:20:17 -07:00
contrib
doc Add CLFLUSHOPT instruction 2014-02-19 15:40:53 -08:00
headers
inttypes
lib
macros
misc misc/release: Generate manpages 2013-12-11 12:10:27 -08:00
Mkfiles "make alldeps" 2013-11-24 11:18:50 -08:00
nsis
output outelf: Error out on "section align" without value 2014-02-18 13:30:44 -08:00
perllib
rdoff Fixed two more resource leaks in rdoff/rdlib.c 2013-04-01 02:17:46 +04:00
test BR 3392275: Don't require xmm0 to be specified when implicit 2014-02-16 10:25:25 -08:00
.gitignore iflag: Fix dependencies, factor out static components of iflag.h 2013-11-24 11:13:10 -08:00
aclocal.m4
assemble.c assemble.c: Don't drop rex prefix from instruction itself 2014-05-05 11:20:17 -07:00
assemble.h iflag: Start using new instruction flags engine 2013-11-24 13:20:59 +04:00
AUTHORS
autogen.sh
ChangeLog
CHANGES
compiler.h
configure.in Revert "build: Include pregenerated nasm manpages" 2013-10-24 13:22:19 +01:00
crc64.c
directiv.dat
directiv.pl make: Fix nasm build with MSVC 2013-06-30 01:31:15 +04:00
disasm.c disasm: Don't rely on iflag_cmp() returning +/-1 2013-11-27 13:43:45 -08:00
disasm.h iflag: Start using new instruction flags engine 2013-11-24 13:20:59 +04:00
disp8.c disp8: Consolidate a logic to get compressed displacement 2013-11-20 15:40:55 -08:00
disp8.h disp8: Consolidate a logic to get compressed displacement 2013-11-20 15:40:55 -08:00
eval.c mib: Handle MIB EA in a different way from regular EA's 2013-12-11 16:56:19 -08:00
eval.h
exprlib.c
float.c
float.h
hashtbl.c
hashtbl.h
iflag.h iflag: Don't use c99 array initialization 2013-12-10 11:10:19 +04:00
ilog2.c
insns-iflags.pl insns-iflags: Drop occasionally introduced \Tab's 2013-12-07 16:15:03 +04:00
insns.dat Add CLFLUSHOPT instruction 2014-02-19 15:40:53 -08:00
insns.h iflag: Start using new instruction flags engine 2013-11-24 13:20:59 +04:00
insns.pl Add {vex3} and {vex2} prefixes by analogy with {evex} 2013-11-28 12:21:11 -08:00
INSTALL
install-sh
labels.c
labels.h
LICENSE
listing.c
listing.h
macros.pl macros.pl: Remove superfluous whitespace 2013-10-19 12:20:28 -07:00
Makefile.in "make alldeps" 2013-11-24 11:18:50 -08:00
mkdep.pl
nasm.c bnd: Add a new nobnd prefix 2013-12-04 20:10:08 -08:00
nasm.h mib: Handle MIB EA in a different way from regular EA's 2013-12-11 16:56:19 -08:00
nasm.nsi
nasm.spec.in
nasm.txt BR3392248: Update nasm manual 2013-04-20 20:24:01 +04:00
nasmlib.c MPX: Add BND prefix for branch instructions 2013-11-20 11:29:42 -08:00
nasmlib.h bnd: Show warning when bnd prefix is dropped 2013-12-04 20:06:23 -08:00
ndisasm.c iflag: Start using new instruction flags engine 2013-11-24 13:20:59 +04:00
ndisasm.txt ndisasm: man -- Add missing -p option 2013-04-20 20:18:46 +04:00
opflags.h Remove "high 16" register class macros for xmm/ymm/zmm 2013-11-28 11:35:34 -08:00
parser.c bnd: Add a new nobnd prefix 2013-12-04 20:10:08 -08:00
parser.h
phash.pl
pptok.dat
pptok.pl make: Fix nasm build with MSVC 2013-06-30 01:31:15 +04:00
preproc-nop.c
preproc.c preproc: Handle curly braces in multi-line macro parameters 2013-11-27 20:54:07 -08:00
preproc.h
quote.c
quote.h
raa.c
raa.h
rbtree.c
rbtree.h
README
regs.dat Remove "high 16" register class macros for xmm/ymm/zmm 2013-11-28 11:35:34 -08:00
regs.pl AVX-512: Add support for parsing braces 2013-08-06 09:37:52 +04:00
saa.c
saa.h
standard.mac bnd: Add a new nobnd prefix 2013-12-04 20:10:08 -08:00
stdscan.c stdscan: Rework curly brace parsing routines 2013-11-27 15:43:33 -08:00
stdscan.h
strfunc.c strfunc: Tabs to spaces conversion 2013-09-21 13:14:15 +04:00
SubmittingPatches
sync.c
sync.h
syncfiles.pl
tables.h AVX-512: Fix instruction match function 2013-08-22 19:37:37 +04:00
TODO
tokens.dat bnd: Add a new nobnd prefix 2013-12-04 20:10:08 -08:00
tokhash.pl stdscan: Rework curly brace parsing routines 2013-11-27 15:43:33 -08:00
ver.c
version NASM 2.11.02 2014-02-19 15:50:26 -08:00
version.pl

              NASM, the Netwide Assembler.

Many many developers all over the net respect NASM for what it is
- a widespread (thus netwide), portable (thus netwide!), very
flexible and mature assembler tool with support for many output
formats (thus netwide!!).

Now we have good news for you: NASM is licensed under the "simplified"
(2-clause) BSD license.  This means its development is open to even
wider society of programmers wishing to improve their lovely
assembler.

The NASM project is now situated at SourceForge.net, the most
popular Open Source development site on the Internet.

Visit our website at http://nasm.sourceforge.net/ and our
SourceForge project at http://sourceforge.net/projects/nasm/

See the file CHANGES for the description of changes between revisions,
and the file AUTHORS for a list of contributors.

                                                   With best regards,
                                                           NASM crew.