platform/upstream/nasm.git
15 years agodoc: S-records seems to usually be pluralized
H. Peter Anvin [Sun, 5 Jul 2009 22:46:42 +0000 (15:46 -0700)]
doc: S-records seems to usually be pluralized

Call it "S-records" not "S-record".

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agodoc: srec produces S-records, not Intel hex...
H. Peter Anvin [Sun, 5 Jul 2009 22:45:45 +0000 (15:45 -0700)]
doc: srec produces S-records, not Intel hex...

Copy and paste accident...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agodoc: use the term "extensions" to mean of-specific anything
H. Peter Anvin [Sun, 5 Jul 2009 22:44:38 +0000 (15:44 -0700)]
doc: use the term "extensions" to mean of-specific anything

We seem to use the term "extensions" to mean anything that is specific
to an object format, so continue to do so.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agodoc: fix capitalization
H. Peter Anvin [Sun, 5 Jul 2009 22:43:23 +0000 (15:43 -0700)]
doc: fix capitalization

Consistently capitalize NASM.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agooutbin: when using saa_rnbytes() we have to saa_rewind()
H. Peter Anvin [Sun, 5 Jul 2009 22:40:45 +0000 (15:40 -0700)]
outbin: when using saa_rnbytes() we have to saa_rewind()

Using saa_fpwrite() to dump a section to a file automatically does
saa_rewind(), but if we use saa_rnbytes() to do bit by bit then we
manually need to to saa_rewind() before we start.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agooutbin: when writing S-records, write head record
H. Peter Anvin [Sun, 5 Jul 2009 22:32:14 +0000 (15:32 -0700)]
outbin: when writing S-records, write head record

When writing S-record output, we should write the head record (S0),
too.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agooutbin: add support for Intel hex and Motorola S-records
H. Peter Anvin [Sun, 5 Jul 2009 22:29:55 +0000 (15:29 -0700)]
outbin: add support for Intel hex and Motorola S-records

Add support for directly generating Intel hex or Motorola S-records.
These formats are commonly used with ROM burners.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoMake it possible for outputs to be either text or binary
H. Peter Anvin [Sun, 5 Jul 2009 21:45:12 +0000 (14:45 -0700)]
Make it possible for outputs to be either text or binary

Allow the backend to specify that an output format is either text or
binary.  For future uses, define this as a flag word so we can define
other flags in the future if it would make sense.

Currently, the ieee and dbg formats are text; all the others are
binary.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agonasmlib.h: add unlikely() to nasm_assert()
H. Peter Anvin [Sat, 4 Jul 2009 05:55:51 +0000 (22:55 -0700)]
nasmlib.h: add unlikely() to nasm_assert()

We explicitly want the compiler to pessimize the taken case of the
assert, so unlikely() is appropriate here.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agordf2bin.1: add missing space
H. Peter Anvin [Sat, 4 Jul 2009 05:36:03 +0000 (22:36 -0700)]
rdf2bin.1: add missing space

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agordoff/test/Makefile: actually do build tests
H. Peter Anvin [Sat, 4 Jul 2009 04:19:37 +0000 (21:19 -0700)]
rdoff/test/Makefile: actually do build tests

Add actual Makefile rules for the rdoff tests.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agospec: update specfile with new rdf2bin aliases
H. Peter Anvin [Sat, 4 Jul 2009 04:12:05 +0000 (21:12 -0700)]
spec: update specfile with new rdf2bin aliases

Update the specfile to contain the new rdf2bin aliases and their man
pages.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agordf2bin: update man page, add link pages for aliases
H. Peter Anvin [Sat, 4 Jul 2009 04:11:21 +0000 (21:11 -0700)]
rdf2bin: update man page, add link pages for aliases

Update the rdf2bin man page; add link man pages for the various
command aliases.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoAdd rdf2ith and rdf2srec to .gitignore
H. Peter Anvin [Sat, 4 Jul 2009 04:04:30 +0000 (21:04 -0700)]
Add rdf2ith and rdf2srec to .gitignore

15 years agoCorrect the legacy name rdf2ihx (as opposed to rdf2ith)
H. Peter Anvin [Sat, 4 Jul 2009 04:02:33 +0000 (21:02 -0700)]
Correct the legacy name rdf2ihx (as opposed to rdf2ith)

The more common acronym for Intel Hex seems to be "ith", but the
legacy utility was "rdf2ihx", so we allow both variants.  However, the
Makefile rule was wrong.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agordf2bin: revamp so it can output bin, ith, or srec
H. Peter Anvin [Fri, 3 Jul 2009 22:30:48 +0000 (15:30 -0700)]
rdf2bin: revamp so it can output bin, ith, or srec

Revamp rdf2bin so it can output binary, Intel hex, or Motorola
S-records.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agordfload: make the base addresses unsigned
H. Peter Anvin [Fri, 3 Jul 2009 22:28:45 +0000 (15:28 -0700)]
rdfload: make the base addresses unsigned

Make the base addresses in rdfload unsigned.  Note: this file is
really obsolete; it can't represent RDF2 with more than the 3
old-style segments.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRemove rdf2ihx.c, since it looks unlikely we'll get it relicensed.
H. Peter Anvin [Fri, 3 Jul 2009 20:40:57 +0000 (13:40 -0700)]
Remove rdf2ihx.c, since it looks unlikely we'll get it relicensed.

Remove rdf2ihx.c since I think it's unlikely we'll ever get it
relicensed -- any attempts at contacting the author has failed, and
it's easier to reconstruct it from scratch.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoCorrection: preproc.c is *not* in the clear just yet.
H. Peter Anvin [Fri, 3 Jul 2009 20:39:25 +0000 (13:39 -0700)]
Correction: preproc.c is *not* in the clear just yet.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoNASM 2.06.01rc1
H. Peter Anvin [Thu, 2 Jul 2009 21:32:43 +0000 (14:32 -0700)]
NASM 2.06.01rc1

15 years agoBeginnings of a crude utility to dump the contents of an OMF file
H. Peter Anvin [Thu, 2 Jul 2009 06:11:15 +0000 (23:11 -0700)]
Beginnings of a crude utility to dump the contents of an OMF file

Beginnings of a crude utility to dump the contents of an OMF (obj)
file.  At this point all it does it breaks it down into the individual
records and dumps those, but it is still easier to read than a pure
hexdump.

See http://www.azillionmonkeys.com/qed/Omfg.pdf for the format spec.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoFix early report_error(); avoid nuisance phase warnings
H. Peter Anvin [Thu, 2 Jul 2009 05:12:59 +0000 (22:12 -0700)]
Fix early report_error(); avoid nuisance phase warnings

Fix report_error() to (hopefully) not fault if used without ERR_NOFILE
if no filename is available.

Avoid nuisance phase error between passes warnings if we have detected
other errors.  In those case, the phase error is almost certainly
spurious.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agooutobj: handle the case of SEG <undefined> in pass 0
H. Peter Anvin [Thu, 2 Jul 2009 05:04:11 +0000 (22:04 -0700)]
outobj: handle the case of SEG <undefined> in pass 0

SEG <undefined> can happen, validly, for a common symbol during the
optimization passes.  It better not happen during the real passes,
however!

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agonasmlib: add nasm_assert(); use const char * for filenames
H. Peter Anvin [Thu, 2 Jul 2009 05:02:54 +0000 (22:02 -0700)]
nasmlib: add nasm_assert(); use const char * for filenames

Add new nasm_assert() function, and add "const" to the declarations
which take filenames, as well as to the nasm_strdup/strndup functions.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agocompiler.h: new macro for a non-returning function
H. Peter Anvin [Thu, 2 Jul 2009 05:01:07 +0000 (22:01 -0700)]
compiler.h: new macro for a non-returning function

Add a new macro for a non-returning function.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agooutmacho: change license to 2-BSD
H. Peter Anvin [Wed, 1 Jul 2009 04:17:07 +0000 (21:17 -0700)]
outmacho: change license to 2-BSD

Received authorization from Apple to change the license of outmacho.c
to the 2-clause BSD license.  Thanks!

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoELF64: fix incorrect type for the .strtab section header
Cyrill Gorcunov [Tue, 30 Jun 2009 20:37:36 +0000 (00:37 +0400)]
ELF64: fix incorrect type for the .strtab section header

The .strtab section is SHT_STRTAB, not SHT_SYMTAB.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoNASM 2.06
H. Peter Anvin [Tue, 30 Jun 2009 01:02:34 +0000 (18:02 -0700)]
NASM 2.06

15 years agoheaders/doc: copyright header for documentation files
H. Peter Anvin [Mon, 29 Jun 2009 00:35:08 +0000 (17:35 -0700)]
headers/doc: copyright header for documentation files

15 years agoAdd new copyright headers to the rdoff code
H. Peter Anvin [Mon, 29 Jun 2009 00:33:50 +0000 (17:33 -0700)]
Add new copyright headers to the rdoff code

To the best of my knowledge, the only file which we don't have 2-BSD
relicensing permission for at this stage is rdf2ihx.c.  That file
probably should just be rewritten, if anyone cares.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoAdd new copyright headers to the output modules
H. Peter Anvin [Mon, 29 Jun 2009 00:25:15 +0000 (17:25 -0700)]
Add new copyright headers to the output modules

Add new copyright headers to the new output modules.  As far as I
know, the only module which we still don't have a green light to
release under 2-BSD is outmacho.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoAdd copyright headers to standard macro packages
H. Peter Anvin [Mon, 29 Jun 2009 00:18:13 +0000 (17:18 -0700)]
Add copyright headers to standard macro packages

These are all recent and written by me.  BSD license them.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoAdd copyright headers to macro files
H. Peter Anvin [Mon, 29 Jun 2009 00:16:54 +0000 (17:16 -0700)]
Add copyright headers to macro files

These are definitely overly restrictive, need auditing to pare them
down to proper BSD licensing.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoMacro file copyright header
H. Peter Anvin [Mon, 29 Jun 2009 00:14:51 +0000 (17:14 -0700)]
Macro file copyright header

15 years agoAdd copyright headers to the *.c/*.h files in the main directory
H. Peter Anvin [Mon, 29 Jun 2009 00:13:04 +0000 (17:13 -0700)]
Add copyright headers to the *.c/*.h files in the main directory

Add copyright headers to the *.c/*.h files in the main directory.  For
files where I'm sure enough that we have all the approvals, I have
given them the 2-BSD license, the others have been given the "LGPL for
now" license header.  Most of them can probably be changed after
auditing.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoIn memory of Chuck...
H. Peter Anvin [Mon, 29 Jun 2009 00:12:37 +0000 (17:12 -0700)]
In memory of Chuck...

Let the 2.06 release be in memory of Chuck.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoAdd copyright header to nasmdoc.src
H. Peter Anvin [Mon, 29 Jun 2009 00:00:48 +0000 (17:00 -0700)]
Add copyright header to nasmdoc.src

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoLICENSE: include the actual BSD license
H. Peter Anvin [Sun, 28 Jun 2009 23:59:47 +0000 (16:59 -0700)]
LICENSE: include the actual BSD license

15 years agoAdd copyright notices to other *.dat files
H. Peter Anvin [Sun, 28 Jun 2009 23:58:10 +0000 (16:58 -0700)]
Add copyright notices to other *.dat files

Add copyright notices to the other *.dat files.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoAdd copyright notice to insns.dat
H. Peter Anvin [Sun, 28 Jun 2009 23:56:19 +0000 (16:56 -0700)]
Add copyright notice to insns.dat

15 years agoAdd copyright verbiage to Perl scripts; update LICENSE
H. Peter Anvin [Sun, 28 Jun 2009 23:52:56 +0000 (16:52 -0700)]
Add copyright verbiage to Perl scripts; update LICENSE

This adds copyright verbiage to the Perl scripts.  Scripts that are
known to be clean w.r.t. the 2-clause BSD license are given that
license; unclear ones are given the "LGPL for now".

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoStandard copyright verbiage headers
H. Peter Anvin [Sun, 28 Jun 2009 23:50:50 +0000 (16:50 -0700)]
Standard copyright verbiage headers

15 years agoLICENSE: give the current license status.
H. Peter Anvin [Sun, 28 Jun 2009 23:34:15 +0000 (16:34 -0700)]
LICENSE: give the current license status.

15 years agoNASM 2.06rc16
H. Peter Anvin [Sun, 28 Jun 2009 07:05:26 +0000 (00:05 -0700)]
NASM 2.06rc16

15 years agoRun make alldeps
H. Peter Anvin [Sun, 28 Jun 2009 05:16:33 +0000 (22:16 -0700)]
Run make alldeps

15 years agoMove prototypes for null_debug to outform.h and outlib.h
H. Peter Anvin [Sun, 28 Jun 2009 05:15:25 +0000 (22:15 -0700)]
Move prototypes for null_debug to outform.h and outlib.h

Move the prototypes for the null debugging format to outform.h (for
the top-level structure declaration only) and outlib.h (for the
internal routines.)

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoMove backend-specific code to output/; break out null debug stuff
H. Peter Anvin [Sun, 28 Jun 2009 05:07:33 +0000 (22:07 -0700)]
Move backend-specific code to output/; break out null debug stuff

Move backend-specific code into the output/ directory, and make the
null debugging backend a separate file (it certainly isn't needed for
ndisasm...)

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agodebug: make *all* the null debug routines available as a library
H. Peter Anvin [Sun, 28 Jun 2009 04:58:21 +0000 (21:58 -0700)]
debug: make *all* the null debug routines available as a library

Make all the null debug routines available as a library, so we can use
them whenever appropriate.  We really don't need to have a bunch of
dummy functions scattered all over the code.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agooutput: call debug init from a central location
H. Peter Anvin [Sun, 28 Jun 2009 04:54:10 +0000 (21:54 -0700)]
output: call debug init from a central location

We already call current_dfmt->init in the same place (at the very end
of ofmt->init) in all the backends that do it; instead call it
centrally in nasm.c after ofmt->init.

This fixes invalid ELF files with when compiling with -F dwarf, since
the dwarf initialization routine never got called.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agotest/Makefile: add rule to produce a .dbg file
H. Peter Anvin [Sun, 28 Jun 2009 04:28:09 +0000 (21:28 -0700)]
test/Makefile: add rule to produce a .dbg file

Add a rule to produce a .dbg file, that is, a dump of all the calls to
the back end.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agooutform: build ALL formats by default, including DBG
H. Peter Anvin [Sun, 28 Jun 2009 04:12:13 +0000 (21:12 -0700)]
outform: build ALL formats by default, including DBG

There really is no point to ever excluding a backend anymore... all it
leads to is bitrot.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agooutelf.c: add appropriate #ifdefs
H. Peter Anvin [Sun, 28 Jun 2009 04:10:09 +0000 (21:10 -0700)]
outelf.c: add appropriate #ifdefs

Only build outelf.c if ELF32 or ELF64 is included.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agooutdbg: make outdbg.c compile cleanly
H. Peter Anvin [Sun, 28 Jun 2009 04:05:42 +0000 (21:05 -0700)]
outdbg: make outdbg.c compile cleanly

Make outdbg.c compile cleanly again.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoNASM 2.06rc15
H. Peter Anvin [Sat, 27 Jun 2009 23:32:55 +0000 (16:32 -0700)]
NASM 2.06rc15

15 years agoBR 2781900: handle common labels while optimizing
H. Peter Anvin [Sat, 27 Jun 2009 23:30:00 +0000 (16:30 -0700)]
BR 2781900: handle common labels while optimizing

When optimizing, we have to keep track of common labels, since a
common symbol cannot be optimized -- only the linker will know where
it will end up.  In that sense it is similar to an EXTERN symbol.

Thus, allow them to be entered in the symbol table but make sure we
don't holler too hard on redefinition.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoparser.c: fix stylistic nitpick
H. Peter Anvin [Sat, 27 Jun 2009 23:26:25 +0000 (16:26 -0700)]
parser.c: fix stylistic nitpick

Fix stray blank line in parser.c

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoassemble.c: stylistic nitpick
H. Peter Anvin [Sat, 27 Jun 2009 23:14:18 +0000 (16:14 -0700)]
assemble.c: stylistic nitpick

Fix stylistic nitpick

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agopreproc: use %if 0 instead of %ifdef BOGUS
H. Peter Anvin [Sat, 27 Jun 2009 22:56:27 +0000 (15:56 -0700)]
preproc: use %if 0 instead of %ifdef BOGUS

When processing an unparsable TASM argument, convert it to %if 0 which
is guaranteed to not happen, rather than %ifdef BOGUS.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agohashtbl: make hash_iterate() not crash on an uninitalized table
H. Peter Anvin [Sat, 27 Jun 2009 22:54:25 +0000 (15:54 -0700)]
hashtbl: make hash_iterate() not crash on an uninitalized table

Trying to walk an uninitialized table (->table == NULL) should just
return nothing.  This can happen due when pp_cleanup() is called after
a failure.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agonasm.c: clean up pass exit logic
H. Peter Anvin [Sat, 27 Jun 2009 22:34:32 +0000 (15:34 -0700)]
nasm.c: clean up pass exit logic

Clean up the pass exit logic.  In particular, we had a whole routine
to do the same thing that the normal exit logic would do anyway if we
only would actually get there.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agondisasm: fix disassembly of JRCXZ
H. Peter Anvin [Fri, 26 Jun 2009 23:18:00 +0000 (16:18 -0700)]
ndisasm: fix disassembly of JRCXZ

Fix the disassembly of JRCXZ; in 64-bit mode, we should only accept
JECXZ for disassembly with 32-bit address size override.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoNASM 2.06rc14
H. Peter Anvin [Fri, 26 Jun 2009 22:15:46 +0000 (15:15 -0700)]
NASM 2.06rc14

15 years agoinsns.dat: reformat
H. Peter Anvin [Fri, 26 Jun 2009 22:14:58 +0000 (15:14 -0700)]
insns.dat: reformat

Reformat insns.dat with standard formatting

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoinsns.dat: add relaxed forms for XOP/FMA4/CVT16 instructions
H. Peter Anvin [Fri, 26 Jun 2009 22:13:36 +0000 (15:13 -0700)]
insns.dat: add relaxed forms for XOP/FMA4/CVT16 instructions

Add relaxed forms of the XOP/FMA4/CVT16 instructions, without looking
too hard at if it makes sense.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoAdd Cyrill Gorcunov to AUTHORS
H. Peter Anvin [Fri, 26 Jun 2009 21:57:33 +0000 (14:57 -0700)]
Add Cyrill Gorcunov to AUTHORS

15 years agoinsns.pl: remove stray whitespace
H. Peter Anvin [Fri, 26 Jun 2009 06:18:06 +0000 (23:18 -0700)]
insns.pl: remove stray whitespace

Clean up whitespace in insns.pl.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoinsns.pl: add "nohi" code for REX_NH
H. Peter Anvin [Fri, 26 Jun 2009 06:16:17 +0000 (23:16 -0700)]
insns.pl: add "nohi" code for REX_NH

Add a "nohi" code flag for the \325 byte code, which sets the REX_NH
flag.  That is, REX_P not required to support high registers, high
registers are not supported and spl/bpl/sil/dil enabled even in
non-64-bit mode.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoinsns.pl: fix indentation
H. Peter Anvin [Fri, 26 Jun 2009 06:14:36 +0000 (23:14 -0700)]
insns.pl: fix indentation

Canonicalize indentation of some blocks.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoELF: make debugging functions static
H. Peter Anvin [Fri, 26 Jun 2009 00:43:54 +0000 (17:43 -0700)]
ELF: make debugging functions static

The debugging functions can and should all be static.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoELF: remove loop invariant calculation of global offset
H. Peter Anvin [Fri, 26 Jun 2009 00:30:58 +0000 (17:30 -0700)]
ELF: remove loop invariant calculation of global offset

The global symbol offset is a loop invariant; no need to compute it
over and over.  The compiler probably will not be able to do this for
us due to global variables and function calls.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoELF: clean up the arithmetic for global symbols
H. Peter Anvin [Fri, 26 Jun 2009 00:26:43 +0000 (17:26 -0700)]
ELF: clean up the arithmetic for global symbols

Clean up the arithmetic for global symbols; in particular, make it
clear where the dependency on the debug format comes from (DWARF needs
three symbol table entries all by itself.)

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoELF: bump GLOBAL_TEMP_BASE
H. Peter Anvin [Fri, 26 Jun 2009 00:25:35 +0000 (17:25 -0700)]
ELF: bump GLOBAL_TEMP_BASE

Bump GLOBAL_TEMP_BASE so far that it *cannot* conflict for ELF32
(which has 24-bit symbol table indicies) and is *unlikely* to conflict
for ELF64 (which has 32-bit symbol table indicies.)

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoELF: eliminate hard-coded section numbers
H. Peter Anvin [Thu, 25 Jun 2009 21:54:44 +0000 (14:54 -0700)]
ELF: eliminate hard-coded section numbers

Eliminiate hard-coded section numbers, at least to the best of our
ability.  There is still a very odd piece of computation in
elf_build_reltab() which I can't really figure out...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoHandle the new ELF headers in the dependency generation
H. Peter Anvin [Thu, 25 Jun 2009 20:06:49 +0000 (13:06 -0700)]
Handle the new ELF headers in the dependency generation

The dependency machinery relies on properly rooted includes, so give
it to them... the path syntax munging machinery in the dependency
script handles it from a Makefile syntax perspective, and then we can
hope that C compilers are smart enough to deal with forward-slash
paths even when that is not the native syntax.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoELF: add header files, begin merging common code, drop .comment
H. Peter Anvin [Thu, 25 Jun 2009 19:30:50 +0000 (12:30 -0700)]
ELF: add header files, begin merging common code, drop .comment

Add something approaching real ELF header files.

Begin merging the common ELF code, beginning with the section name
detection.

Drop automatic generation of .comment section, and in particular the
treatment of .common as a special section (if we decide generating
.comment is still a good idea, we should just do it as a macro.)

Augment the list of known sections, and make it table-driven.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoNASM 2.06rc13
H. Peter Anvin [Thu, 25 Jun 2009 18:27:18 +0000 (11:27 -0700)]
NASM 2.06rc13

15 years agochanges.src: update
H. Peter Anvin [Thu, 25 Jun 2009 18:23:37 +0000 (11:23 -0700)]
changes.src: update

15 years agoinsns: make the MMX version of PINSRW match the SSE/AVX ones
H. Peter Anvin [Thu, 25 Jun 2009 04:53:23 +0000 (21:53 -0700)]
insns: make the MMX version of PINSRW match the SSE/AVX ones

Make the MMX version of PINSRW match the SSE and AVX ones, and add it
to the tests.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoIntel FMA: drop relaxed forms
H. Peter Anvin [Thu, 25 Jun 2009 04:45:27 +0000 (21:45 -0700)]
Intel FMA: drop relaxed forms

The Intel FMA instructions are destructive, so relaxed forms are not
appropriate.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoFix the PINSR series of instructions
H. Peter Anvin [Thu, 25 Jun 2009 04:43:04 +0000 (21:43 -0700)]
Fix the PINSR series of instructions

Clean up a number of errors in the PINSR series instructions.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoAdd support for instructions which always use low 8-bit registers
H. Peter Anvin [Thu, 25 Jun 2009 04:38:29 +0000 (21:38 -0700)]
Add support for instructions which always use low 8-bit registers

Add a byte code to explicitly support instructions which only uses the
low 8-bit registers (as if a REX prefix always was present.)  This is
usable for instructions which are officially documented as using "the
low byte of a 32-bit register" and so on.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoinsns.dat: fix typos: VCMPORD_SP[SD] entered as VCMPORS_SP[SD]
H. Peter Anvin [Thu, 25 Jun 2009 04:03:29 +0000 (21:03 -0700)]
insns.dat: fix typos: VCMPORD_SP[SD] entered as VCMPORS_SP[SD]

Fix typos in two instructions in the relaxed forms.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoinsns.dat: collapse relaxed forms
H. Peter Anvin [Thu, 25 Jun 2009 01:36:24 +0000 (18:36 -0700)]
insns.dat: collapse relaxed forms

Change the relaxed forms to the compact representation.  This
*deliberately* does not fix bugs where the relaxed form does not match
the official form; this is strictly a "no change in output" checkin.

All remaining open-coded relaxed forms are very likely bugs, and need
to be individually audited.  Furthermore, it is questionable if the
Intel FMA instructions, being destructive, should have relaxed forms
at all.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoinsns.pl: allow relaxed forms to be created without duplication
H. Peter Anvin [Thu, 25 Jun 2009 01:06:26 +0000 (18:06 -0700)]
insns.pl: allow relaxed forms to be created without duplication

Allow a * to be put on an operand, indicating that it is optional and
should be replaced with the immediately preceding operand if it is
omitted.  This allows official and relaxed forms of nondestructive
instructions to be written on one line.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agochanges.src: fix some odd spacing
H. Peter Anvin [Wed, 24 Jun 2009 23:50:54 +0000 (16:50 -0700)]
changes.src: fix some odd spacing

15 years agoparser: don't use midcode declarations
H. Peter Anvin [Tue, 23 Jun 2009 18:34:42 +0000 (11:34 -0700)]
parser: don't use midcode declarations

OpenWatcom can't handle midcode variable declarations.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoBR 2782055: reject invalid tokens after ]
Victor van den Elzen [Tue, 23 Jun 2009 01:47:07 +0000 (03:47 +0200)]
BR 2782055: reject invalid tokens after ]

A bracketed memory reference should be followed by a comma or
the end of the line. Enforce this.

15 years agospecfile: update URLs
H. Peter Anvin [Tue, 26 May 2009 23:06:57 +0000 (16:06 -0700)]
specfile: update URLs

Update the URLs in the specfile to point to http://www.nasm.us/.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoNindent: add back the -nut option
H. Peter Anvin [Tue, 26 May 2009 04:57:27 +0000 (21:57 -0700)]
Nindent: add back the -nut option

NASM is developed under a bunch on environments, to tabs aren't the
best choice.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoNindent: update with the -npro and -il0 options
H. Peter Anvin [Tue, 26 May 2009 04:40:06 +0000 (21:40 -0700)]
Nindent: update with the -npro and -il0 options

Update with the -npro and, if recent enough, the -il0 options.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agodoc: use NASM syntax for x87 registers
H. Peter Anvin [Sat, 23 May 2009 23:25:14 +0000 (16:25 -0700)]
doc: use NASM syntax for x87 registers

The x87 registers are called ST0 and ST1 in NASM syntax, not ST(0) and
ST(1).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoinsns.dat - fixup for XOP (SSE5) AMD instructions
Cyrill Gorcunov [Sun, 17 May 2009 08:56:54 +0000 (12:56 +0400)]
insns.dat - fixup for XOP (SSE5) AMD instructions

1) A number of PMA -> VPM misprint fixed.
2) Spec points to ymmreg in mnemonics even for L=0 instructions. Fixed.

The instructions are still sorted in order of specification follows.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoinsns.dat - introcuce base XOP (SSE5) AMD instructions
Cyrill Gorcunov [Fri, 15 May 2009 09:21:49 +0000 (13:21 +0400)]
insns.dat - introcuce base XOP (SSE5) AMD instructions

Introduce base XOP/FMA4/CVT16 instructions (SSE5)
based on official specification from AMD (rev 3.03).
Some fixes from Peter Johnson and H. Peter Anvin
included (not updated in AMD spec yet).

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoinsns.pl - add handling of pp VEX/XOP fields
Cyrill Gorcunov [Thu, 14 May 2009 17:26:05 +0000 (21:26 +0400)]
insns.pl - add handling of pp VEX/XOP fields

We already have such kind of aliases for L field
(via l0 and l1). Via p0,p1,p2 it's become easier
to follow AMD docs while encoding VEX/XOP commands.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoAdd symbolic constants for REX_V "classes" (VEX, XOP, ...)
H. Peter Anvin [Sat, 9 May 2009 01:01:21 +0000 (18:01 -0700)]
Add symbolic constants for REX_V "classes" (VEX, XOP, ...)

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agodoc: remove insref.src
H. Peter Anvin [Sat, 9 May 2009 00:56:18 +0000 (17:56 -0700)]
doc: remove insref.src

Remove the old, obsolete insref.src.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoNASM 2.06rc12
H. Peter Anvin [Wed, 6 May 2009 21:00:48 +0000 (14:00 -0700)]
NASM 2.06rc12

15 years agopreproc: handle %+ even during early token replacement
H. Peter Anvin [Mon, 4 May 2009 17:11:22 +0000 (10:11 -0700)]
preproc: handle %+ even during early token replacement

Preexisting code seems to rely on %+ being processed even during early
token replacement, e.g. Syslinux contains the following code:

%macro          superb 1
bx %+ %1        equ SuperInfo+($-superblock)*8+4
bs %+ %1        equ $
                zb 1
%endmacro

... which is expected to work when invoked as:

                superb Media

As a result, set handle_paste_tokens to true at all times; assuming
this turns out to be the way things are we can really just remove it
as an option.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoUse lower case for VEX and XOP in instructions table
H. Peter Anvin [Mon, 4 May 2009 05:14:03 +0000 (22:14 -0700)]
Use lower case for VEX and XOP in instructions table

Use lower case for VEX and XOP ("vex", "xop") to avoid visual
confusion (and in the future potential real confusion) with upper-case
hexadecimal numbers.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoInfrastructure support for AMD's new XOP prefix
H. Peter Anvin [Mon, 4 May 2009 04:42:34 +0000 (21:42 -0700)]
Infrastructure support for AMD's new XOP prefix

Handle AMD's XOP prefixes; they use basically the same encoding as VEX
prefixes, so treat them simply as a variant of VEX.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>