1578 Commits

Author SHA1 Message Date
H. Peter Anvin
a5c2455f8a outbin: fix typo: "sections" not "section"
Fix silly typo: the variable is "sections" not "section"...
2009-02-21 17:27:13 -08:00
H. Peter Anvin
999868f06f Unify all-zero buffers; add fwritezero()
We have a number of all-zero buffers in the code.  Put a single
all-zero buffer in nasmlib.c.  Additionally, add fwritezero()
which can be used to write an arbitrary number of all-zero bytes;
this prevents the situation where the all-zero buffer is simply
too small.
2009-02-21 17:24:08 -08:00
H. Peter Anvin
04616f4e85 BR 2611906: proper error message for start < origin
When a section other than .text has a start < origin, we would
segfault; fix that.

Furthermore, at bin_cleanup() we don't have usable file/line
information, so pass ERR_NOFILE to the error() function.  Perhaps less
than ideal, but better than printing a null pointer.
2009-02-21 17:19:05 -08:00
H. Peter Anvin
719f55938e NASM 2.06rc4 nasm-2.06rc4 2009-02-21 16:58:34 -08:00
H. Peter Anvin
2c784d9024 Fix opcode for VADDSUBPS; operands for VBLEND; add SSE for AES ops
Fix the opcode for VADDSUBPS
Fix the operands for VBLEND
Corrent the instruction flags for the AES ops (they're SSE)
2009-02-21 16:56:52 -08:00
H. Peter Anvin
d8e47f6da9 FMA instructions won't be in Sandy Bridge
The FMA instructions aren't scheduled for Sandy Bridge after all.
They will be "in a future processor", so create a placeholder for now.
2009-02-21 16:43:48 -08:00
H. Peter Anvin
0662203978 Perl script used to generate FMA instruction patterns
Small perl script used to generate the FMA instruction patterns.  May
come in useful if the spec changes again.
2009-02-18 14:13:45 -08:00
H. Peter Anvin
e8a3e6278a changes.src: document updated AVX specification 2009-02-18 14:13:25 -08:00
H. Peter Anvin
37c1ad1dfb Update the VFMA* instructions per the AVX spec version 5
Update the VFMA* instructions to match the AVX spec version 5.
Since these are highly regular, use a small Perl script to generate
the instruction patterns.
2009-02-18 14:07:14 -08:00
H. Peter Anvin
cec96d09e8 insns.dat: fix minor formatting anomalies
Fix minor anomalies in insns.dat.
2009-02-18 14:05:15 -08:00
H. Peter Anvin
58af1fbbe9 insns.pl: handle the new VEX.DDS flag per AVX spec version 5
The AVX spec version 5 introduces the new VEX.DDS flag; support it.
2009-02-18 14:04:02 -08:00
H. Peter Anvin
2186415f01 BR 2593349: Move version message back to stdout
Checkin 4b9358928b114caaf34a69d6fdfd3b285b7a72cc changed the version
message from stdout to stderr, but:

a) doesn't motivate the change in the commit log;
b) bundles that with other changes;
c) is inconsistent with other programs;
d) was done by me and I can't remember any reason for it.

Hence conclude it was unintentional and therefore a bug.  Since this
commit was done after 2.05.01 no stable release has been affected.
2009-02-13 09:36:47 -08:00
H. Peter Anvin
f8914800f8 NASM 2.06rc3 nasm-2.06rc3 2009-02-11 10:54:59 -08:00
Charles Crayne
18152f0e33 Allow global declaration after symbol definition
This experimental feature needs to be tested for
all output formats which recognize global symbols.
2009-01-28 19:07:18 -08:00
Charles Crayne
dd1e6f5c37 Fix Bugs item #2537867
Module labels.c has code to issue error message when global
directive appears after symbol definition, but the test condition
was incorrectly punctuated.
2009-01-27 14:43:37 -08:00
Soronel Haetir
e5fdc60c2b Document the as86 ..start label
I realized that a documentation change is required to inform users about the
addition of entry point support for the as86 format.  The following produces
reasonable output for .txt output, but I am blind and so can't check the
other formats as readily.
2009-01-21 15:30:27 -08:00
H. Peter Anvin
3e8ac5366f doc: clean up the "String Manipulation in Macros" section
Minor cleanups to the "String Manipulation in Macros" section.
2009-01-18 23:04:45 -08:00
H. Peter Anvin
33a5ad1f8e doc: indent the time macro example
Indent the time macro example for ease of reading.
2009-01-18 22:59:13 -08:00
H. Peter Anvin
bed44b3889 doc: fix typo
verson -> version
2009-01-18 22:55:53 -08:00
H. Peter Anvin
c8c62fe4d3 Merge branch 'master' of git+ssh://repo.or.cz/srv/git/nasm 2009-01-18 22:55:33 -08:00
H. Peter Anvin
55a9c08dac doc: update the section on numeric constants
Update the section on numeric constants, and add a few more examples.
2009-01-18 22:51:46 -08:00
Charles Crayne
cc88d658ce Generate warning for unknown section atributes
Previously, the ELF backends silently ignored incorrect or unknown
attributes on section declarations, and therefore used default values
in cases where the user had make an error in attempting to specify
custom values.
2009-01-18 15:27:03 -08:00
H. Peter Anvin
f1e46600d2 Fix the [warning] directive
Fix multiple bugs in the [warning] directive:

- Only parsed on pass 1
- "-" was interpreted as "+"
2009-01-05 09:08:06 -08:00
H. Peter Anvin
f5fb723495 outas86: slight stylistic cleanups
Minor stylistic cleanups to previous patch.
2009-01-03 17:56:41 -08:00
Soronel Haetir
e07949dc3f Add entry point support to as86 backend
I needed entry point support with the as86 format, and after looking through
the archives found a similar desire from someone in 2002.  For some reason
such a patch never made it into the code, even though the required flag
value is present, so I offer the a patch of my own.

I compared against what is done in the .obj format and the approaches are
quite similar which I hope will aid in its acceptability.  While I have
tested it extensively it does do the job asked, and I'm honestly not sure
what extensive testing of the change would look like.
2009-01-03 17:54:48 -08:00
H. Peter Anvin
6cda414a0e BR 2432826: Fix enforcement of the LONG bit
Somewhere we lost the enforcement of the LONG bit, as opposed to
NOLONG.  Fix this in the most obvious way.
2008-12-29 20:52:28 -08:00
H. Peter Anvin
9ed8594a28 BR 2413278: Nonoptimal forms of arithmetic instructions involving AX
At some point, we lost the optimizations for the core arithmetic
operations involving AX.  Put them back.
2008-12-29 19:58:36 -08:00
H. Peter Anvin
fd925d9512 changes.src: document Mach-O alignment fix. 2008-12-22 16:37:59 -08:00
H. Peter Anvin
d23191e106 NASM 2.06rc2 nasm-2.06rc2 2008-12-19 16:48:07 -08:00
David DeHaven
74a8755fe3 Mach-O alignment fix
Several projects have taken to using .text to store read-only data
when building on Mac OS X due to crashes in SSE code from the .rodata
section being mis-aligned. It seems there was a misunderstanding about
how ld/ld64 handles section alignment in outmacho.c so I wrote a patch
to fix it. I tested it against x264 git, modified it to use ".rodata
align=16" for the data section and use movdqa instructions (guaranteed
to crash when built with unpatched nasm) and it passed all tests in
its checkasm tool.

If you want more data I can provide, but it's late and I've had a
couple glasses of mulled wine :)

-DrD-
2008-12-18 14:58:24 -08:00
Victor van den Elzen
352fe06e02 BR 2413272: Warn about byte displacement overflow
Remove the special case for single byte displacements,
which was already in out() anyway.
2008-12-10 13:04:58 +01:00
H. Peter Anvin
2b5ad13bc1 NASM 2.06rc1 nasm-2.06rc1 2008-11-30 15:53:02 -08:00
H. Peter Anvin
1fee7d2d23 ELF: use rbtree for symbol searches
Linear searches are evil, so use an llrbtree to search for symbols by
offset.  This doesn't change the preexisting behaviour that we only
look for global symbols.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-11-06 19:55:05 -08:00
H. Peter Anvin
ef11aa889b rbtree: drop "const" from search function
Having the search argument and result be "const" is nice in theory,
but causes problems in practice.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-11-06 19:54:05 -08:00
H. Peter Anvin
674788166f changes.src: document POPCNT fix.
Add POPCNT fix to release notes.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-11-06 09:42:11 -08:00
H. Peter Anvin
475421695d Merge branch 'nasm-2.05.xx' 2008-11-06 09:41:23 -08:00
H. Peter Anvin
b46a0037c5 test/popcnt.asm: simple test for the POPCNT instruction
Very simple test of POPCNT instructions.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-11-06 09:40:39 -08:00
H. Peter Anvin
81cef52e7a The POPCNT instruction does not need sizes on memory operands
The POPCNT instruction should not require sizes on memory operands.
Add the appropriate size flags for that to work.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-11-06 09:39:48 -08:00
H. Peter Anvin
0ad8ffd6e2 BR 2229703: POPCNT r64,rm64 not POPCNT r64,rm32
The 64-bit version of the POPCNT instruction takes r64,rm64; not
r64,rm32.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-11-06 09:35:02 -08:00
H. Peter Anvin
0b7d19d35c preproc: BR 2222615: fix segfault on bogus %ifmacro
BR 2222615: Fix segmentation fault on %ifmacro without an argument.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-11-06 09:33:16 -08:00
H. Peter Anvin
da05001506 doc: better description of %line
The implication that %line allows NASM to digest cpp output is just
plain wrong, at least without additional intermediate processing.  Be
a little more circumspect.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-11-05 15:55:40 -08:00
Victor van den Elzen
f568613c2a Fix BR #916647
nasm.c should respect the default debug format of the output format,
instead of replacing it with the first format in the list.
This is cleaner and allows the list to be sorted normally.

This commit rewrites commit 116994111b which was very fragile.
2008-11-05 14:19:15 +01:00
H. Peter Anvin
67a405e2f4 changes.src: document if for %ifmacro.
Document fixed %ifmacro.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-11-04 14:26:32 -08:00
H. Peter Anvin
695a171ec9 test: add test for BR 2222615
Add a test for %ifmacro, per BR 2222615.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-11-04 14:25:12 -08:00
H. Peter Anvin
ec86b6ffe3 preproc: BR 2222615: fix segfault on bogus %ifmacro
BR 2222615: Fix segmentation fault on %ifmacro without an argument.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-11-04 14:24:34 -08:00
Charles Crayne
e2dea103db Prevent erroneous extra "final" pass
Specifically check for end of final pass.
2008-11-03 18:21:24 -08:00
H. Peter Anvin
e263d04544 doc/changes.src: document ELF TLS
Add ELF TLS to the release notes.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-11-02 20:41:29 -08:00
H. Peter Anvin
76fab7ab17 doc: minor edit to the TLS documentation examples.
Minimize the TLS documentation examples (we don't need "dword" in a
mov from ebx, for example.)  This is just to avoid user confusion.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-11-02 20:40:16 -08:00
Charles Crayne
81afb49809 Document differences between TLS coding in ELF32 and ELF64
Absolute relocation wrt ..tlsie for ELF32
Relative relocation wrt ..gottpoff for ELF64
2008-11-01 17:09:36 -07:00
Charles Crayne
5fb6a39bc9 ELF32 support for offset to IE GOT entry
Add new WRT type ..tlsie.
Generate R_386_TLS_IE relocation entries
for references to thread local variables.
2008-11-01 16:48:31 -07:00