H. Peter Anvin [Thu, 17 Jul 2008 21:28:29 +0000 (14:28 -0700)]
smartalign: use context-local label
Use a context-local label in the smart align macro.
H. Peter Anvin [Thu, 17 Jul 2008 21:22:10 +0000 (14:22 -0700)]
smartalign: adjust the alignment threshold
Apparently the current recommendation is for a smaller threshold when
using the "generic"-style alignment macros (short jumps are cheaper on
newer CPUs.)
Also change the alignment threshold definition to reflect the maximum
number of padding instead of when to start using jumps.
H. Peter Anvin [Thu, 17 Jul 2008 21:20:06 +0000 (14:20 -0700)]
smartalign: 16-bit generic alignment macros
Smart alignment content for 16-bit "generic" mode
H. Peter Anvin [Thu, 17 Jul 2008 21:13:53 +0000 (14:13 -0700)]
smartalign: 16-bit P6 NOPs
Add 16-bit P6 NOPs
H. Peter Anvin [Wed, 16 Jul 2008 21:41:39 +0000 (14:41 -0700)]
smartalign.mac: smart alignments macro package
"%use smartalign" followed by an optional "alignmode" can be used to
enable smart macros.
H. Peter Anvin [Wed, 16 Jul 2008 21:40:01 +0000 (14:40 -0700)]
preproc: add %un[i]macro, add cleanups
Add %un[i]macro, and a few stylistic cleanups.
Note: unlike %undef, %un[i]macro takes an argument specification,
which must *exactly* match the macro being undefined. Similarly,
%unimacro has to be used to undefine a macro defined with %imacro, and
vice versa.
H. Peter Anvin [Wed, 16 Jul 2008 21:38:58 +0000 (14:38 -0700)]
standard.mac: allow non-power-of-2 alignments
Allow aligning to a non-power-of-2 boundary. It's probably useless,
but doesn't really hurt.
H. Peter Anvin [Wed, 16 Jul 2008 21:38:24 +0000 (14:38 -0700)]
preproc.c: fix %ifn, %elifn
The sense of %ifn and %elifn was reversed due to a bogus nonstandard
return sequence.
Victor van den Elzen [Wed, 16 Jul 2008 13:20:56 +0000 (15:20 +0200)]
Fix multipass inline warning (dis/en)abling
Also add a new form: resetting warnings to their original value.
Victor van den Elzen [Wed, 16 Jul 2008 11:41:37 +0000 (13:41 +0200)]
Fix %rep ... %endmacro crash
Also improved a comment and an error message.
Victor van den Elzen [Wed, 25 Jun 2008 10:00:21 +0000 (12:00 +0200)]
update tests
Victor van den Elzen [Wed, 25 Jun 2008 09:41:40 +0000 (11:41 +0200)]
fix unitialized variable in eval_strfunc
Victor van den Elzen [Wed, 4 Jun 2008 13:24:20 +0000 (15:24 +0200)]
Fix fclose bug on error.
Contrary to the comments, the fclose is needed.
Failure to close the file caused remove to fail on Windows.
Victor van den Elzen [Wed, 4 Jun 2008 10:44:31 +0000 (12:44 +0200)]
Add a 'make test' target.
Victor van den Elzen [Wed, 28 May 2008 12:02:37 +0000 (14:02 +0200)]
Improve performtest.pl
Improve arguments and documentation of performtest.pl
Remove carriage returns in .stdout/.stderr so *nix can
read Windows test results
H. Peter Anvin [Mon, 14 Jul 2008 06:54:00 +0000 (02:54 -0400)]
changes.src: put \c{...} around macro directives
Put \c{...} around macro directives. Not the only ones that should
have that, of course, but they were easy to do with search and replace.
H. Peter Anvin [Mon, 14 Jul 2008 06:49:52 +0000 (02:49 -0400)]
changes.src: remove double entry for %warning
H. Peter Anvin [Mon, 14 Jul 2008 06:45:57 +0000 (02:45 -0400)]
Move the revision history into the documentation
Clumsily convert the revision history to nasmdoc format, so it can be
included in the documentation as Appendix C.
H. Peter Anvin [Sun, 13 Jul 2008 22:55:55 +0000 (15:55 -0700)]
doc: document packed BCD constants
H. Peter Anvin [Sun, 13 Jul 2008 22:44:25 +0000 (15:44 -0700)]
doc: update NASM Version Macros
Clean up and slightly update the section on NASM version macros.
H. Peter Anvin [Sun, 13 Jul 2008 22:41:36 +0000 (15:41 -0700)]
doc: move %error/%warning to a separate section
They don't really belong in the section on conditional assembly.
H. Peter Anvin [Sun, 13 Jul 2008 22:35:07 +0000 (15:35 -0700)]
doc: Document %strcat
H. Peter Anvin [Sun, 13 Jul 2008 22:25:54 +0000 (15:25 -0700)]
Update CHANGES to current delta from 2.03.x.
H. Peter Anvin [Sun, 13 Jul 2008 22:21:01 +0000 (15:21 -0700)]
BR 2017453: indirect jumps in 64-bit mode are implicitly 64 bits
Indirect jumps in 64-bit mode implicitly have 64-bit operand size.
Fix this; the disassembly is still unnecessarily ugly, however.
H. Peter Anvin [Sun, 13 Jul 2008 22:06:55 +0000 (15:06 -0700)]
test: add test of nested %rep, BCD constants, and %warning
Add a test case which has smoked out errors in the handling of nested
%rep, BCD constants, and %warning...
H. Peter Anvin [Sun, 13 Jul 2008 22:05:53 +0000 (15:05 -0700)]
preproc.c: make %warning actually issue a warning...
The calculation of "severity" was buggered up, with the result that
%warning actually issued an error.
H. Peter Anvin [Sun, 13 Jul 2008 20:54:47 +0000 (13:54 -0700)]
version.mak for the version Makefile fragment
Be consistent about the naming of the version Makefile fragment. We
use .mak elsewhere for Makefiles, so use that.
Charles Crayne [Sun, 13 Jul 2008 19:52:02 +0000 (12:52 -0700)]
Fix Bugs item #2017455 (LTR in long mode)
LTR is valid in long (64-bit) mode, but still uses
16-bit operand, so remove NOLONG restriction.
Charles Crayne [Sat, 12 Jul 2008 23:42:33 +0000 (16:42 -0700)]
%EXITREP inside nested %REPs
Apply updated version of fix submitted with feature request 803785.
This fix causes %exitrep to terminate only the innermost %rep block,
and also allows the count for nested blocks to be calculated in the
containing block.
H. Peter Anvin [Sun, 6 Jul 2008 00:45:01 +0000 (17:45 -0700)]
Add version.make to PERLREQ
version.make is produced by a Perl script, and therefore should be in
PERLREQ.
H. Peter Anvin [Fri, 4 Jul 2008 03:16:40 +0000 (20:16 -0700)]
test: simple test of packed BCD.
H. Peter Anvin [Fri, 4 Jul 2008 03:16:07 +0000 (20:16 -0700)]
For consistency, allow 0p.. prefix for packed BCD
Allow 0p... to be used as a prefix, for analogy with base conversion.
H. Peter Anvin [Fri, 4 Jul 2008 03:12:37 +0000 (20:12 -0700)]
float: support packed-BCD constants in 'dt' statements
Support packed-BCD constants in 'dt' statements (and elsewhere 80-bit
floating point is handled), using MASM syntax (terminal 'p').
H. Peter Anvin [Fri, 4 Jul 2008 03:11:30 +0000 (20:11 -0700)]
float: fix buffer overrun
Fix a buffer overrun; generally causing hexadecimal constants to be
incorrectly rejected.
H. Peter Anvin [Thu, 3 Jul 2008 01:11:49 +0000 (18:11 -0700)]
standard.mac: use anonymous contexts
Use anonymous %push instead of giving a context name.
H. Peter Anvin [Thu, 3 Jul 2008 01:11:04 +0000 (18:11 -0700)]
preproc: Allow anonymous contexts
Allow %push and %repl without a context name. For a lot of uses, it
is only a potential source of namespace pollution.
H. Peter Anvin [Wed, 2 Jul 2008 04:42:08 +0000 (21:42 -0700)]
Permit commas in %strcat
H. Peter Anvin [Wed, 2 Jul 2008 04:26:27 +0000 (21:26 -0700)]
preproc: %strcat directive to concatenate quoted strings
I noticed there was no sane way to concatenate the contents of quoted
strings, so add the %strcat directive.
These really need to become preprocessor functions at some stage.
H. Peter Anvin [Sun, 29 Jun 2008 01:53:55 +0000 (18:53 -0700)]
Update the INSTALL file to match current reality
H. Peter Anvin [Sun, 29 Jun 2008 01:39:13 +0000 (18:39 -0700)]
Document case-insensitivity bug.
H. Peter Anvin [Sun, 29 Jun 2008 01:32:16 +0000 (18:32 -0700)]
test: add a test for %imacro
Add a test for case-insensitive matching of %imacro.
H. Peter Anvin [Sun, 29 Jun 2008 01:31:08 +0000 (18:31 -0700)]
nasmlib: fix nasm_str[n]icmp()
Fix nasm_str[n]icmp() on platforms which don't have this function
natively.
XXX: Given the new nasm_tolower() implementation, we should consider
if this might actually be a faster function than the platform-native
one.
H. Peter Anvin [Sun, 29 Jun 2008 01:30:27 +0000 (18:30 -0700)]
preproc: MMacro.finishes is a pointer, not a boolean
MMacro.finishes is a pointer, not a boolean, so set it to "false", not
"NULL".
H. Peter Anvin [Fri, 27 Jun 2008 18:41:59 +0000 (11:41 -0700)]
AES instructions are WESTMERE, not NEHALEM
Still need to make this crap saner...
H. Peter Anvin [Wed, 25 Jun 2008 21:54:14 +0000 (14:54 -0700)]
Make the macros table "unsigned char"
It gets less ugly if we make the macros table "unsigned char".
H. Peter Anvin [Sun, 22 Jun 2008 01:19:13 +0000 (18:19 -0700)]
Run "make alldeps"
H. Peter Anvin [Sun, 22 Jun 2008 01:18:41 +0000 (18:18 -0700)]
pp_directives_len can be uint8_t
Save a few hundred bytes...
H. Peter Anvin [Sat, 21 Jun 2008 22:15:40 +0000 (15:15 -0700)]
Drop the index tables from the canned macros
Instead of an array of strings, just have a character array; that
reduces the size of canned macros by up to 30%, and we only did
sequential access anyway.
H. Peter Anvin [Sat, 21 Jun 2008 18:03:51 +0000 (11:03 -0700)]
Fix a few more <ctype.h> instances
A few isolated instances of isalpha() and isxdigit().
H. Peter Anvin [Sat, 21 Jun 2008 17:23:17 +0000 (10:23 -0700)]
ctype.h: wrapper ctype functions with a cast to (unsigned char)
ctype functions take an *int*, which the user is expected to have
taken the input character from getc() and friends, or taken a
character and cast it to (unsigned char).
We don't care about EOF (-1), so use macros that cast to (unsigned
char) for us.
H. Peter Anvin [Fri, 20 Jun 2008 22:55:45 +0000 (15:55 -0700)]
preproc: free the include path and the final filename
Memory leaks: free the include path, and the final used filename.
H. Peter Anvin [Fri, 20 Jun 2008 22:20:16 +0000 (15:20 -0700)]
Move the output format macros into the macros.pl mechanism
Move the handling of "extra" macros (i.e. output format macros) into
the macros.pl mechanism. This allows us to change the format of the
internal macro store in the future - e.g. to a single byte store
without redundant pointers.
Also, stop using indicies into a long array when there is no good
reason to not just use different arrays.
H. Peter Anvin [Fri, 20 Jun 2008 06:19:20 +0000 (23:19 -0700)]
raa: clean up indentation
Clean up in indentation in the RAA code.
H. Peter Anvin [Fri, 20 Jun 2008 06:09:11 +0000 (23:09 -0700)]
saa: fix indentation
Apply standard indentation to the SAA code, not sure why it was
different...
H. Peter Anvin [Fri, 20 Jun 2008 04:42:42 +0000 (21:42 -0700)]
Somewhat more clever way to generate the %use guard macros
Automatically generate a %define as the first string in the include
block, and just pick the string out of it from that %define statement
to verify existence. That way we eliminate any use of toupper() --
all case-insensitivity in NASM uses tolower()/nasm_tolower().
H. Peter Anvin [Fri, 20 Jun 2008 01:39:24 +0000 (18:39 -0700)]
Protect %use from multi-inclusion and provide a test macro
Automatically provide an include guard for %use packages; the macro
__USE_package__ is automatically defined, and inclusion is suppressed
if it is already defined.
H. Peter Anvin [Thu, 19 Jun 2008 23:58:05 +0000 (16:58 -0700)]
doc: framework for documenting standard macro packages
Add a framework for documenting the standard macro packages. Also
move the standard macros to the end of the preprocessor section,
instead of having them in the middle of the directives list.
H. Peter Anvin [Thu, 19 Jun 2008 23:26:12 +0000 (16:26 -0700)]
%use: call these directives "standard macro packages"
Adopt the term "standard macro packages", "modules" are too
ambiguous.
H. Peter Anvin [Thu, 19 Jun 2008 23:17:41 +0000 (16:17 -0700)]
macros.pl: need to use $' to get proper left-to-right behaviour
Using ^(.*) means we do right-to-left search, since (.*) is a greedy
expression; instead use $' to get the lead-in part of the string.
H. Peter Anvin [Thu, 19 Jun 2008 23:12:20 +0000 (16:12 -0700)]
macros.pl: remove debug prints; improve compression regex
Remove debug print statements from macros.pl
Make sure we test for whitespace at end of statements
H. Peter Anvin [Thu, 19 Jun 2008 23:00:04 +0000 (16:00 -0700)]
macros.c: compress by tokenizing macro directives
Compress macros.c by representing macro directives with a single byte.
We can do this because we only use the ASCII character range inside
the standard macro files.
Note: we could save significant additional space by not having a
pointer array, and instead relying on the fact that we sweep
sequentially through the output array.
H. Peter Anvin [Thu, 19 Jun 2008 22:04:18 +0000 (15:04 -0700)]
preproc: add support for builtin include modules (%use)
Add a builtin equivalent to the %include directive called %use.
%use includes a standard macro file compiled into the binary; these
come from the macros/ directory in the source code.
The idea here is to be able to provide optional macro packages with
the distribution, without adding complex host filesystem dependencies.
H. Peter Anvin [Thu, 19 Jun 2008 18:47:13 +0000 (11:47 -0700)]
doc: macroize texi2ipf and ipfc
Macroize the texi2ipf and ipfc commands (used for OS/2).
H. Peter Anvin [Thu, 19 Jun 2008 18:39:23 +0000 (11:39 -0700)]
doc: for ps to pdf conversion, use "acrodist", "ps2pdf" or "pstopdf"
For PostScript to PDF conversion, use whichever of "acrodist",
"ps2pdf", or "pstopdf" which we can find on the system. I haven't
tried either acrodist or pstopdf myself, only going my the
documentation, but prefer acrodist since it is claimed to produce
smaller output files than ps2pdf.
H. Peter Anvin [Tue, 17 Jun 2008 04:45:42 +0000 (21:45 -0700)]
Merge branch 'nasm-2.03.x'
Conflicts:
Makefile.in
Mkfiles/msvc.mak
Mkfiles/netware.mak
Mkfiles/openwcom.mak
Mkfiles/owlinux.mak
H. Peter Anvin [Tue, 17 Jun 2008 04:19:34 +0000 (21:19 -0700)]
doc: add missing nasmdoc.txt target
H. Peter Anvin [Tue, 17 Jun 2008 04:11:59 +0000 (21:11 -0700)]
NASM 2.03.01
H. Peter Anvin [Mon, 16 Jun 2008 22:55:19 +0000 (15:55 -0700)]
Backport the syncfiles script to the nasm-2.03.x branch
This is a maintenance tool only, it doesn't change the code in any
way. However, it makes it a lot less likely that we'll have a release
go out with a broken Makefile.
H. Peter Anvin [Mon, 16 Jun 2008 06:50:50 +0000 (23:50 -0700)]
syncfiles: use #-- ... --# for consistency with mkdep.pl
mkdep.pl already used #-- ... --# (two dashes) whereas syncfiles.pl
was using #--- ... ---# (three dashes). Change syncfiles.pl to match
mkdep.pl.
H. Peter Anvin [Mon, 16 Jun 2008 06:43:44 +0000 (23:43 -0700)]
syncfiles: terminate directory names at equal signs
In the case where the directory name should be removed (null pathname
separator) don't search backwards past an equal sign, just in case
there isn't a space after the assignment.
H. Peter Anvin [Mon, 16 Jun 2008 04:51:52 +0000 (21:51 -0700)]
Merge branch 'nasm-2.03.x'
H. Peter Anvin [Mon, 16 Jun 2008 04:51:17 +0000 (21:51 -0700)]
-F implies -g backported to 2.03.01
H. Peter Anvin [Mon, 16 Jun 2008 04:50:41 +0000 (21:50 -0700)]
CHANGES: document backport of -F implies -g
H. Peter Anvin [Mon, 16 Jun 2008 04:27:30 +0000 (21:27 -0700)]
Merge branch 'nasm-2.03.x'
Conflicts:
doc/nasmdoc.src
H. Peter Anvin [Mon, 16 Jun 2008 04:25:56 +0000 (21:25 -0700)]
Make -F imply -g (BR 1991213)
When the user specifies -F, imply the -g option. Too many users seem
to make this mistake.
Conflicts:
doc/nasmdoc.src
H. Peter Anvin [Mon, 16 Jun 2008 04:22:40 +0000 (21:22 -0700)]
Merge branch 'nasm-2.03.x'
Conflicts:
doc/nasmdoc.src
H. Peter Anvin [Thu, 12 Jun 2008 04:09:22 +0000 (21:09 -0700)]
doc: Nasm -> NASM
Consistently write NASM in all capitals
H. Peter Anvin [Thu, 12 Jun 2008 01:52:54 +0000 (18:52 -0700)]
doc: title capitalization
H. Peter Anvin [Mon, 16 Jun 2008 04:20:45 +0000 (21:20 -0700)]
doc: add missing period.
Conflicts:
H. Peter Anvin [Thu, 12 Jun 2008 01:38:15 +0000 (18:38 -0700)]
doc: Makefile fixes missing from previous checkin
H. Peter Anvin [Thu, 12 Jun 2008 01:32:33 +0000 (18:32 -0700)]
doc: another case of the RTF backend corrupting state
Another case of the RTF backend corrupting global state. "Fix" it by
only outputting one format at a time; this also makes it possible to
run in parallel.
H. Peter Anvin [Thu, 12 Jun 2008 01:23:14 +0000 (18:23 -0700)]
doc: ps/pdf: set page numbers in normal-sized italic
Set page numbers in normal-sized italic, instead of large and bold.
We might want to consider using bold italic, but I think this is just
fine.
H. Peter Anvin [Thu, 12 Jun 2008 01:14:24 +0000 (18:14 -0700)]
doc: Add NASMENV to the index (BR 1917084)
Add NASMENV to the documentation index.
H. Peter Anvin [Mon, 16 Jun 2008 04:15:18 +0000 (21:15 -0700)]
Merge branch 'nasm-2.03.x'
Conflicts:
doc/psfonts.ph
H. Peter Anvin [Mon, 16 Jun 2008 04:13:12 +0000 (21:13 -0700)]
Documentation facelift backported to 2.03.x
H. Peter Anvin [Mon, 16 Jun 2008 04:11:35 +0000 (21:11 -0700)]
CHANGES: Document documentation facelift
H. Peter Anvin [Thu, 12 Jun 2008 01:09:02 +0000 (18:09 -0700)]
ps/pdf doc: default to 10-point font, wider leading
Switch the main font to 10 points Times Roman, but leave the leading
at 11 points. This produces, in my opinion, a much more legible and
printable document.
H. Peter Anvin [Mon, 16 Jun 2008 04:01:25 +0000 (21:01 -0700)]
Merge branch 'nasm-2.03.x'
Conflicts:
CHANGES
H. Peter Anvin [Mon, 16 Jun 2008 04:00:16 +0000 (21:00 -0700)]
CHANGES: call the next version on this branch 2.03.01
Call the next version on this branch 2.03.01.
H. Peter Anvin [Mon, 16 Jun 2008 01:35:01 +0000 (18:35 -0700)]
syncfiles: use the same regexp for hints as mkdep uses
Use the same regular expression for hints in both mkdep and syncfiles.
H. Peter Anvin [Mon, 16 Jun 2008 01:33:03 +0000 (18:33 -0700)]
syncfiles: handle the case of the null path separator
Correctly handle the null path separator (meaning remove the directory
portion entirely.)
H. Peter Anvin [Mon, 16 Jun 2008 00:53:12 +0000 (17:53 -0700)]
utf.asm: add some error cases
Add some error cases for testing
H. Peter Anvin [Mon, 16 Jun 2008 00:52:45 +0000 (17:52 -0700)]
syncfiles.pl: remove obsolete comment
There isn't anything magic about the input file syntax.
H. Peter Anvin [Mon, 16 Jun 2008 00:39:45 +0000 (17:39 -0700)]
Free EOT_DB_STRING_FREE in cleanup_insn()
Free EOT_DB_STRING_FREE data in cleanup_insn(), which is where we free
all the other extop data.
H. Peter Anvin [Sun, 15 Jun 2008 23:55:39 +0000 (16:55 -0700)]
Mark Perl scripts executable
Be consistent about marking Perl scripts executable, even if we always
invoke them with $(PERL) in the Makefiles.
H. Peter Anvin [Sun, 15 Jun 2008 23:54:29 +0000 (16:54 -0700)]
Script to automagically synchronize the object file lists
Add a script to automagically synchronize the list of object files
between the various Makefiles.
H. Peter Anvin [Sun, 15 Jun 2008 23:18:43 +0000 (16:18 -0700)]
Update Mkfiles/*.mak
Sync the file list in Mkfiles/*.mak
H. Peter Anvin [Sun, 15 Jun 2008 04:37:46 +0000 (21:37 -0700)]
CHANGES: Document new features
H. Peter Anvin [Sun, 15 Jun 2008 04:36:56 +0000 (21:36 -0700)]
Merge branch 'nasm-2.03.x'
H. Peter Anvin [Sun, 15 Jun 2008 04:36:18 +0000 (21:36 -0700)]
CHANGES: document changes from nasm-2.03