summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* changes.src: document WAIT and %$$ fixesH. Peter Anvin2009-02-211-0/+6
|
* BR 2592476: Treat WAIT as a prefix even though it's really an instructionH. Peter Anvin2009-02-217-48/+49
| | | | | | WAIT is technically an instruction, but from an assembler standpoint it behaves as if it had been a prefix. In particular, it has to be ordered *before* any real hardware prefixes.
* br704736: handle deep context-local macrosH. Peter Anvin2009-02-211-44/+44
| | | | | | | | | | | The documentation says that constructs with %$...$foo can be used to access macros from deeper in the context stack. From what I can tell, that has never actually worked, since we'd enter names like %$foo into the context-local macro name table. Instead, only insert the tail of the macro name into the context-local table; expand get_ctx to also return a pointer to the macro name proper; this is rather straightforward since we'd usually save away that name at the point get_ctx is called anyway.
* nasmlib: make nasm_strcat() take const argumentsH. Peter Anvin2009-02-212-2/+2
| | | | | None of the strings passed to nasm_strcat() are modified, to make them const.
* outelf32/64: remove align_str in favor of fwritezero()H. Peter Anvin2009-02-212-8/+4
| | | | | Drop the use of yet another local all-zero buffer, align_str, in favor of calling fwritezero().
* outbin: fix typo: "sections" not "section"H. Peter Anvin2009-02-211-2/+2
| | | | Fix silly typo: the variable is "sections" not "section"...
* Unify all-zero buffers; add fwritezero()H. Peter Anvin2009-02-217-10/+34
| | | | | | | | 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.
* BR 2611906: proper error message for start < originH. Peter Anvin2009-02-211-30/+31
| | | | | | | | | 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.
* NASM 2.06rc4nasm-2.06rc4H. Peter Anvin2009-02-211-1/+1
|
* Fix opcode for VADDSUBPS; operands for VBLEND; add SSE for AES opsH. Peter Anvin2009-02-211-14/+14
| | | | | | Fix the opcode for VADDSUBPS Fix the operands for VBLEND Corrent the instruction flags for the AES ops (they're SSE)
* FMA instructions won't be in Sandy BridgeH. Peter Anvin2009-02-213-245/+245
| | | | | The FMA instructions aren't scheduled for Sandy Bridge after all. They will be "in a future processor", so create a placeholder for now.
* Perl script used to generate FMA instruction patternsH. Peter Anvin2009-02-181-0/+72
| | | | | Small perl script used to generate the FMA instruction patterns. May come in useful if the spec changes again.
* changes.src: document updated AVX specificationH. Peter Anvin2009-02-181-0/+2
|
* Update the VFMA* instructions per the AVX spec version 5H. Peter Anvin2009-02-181-64/+240
| | | | | | 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.
* insns.dat: fix minor formatting anomaliesH. Peter Anvin2009-02-181-3/+3
| | | | Fix minor anomalies in insns.dat.
* insns.pl: handle the new VEX.DDS flag per AVX spec version 5H. Peter Anvin2009-02-181-1/+1
| | | | The AVX spec version 5 introduces the new VEX.DDS flag; support it.
* BR 2593349: Move version message back to stdoutH. Peter Anvin2009-02-131-2/+2
| | | | | | | | | | | | | 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.
* NASM 2.06rc3nasm-2.06rc3H. Peter Anvin2009-02-111-1/+1
|
* Allow global declaration after symbol definitionCharles Crayne2009-01-281-3/+5
| | | | | This experimental feature needs to be tested for all output formats which recognize global symbols.
* Fix Bugs item #2537867Charles Crayne2009-01-271-1/+1
| | | | | | Module labels.c has code to issue error message when global directive appears after symbol definition, but the test condition was incorrectly punctuated.
* Document the as86 ..start labelSoronel Haetir2009-01-211-4/+4
| | | | | | | 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.
* doc: clean up the "String Manipulation in Macros" sectionH. Peter Anvin2009-01-181-7/+7
| | | | Minor cleanups to the "String Manipulation in Macros" section.
* doc: indent the time macro exampleH. Peter Anvin2009-01-181-9/+9
| | | | Indent the time macro example for ease of reading.
* doc: fix typoH. Peter Anvin2009-01-181-1/+1
| | | | verson -> version
* Merge branch 'master' of git+ssh://repo.or.cz/srv/git/nasmH. Peter Anvin2009-01-182-2/+4
|\
| * Generate warning for unknown section atributesCharles Crayne2009-01-182-2/+4
| | | | | | | | | | | | | | 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.
* | doc: update the section on numeric constantsH. Peter Anvin2009-01-181-17/+27
|/ | | | Update the section on numeric constants, and add a few more examples.
* Fix the [warning] directiveH. Peter Anvin2009-01-051-30/+28
| | | | | | | Fix multiple bugs in the [warning] directive: - Only parsed on pass 1 - "-" was interpreted as "+"
* outas86: slight stylistic cleanupsH. Peter Anvin2009-01-031-8/+8
| | | | Minor stylistic cleanups to previous patch.
* Add entry point support to as86 backendSoronel Haetir2009-01-031-1/+11
| | | | | | | | | | | | 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.
* BR 2432826: Fix enforcement of the LONG bitH. Peter Anvin2008-12-291-4/+5
| | | | | Somewhere we lost the enforcement of the LONG bit, as opposed to NOLONG. Fix this in the most obvious way.
* BR 2413278: Nonoptimal forms of arithmetic instructions involving AXH. Peter Anvin2008-12-291-0/+24
| | | | | At some point, we lost the optimizations for the core arithmetic operations involving AX. Put them back.
* changes.src: document Mach-O alignment fix.H. Peter Anvin2008-12-221-0/+2
|
* NASM 2.06rc2nasm-2.06rc2H. Peter Anvin2008-12-191-1/+1
|