summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* NASM 2.06rc11nasm-2.06rc11H. Peter Anvin2009-04-201-1/+1
|
* preproc: unify token-pasting codeH. Peter Anvin2009-04-202-92/+122
| | | | | | | | Unify the token-pasting code between the macro expansion and the preprocessor parameter case. Parameterize whether or not to handle %+ tokens during expansion (%+ tokens have late binding semantics.) Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* doc: slightly tidy the copyright page of the manual.H. Peter Anvin2009-04-192-8/+16
|
* preproc: make $ and $$ TOKEN_OTHERH. Peter Anvin2009-04-171-6/+10
| | | | | | | | Recognize $ and $$ as TOKEN_OTHER; they aren't really either TOK_NUMBER nor TOK_ID, even though we have traditionally considered them TOK_NUMBER. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* BR 2760773: $$ tokensVictor van den Elzen2009-04-174-0/+3
| | | | | The tokenizer didn't handle $$, but relied on token pasting of two $ tokens. This broke after the improvements in 9bb46df4.
* preproc: fix more token pasting casesH. Peter Anvin2009-04-082-1/+18
| | | | | | | "+" can be a separate token that ends up having to get pulled into the middle of a floating-point constant. It's not even that strange. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* AUTHORS: Update information for HPAH. Peter Anvin2009-04-081-1/+3
|
* NASM 2.06rc10nasm-2.06rc10H. Peter Anvin2009-04-071-1/+1
|
* Document preprocessor token concatenation fix.H. Peter Anvin2009-04-072-1/+4
|
* Handle weird cases of token pastingH. Peter Anvin2009-04-072-13/+54
| | | | | | | | | | Especially when token pasting involves floating-point numbers, we can have some really strange effects from token pasting: for example, pasting the two tokens "xyzzy" and "1e+10" ends up with *three* tokens: "xyzzy1e" "+" "10". The easiest way to deal with this is to explicitly combine the string and then run tokenize() on it. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* NASM 2.06rc9nasm-2.06rc9H. Peter Anvin2009-04-071-1/+1
|
* nasm.nsi: add COPYING to the list of files to packageH. Peter Anvin2009-04-061-0/+2
|
* nasm.nsi: add NASM Manual; automate version generationH. Peter Anvin2009-04-063-12/+22
| | | | | Add the NASM Manual (as a PDF) to the Windows installer, and abstract out the version number.
* Add NSIS script to make a Windows installerShao Miller2009-04-061-0/+104
| | | | | | | | Here is an NSIS script for making a simple NASM package. It creates a NASM folder with some of the important binaries in it, as well as a simple batch file to get a CLI with the NASM folder included in the PATH. Expects to be built from inside the bin/ directory. Fairly primitive. Feedback welcome. - Shao
* Add STRUC change to changes.srcVictor van den Elzen2009-03-291-0/+2
|
* FR 2499968: structures with non-zero base offsetVictor van den Elzen2009-03-273-64/+119
| | | | | Add an optional second argument to struc, document it and test it. Also removed trailing whitespace in nasmdoc.src in the process.
* disasm: fix reversed REP vs REPNE in eatbyte()H. Peter Anvin2009-03-191-2/+2
| | | | F2 is REPNE, F3 is REP(E)
* disasm: when no instruction is found, consider a naked prefixH. Peter Anvin2009-03-183-7/+86
| | | | | If we can't find a matching instruction, rather than printing it as a "db" literal, consider first if we can disassemble it as a naked prefix.
* NASM 2.06rc8nasm-2.06rc8H. Peter Anvin2009-03-181-1/+1
|
* outcoff: BR 2685756: fix SAFESEH with an internal symbolAndy Polyakov2009-03-181-1/+3
| | | | | | Fix the SAFESEH directive for the specific case of a symbol internal to the program. With the optimizer enabled, it would otherwise fail unless the symbol is external.
* outelf32/64: fix uninitialized rbtreeMichael Scherer2009-03-182-0/+4
| | | | | | Fix crash caused by uninitialised memory that lead to dangling pointer in the rbtree. This can be seen by compiling zsnes 1.50, with a file that define many symbols, such as fxemu2c.asm.
* BR 2690688: Fix opcodes for FMA instructionsH. Peter Anvin2009-03-172-267/+267
| | | | | | Two bugs with respect to the FMA instructions: - the variant increment is supposed to be 0x10, not 0x01. - the base opcode for scalar VFNMADD is 0x9d, not 0x9c
* Add test from BR 2690688H. Peter Anvin2009-03-171-0/+529
| | | | Add the test case from BR 2690688 to the test collection.
* BR 2690688: add missing VFM instructionsH. Peter Anvin2009-03-172-48/+197
| | | | | | The Perl script which auto-generated the VFM instructions had incorrectly conflated the VEX.W and VEX.L bits, with the result that only half the valid instructions were generated.
* BR 2689316: PEXTRQ requires REX.WH. Peter Anvin2009-03-161-1/+1
| | | | The PEXTRQ instruction requires a REX.W prefix.
* genfma: fix spelling of the VFNM instructionsH. Peter Anvin2009-03-161-2/+2
| | | | | Fix the spelling of the scalar VFNM instruction in genfma.pl, too, just in case we need to pull this script out again...
* insns.dat: fix VFNM instructions incorrectly spelled as VFMNH. Peter Anvin2009-03-161-48/+48
| | | | | The scalar versions of the VFNM instructions had been incorrectly spelled VFMN.
* NASM 2.06rc7nasm-2.06rc7H. Peter Anvin2009-03-151-1/+1
|
* BR 2672117: handle long lines for db/dw/etc.H. Peter Anvin2009-03-071-13/+13
| | | | Handle long arrays on a single line in db/dw/etc.
* autoconf: detect the broken bool in OpenWatcom 1.8H. Peter Anvin2009-03-013-1/+26
| | | | | | | OpenWatcom 1.8 has a C99 mode, which implements _Bool and <stdbool.h>. Unfortunately the implementation is broken, and doesn't let _Bool be implicitly converted to integer (as required by the C99 spec). Detect this case in autoconf.
* Most instruction codes are octal, so print errors that way tooH. Peter Anvin2009-03-011-2/+2
| | | | | Most of our instruction opcodes are written in octal. Thus, it makes sense to print them that way if we ever have an error message.
* optimization.asm: more sbyte testsH. Peter Anvin2009-02-261-0/+12
| | | | A few more sbyte optimization tests.
* sbyte: optimization is OK if UNKNOWN isn't setH. Peter Anvin2009-02-261-1/+1
| | | | We can optimize the sbytes if the UNKNOWN flag isn't set
* optimization.asm: add sbyte testsH. Peter Anvin2009-02-261-0/+18
|
* NASM 2.06rc6nasm-2.06rc6H. Peter Anvin2009-02-261-1/+1
|
* BR 2413265: don't pessimize displacementsH. Peter Anvin2009-02-261-1/+1
| | | | | | Optimize displacements, don't pessimize them. When running in the optimizer, we always keep track of when a reference is forward. That doesn't mean it is unknown.
* optimization.asm: add EA optimization testsH. Peter Anvin2009-02-261-0/+24
| | | | Add tests for EA optimizations
* nasm.c: another readability cleanupH. Peter Anvin2009-02-261-3/+2
| | | | Yet another change for readability
* nasm.c: readability cleanup for seg:off parsingH. Peter Anvin2009-02-261-14/+8
| | | | | The code to pick apart seg:off in nasm.c was virtually unreadable due to mechanized line breaking.
* Rename convergence.asm to optimization.asmVictor van den Elzen2009-02-251-3/+3
|
* Do not confuse segmentless adresses and unknown forward referencesVictor van den Elzen2009-02-254-14/+37
| | | | Also be optimistic with immediate forward references.
* Add VPCLMUL instructionsH. Peter Anvin2009-02-231-0/+12
|
* assemble: only be optimistic with NO_SEG if we're really in pass 1H. Peter Anvin2009-02-231-1/+1
| | | | | | | Only be optimistic about the reachability of a symbol with NO_SEG if we are truly in pass 1, i.e. it could possibly be just a forward reference. After we have done a single pass, if it is still NO_SEG, then it is an absolute symbol and need to be treated as such.
* convergence.asm: add test of jmp to an absolute addressH. Peter Anvin2009-02-231-0/+3
| | | | | A JMP to an absolute address can't be short. Thus, we must not try to make it so.
* Add test file for optimal convergenceVictor van den Elzen2009-02-231-0/+34
| | | | | Some edge cases where starting with a long form converges suboptimally.
* BR 2420167: jmp not always optimizedVictor van den Elzen2009-02-231-0/+5
| | | | Begin by assuming short jumps are possible to prevent suboptimal convergence.
* PCLMUL is apparently targeted for Westmere with the AES stuffH. Peter Anvin2009-02-211-6/+5
| | | | The PCLMUL instruction is apparently targetted for Westmere.
* NASM 2.06rc5nasm-2.06rc5H. Peter Anvin2009-02-211-1/+1
|
* BR 2557903: fix disassembly of a set of SSE MOV* instructionsH. Peter Anvin2009-02-211-6/+6
| | | | | | | | Fix the disassembly of the alternate forms of register-register MOVAPD, MOVDQA, MOVDQU, MOVQ, MOVSD, and MOVUPD. NASM never generates these, but they would be disassembled incorrectly.
* BR 2541252: Fix issues in insns.dat, mostly related to LZCNT and POPCNTH. Peter Anvin2009-02-211-10/+10
| | | | | Fix various flags on LZCNT and POPCNT, and fix a few instructions tagged \360\332, which makes no sense.