summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2008-09-24NASM 2.04rc6H. Peter Anvin1-1/+1
2008-09-24Document __PASS__H. Peter Anvin2-0/+16
Document __PASS__, but discourage users from using it. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-09-24Add __PASS__ builtin macroH. Peter Anvin1-0/+11
Add a new builtin macro, __PASS__, which is either 1 (for a preparatory pass), 2 (for a final pass, including preprocessor only), or 0 (for dependency generation.) This might be useful in special contexts. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-09-24Unbreak %warningH. Peter Anvin1-30/+38
Since the error directives, including %warning, are now issued in the final pass only, it is important that we do *not* pass ERR_PASS1 with %warning. Rather than playing even more ugly games in error(), require ERR_PASS1 to be passed in with warnings elsewhere in the preprocessor, just like the rest of the system. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-09-24doc/changes.src: something closer to final release notes for 2.04H. Peter Anvin1-11/+32
doc/changes.src should contain the user-visible changes in human comprehensible form (release notes, not a changelog.) Get something closer to what it should look like for 2.04.
2008-09-24nasmdoc.src: more consistent indentation in %error sectionH. Peter Anvin1-2/+2
We had different indentation levels only two paragraphs apart. Overall, the document is horribly inconsistent about indentation, which should be fixed.
2008-09-24test/fwdoptpp: test %error, %warning, %fatalH. Peter Anvin1-2/+19
Test all of %error, %warning, and %fatal. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-09-24NASM 2.04rc5H. Peter Anvin1-1/+1
2008-09-24%error, %warning out on the final pass, add %fatalH. Peter Anvin5-8/+165
Only process %error or %warning directives on the final pass. Add a new %fatal directive which terminates assembly immediately.
2008-09-23Allow value to TIMES to be negative while optimization is in progressCharles Crayne1-1/+1
Change the parser to only issue the "TIMES value %d is negative" error message if all optimization passes have completed.
2008-09-23test: test for code that relies on the optimizer to be validH. Peter Anvin1-0/+133
There exists a fair bit of code out there which relies on the optimizer in order to fit inside a predefined envelope. NASM 2.04rc4 breaks this; write a simple test to demonstrate. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-09-22NASM 2.04rc4H. Peter Anvin1-1/+1
2008-09-18BR 1239818 - handle multiple %else clausesVictor van den Elzen2-37/+138
Using multiple %else clauses or mixing %else and %elif caused strange results. Warn about it and produce sensible results.
2008-09-12NASM 2.04rc3H. Peter Anvin1-1/+1
2008-09-11Halt assembly if addresses are not converging.Charles Crayne2-13/+16
Change global_offset_changed from bool to int so that progress of convergence can be monitored. If change count does not decrease from previous pass, increment stall counter. If stall count reaches threshold, terminate assembly with error message.
2008-09-11Limit number of passes to 1000Victor van den Elzen1-3/+13
Now NASM won't take unreasonable an amount of time to generate wrong code when it encounters equ's that don't converge, ex: FOO equ FOO + 1
2008-09-11Remove obsolete ROL-EQU hackVictor van den Elzen3-29/+0
Now that there is proper forward reference resolution, we can get rid of this junk. Wiping the flags also removed the SBYTEnn flags, causing cmp eax, a-b a: nop b: to assemble with -Ox like cmp eax, strict dword -1 This is now fixed.
2008-09-10doc: document the use of macros in %errorH. Peter Anvin1-1/+8
Document the use of macros in %error and %warning, valid since 2.03. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-09-10doc: Call %xdefine a "resolving define" instead of "enhancing define"H. Peter Anvin1-1/+1
%xdefine is an early-binding %define (%define being late-binding.) There is nothing "enhanced" about it, it just specifies a different policy. Call it a "resolving define" instead. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-09-10doc: clean up formatting around -O optionH. Peter Anvin1-14/+14
Clean up the formatting in descriptions of the -O option. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-09-10NASM 2.04rc2H. Peter Anvin1-1/+1
2008-09-10changes: document optimizer changeH. Peter Anvin1-0/+4
2008-09-10Decouple forward references from optimizationCharles Crayne4-96/+29
Users who wish to control the level of optimization can continue to specify -O0, -O1, or -Ox, where x can be the letter itself, or any number > 1. However, even with optimization turned off, NASM will always make enough passes to resolve forward references. As a result, INCBIN is now the only item left in the critical expressions list, although TIMES still has its own constant value check.
2008-09-09Run "make alldeps"H. Peter Anvin5-6/+10
2008-09-09macros.pl: don't include macros for disabled output formatsH. Peter Anvin1-4/+13
Don't include macros for output formats we aren't compiling in. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-09-09outaout.mac: aoutb is an alias for aoutH. Peter Anvin1-1/+1
aoutb is an alias format for aout (in the sense they use the same macro set.) Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-09-09macros.pl: be a bit more careful with open()H. Peter Anvin1-2/+2
Be a bit more strict with open() calls. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-09-09macros: win32 and win64 are COFF, not Mach-OH. Peter Anvin2-2/+2
Somehow the win32 and win64 aliases got listed on Mach-O, not on COFF. This doesn't have any effect on the current code, but might in the future. Correct. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-09-03NASM 2.04rc1H. Peter Anvin1-1/+1
2008-09-03Remove obsolete tagrelease script (duplicate of tag-release)H. Peter Anvin1-15/+0
2008-09-03Update doc/changes.srcH. Peter Anvin1-2/+10
2008-09-03Document %use smartalignH. Peter Anvin1-0/+45
2008-09-03Document %unmacroH. Peter Anvin1-2/+26
2008-09-02outcoff: stylistic cleanupsH. Peter Anvin1-11/+13
Don't use explicit L's for things which are really size_t; not only is it unnecessarily ugly, but it's wrong in a lot of ways. Do some other minor stylistic cleanups. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-09-02outcoff: default output symbols to T_NULLH. Peter Anvin1-0/+1
We would leave the output symbol type uninitialized. Explicitly initialize it to zero (T_NULL, meaning no symbol type information), since that's what was effectively done. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-09-01BR 2048950: fix crash due to mmacro list overflowH. Peter Anvin1-1/+2
When allocating the buffer for an mmacro list, we apparently failed to guarantee space for the terminating NULL. This almost certainly caused the crash described in BR 2048950, and quite possibly BR 1284169.
2008-08-29test/new: clean up whitespaceH. Peter Anvin1-1/+0
2008-08-29Script to create new test case boilerplateH. Peter Anvin1-0/+10
2008-08-28Accept implicit memory size for VMREAD/VMWRITEH. Peter Anvin2-4/+8
2008-08-28BR 2029472: Wrong operand size for VMREAD/VMWRITE in 64-bit modeH. Peter Anvin2-2/+26
Fix the operand size for VMREAD/VMWRITE in 64-bit mode
2008-08-28.gitignore: ignore some editor backup filesH. Peter Anvin1-0/+3
Ignore a couple of variants of editor backup files.
2008-08-28BR 2028995: Missing MOVNTI m64, r64H. Peter Anvin2-1/+12
Fix MOVNTI with a 64-bit argument.
2008-08-28Testcase for XCRYPTH. Peter Anvin1-0/+24
2008-08-28BR 2029829: Accept VIA XCRYPT instructions with or without REPH. Peter Anvin3-8/+28
Accept the VIA XCRYPT instructions either with or without a REP prefix, as documented. Add the missing XCRYPTCTR instruction.
2008-08-28BR 2039212: Handle indirect far jumps in 64-bit modeH. Peter Anvin2-2/+16
Handle indirect far jumps in 64-bit mode. Default to 64 bit unless overridden, for consistency with other jumps.
2008-08-28Include "nasm.h" in "float.h"H. Peter Anvin1-0/+2
"float.h" references efunc, so it needs "nasm.h". It also has uint8_t and so need <inttypes.h>, but that's part of "nasm.h".
2008-08-27Add 256-bit AVX stores per the latest AVX spec.H. Peter Anvin1-2/+7
Add 256-bit forms of VMOVNTPD, VMOVNTPS, and VMOVNT[DQ]Q.
2008-08-27Add AVX forms of the AES instructions (new in the latest AVX spec)H. Peter Anvin1-0/+12
The AES instructions, too, have gotten VEX forms.
2008-08-24test: Fix file with no final newlineH. Peter Anvin1-1/+1
Fix test/br2030823.asm, which had no final newline. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-08-24BR 2067820: add the MOVSXD instructionH. Peter Anvin1-1/+2
The official mnemonic for 32-to-64-bit sign extension is MOVSXD for some idiotic reason. Add support for it while continue to recognize MOVSX for this as an alias. Signed-off-by: H. Peter Anvin <hpa@zytor.com>