Cyrill Gorcunov [Sun, 21 Nov 2010 16:51:49 +0000 (19:51 +0300)]
Changes for 2.09.04
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Victor van den Elzen [Sun, 7 Nov 2010 22:47:13 +0000 (23:47 +0100)]
BR3104852: only warn once for repeated prefixes
Victor van den Elzen [Sun, 7 Nov 2010 18:56:14 +0000 (19:56 +0100)]
BR3058845: mostly fix bogus warning with implicit operand size override
The implicit operand size override code didn't set the operand size
prefix, which confused the size calculation code for the range check.
The BITS 64 operand size calculation is still off, but "fixing" it by
making it 32-bit unless REX.W is set breaks PUSH and maybe others.
Cyrill Gorcunov [Sun, 21 Nov 2010 16:19:29 +0000 (19:19 +0300)]
misc: Enhance tag-release
It remains backward compatible
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Sat, 6 Nov 2010 20:04:12 +0000 (23:04 +0300)]
eval: rexp3 should operate with 64bit numbers
reloc_value returns 64bit numbers but we strip it down
to 'int' which causes problems if the former value is
big enough to overflow 'int'. Fix it.
[ BR3104312 ]
Reported-by: Christian Masloch
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Victor van den Elzen [Sun, 7 Nov 2010 16:31:27 +0000 (17:31 +0100)]
Fix autoconf 2.68 warning.
The first argument of AC_COMPILE_IFELSE needs to be wrapped with
AC_LANG_SOURCE.
Cyrill Gorcunov [Sat, 20 Nov 2010 11:18:23 +0000 (14:18 +0300)]
coff: Handle massive relocations
The backport of
4db724fdd76e3a6cd0f5124ef86de976c495d666
359b63f8976375f071edc33092daea57efa768fb
01102ee8e6a967830bcd6f0134efe8976f473121
2672af737954fb17ec0ebf17e787219a504c4400
so coff output target to be able to handle
massive relocations.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
H. Peter Anvin [Tue, 16 Nov 2010 17:36:58 +0000 (09:36 -0800)]
BR 3109604: Fix C4 vs C5 VEX form selection in calcsize()
calcsize() had the wrong criterion for when C5 prefixes are permitted
(REX.R is permitted, REX.X is forbidden.) assemble() had the right
test already. This caused symbol value errors.
Cyrill Gorcunov [Wed, 27 Oct 2010 17:52:40 +0000 (21:52 +0400)]
NASM 2.09.03
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 27 Oct 2010 17:50:20 +0000 (21:50 +0400)]
doc: Update changes for 2.09.03
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 27 Oct 2010 17:43:03 +0000 (21:43 +0400)]
preproc.c: Restore concat rules on context local variables
This is a backport of commits
8dcbbd7af0d6d07b455de0b6460dca6db6113553
575d4289c9b1fb47774cb79764a24899a69a8d52
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Thu, 7 Oct 2010 15:30:54 +0000 (19:30 +0400)]
preproc: Issue warning on unterminated %{ construct
As being pointed by "matching braces" topic on
[ http://forum.nasm.us/index.php?topic=905.0 ]
we don't issue warning on missed match for "{"
brace opened.
Strictly speaking we should issue error instead and
force user to fix asm source code but since it's
here for a long time already -- lets be "admissive".
Reported-by: Klod
CC: Frank Kotler <fbkotler@zytor.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Frank Kotler [Tue, 5 Oct 2010 14:37:57 +0000 (18:37 +0400)]
BR3079777: Explain %00 in documentation
Signed-off-by: Frank Kotler <fbkotler@zytor.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Fri, 1 Oct 2010 21:21:00 +0000 (01:21 +0400)]
BR3079550: NASM crash on run-time for OMF output format
We could have accessed malloc'ed data on external symbols
in obj and ieee output formats. Fix it by using nasm_zalloc.
Reported-by: Jiri Malak
Patch-by: Jiri Malak
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Fri, 24 Sep 2010 11:24:42 +0000 (15:24 +0400)]
BR3074517: Print %macro name inside %rep blocks
If we're to print inside %rep block we should find
out which %macro it belongs.
Reported-by: Rob Neff
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
H. Peter Anvin [Wed, 6 Oct 2010 23:28:07 +0000 (16:28 -0700)]
doc: fix spelling of "compatibility"
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cyrill Gorcunov [Fri, 17 Sep 2010 22:57:06 +0000 (02:57 +0400)]
NASM 2.09.02
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Fri, 17 Sep 2010 22:55:46 +0000 (02:55 +0400)]
doc/changes.src: Describe changes
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Fri, 17 Sep 2010 17:53:16 +0000 (21:53 +0400)]
Add test-case for BR3066383
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 15 Sep 2010 20:16:19 +0000 (00:16 +0400)]
BR3066383: Restore backward compatibility with token pasting
It seems to be a bit long story for the reason if this bug. But
lets be verbose and describe all byte-to-byte. And it is all about
preprocessor code, in particular paste_tokens and expand_mmac_params.
Initially the problem (not the same but similar) was noticed and
fixed in commit
ec88c1be. The problem reveals itself with code snippets
like
| %macro m 1
| %push
| %define %$arg %1
| %%top_%$arg:
| resb ($ - %%top_%$arg)
| %pop
| %endmacro
So with commits
ec88c1be,
51fd86e0,
1f6741fc,
985d880c we did expand
local single macro before processing tokens pasting unconditionally.
But then it being found that such approach breaks %assign directive.
The snippets like below didn't work
| %macro m 1
| %push
| %assign %$arg %1
| %assign %$arg %1+%$arg
| %pop
| %endmacro
So all these commits were reverted and we just stop pasting tokens
in paste_tokens() after TOK_PREPROC_ID (commit
20a94ad7). Unfortunately
this breaks %assign with compound preproc id
| %macro m3 1
| %push
| %assign %$_uses 0
| %rep 4
| %assign %$_ur%$_uses %$_uses
| mov ecx, %$_ur%$_uses
| %assign %$_uses %$_uses+1
| %endrep
| %pop
| %endmacro
To fix this bug we have to combine two approaches at once,
we should continue pasting after TOK_PREPROC_ID and expand
sequential TOK_PREPROC_IDs except first one.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 15 Sep 2010 17:13:48 +0000 (21:13 +0400)]
changes.src: Describe changes for 2.09.02
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Sun, 12 Sep 2010 09:37:53 +0000 (13:37 +0400)]
BR3064376: ndisasm crash
ndisasm may crash due to lack of check of VEX table index.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Sat, 11 Sep 2010 22:00:05 +0000 (02:00 +0400)]
BR3064459: Missing %endif doesn't always cause error
error() routine is conditional dependent so we should
use nasm_error instead to yield message unconditionally.
Reported-by: Christian Masloch
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Fri, 10 Sep 2010 18:40:27 +0000 (22:40 +0400)]
doc/nasmdoc.src: Fix octal number prefix misprint
Reported-by: Anthony <anthony@cloudnet.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
H. Peter Anvin [Wed, 15 Sep 2010 15:59:12 +0000 (08:59 -0700)]
changes: document fixed token reversal for %deftok
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Wed, 15 Sep 2010 15:57:21 +0000 (08:57 -0700)]
preproc: reverse the order of the tokens in %deftok
Smacros are apparently stored with the token stream reversed, so make
sure %deftok matches that sense of relatity.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Cyrill Gorcunov [Tue, 7 Sep 2010 17:00:19 +0000 (21:00 +0400)]
NASM 2.09.01
A couple of NULL dereferences fixed.
See NASM version history in documentation.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 7 Sep 2010 16:57:36 +0000 (20:57 +0400)]
changes.src: Describe changes for 2.09.01
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 7 Sep 2010 16:31:11 +0000 (20:31 +0400)]
preproc.c: Make %substr robust
Make %substr robust to handle -1,-1 parameters
and restore old behavior when number of characters
in substring is greater then length of string itself.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 7 Sep 2010 06:42:02 +0000 (10:42 +0400)]
Handle %substr invalid parameters preventing NULL dereference
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 7 Sep 2010 05:52:47 +0000 (09:52 +0400)]
nasm_quote: Use memcpy only if length provided
No need to call memcpy on empty strings
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Mon, 6 Sep 2010 19:49:52 +0000 (23:49 +0400)]
Fix NULL dereferences on %substr missing operands
%substr with dangling id issues SIGSEV. Fix it.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Mon, 6 Sep 2010 15:36:15 +0000 (19:36 +0400)]
BR3060469: Fix SIGSEV on missed %deftok second parameter
In case if a second parameter of %deftok is missed we hit
NULL dereference. Fix it.
Reported-by: Christian Masloch
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
H. Peter Anvin [Tue, 24 Aug 2010 16:55:27 +0000 (09:55 -0700)]
doc: document the %use fp macro package
Documentation for %use fp was missing...
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Tue, 24 Aug 2010 16:13:34 +0000 (09:13 -0700)]
NASM 2.09
H. Peter Anvin [Fri, 20 Aug 2010 00:20:18 +0000 (17:20 -0700)]
insns.pl: make insnsd.c a bit easier to read
Formatting changes (no object code difference) to insnsd.c for
readability.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Fri, 20 Aug 2010 00:04:36 +0000 (17:04 -0700)]
ndisasm: handle VEX.LIG
A lot of instructions ignore the L bit in the VEX prefix, just like
a lot of instructions ignore the W bit, so don't use them in the
sub-table select.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Thu, 19 Aug 2010 23:59:35 +0000 (16:59 -0700)]
ndisasm: unify VEX handling
Unify VEX handling between the 026x and 0270 bytecodes.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Tue, 17 Aug 2010 05:13:14 +0000 (22:13 -0700)]
ndisasm: fix handing of byte codes 250-253, 324
Fix handling of byte codes 250-253 (sign-extended 32-bit immediate,
extended to 64 bits) and 324 (instruction must have osize 64).
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 16 Aug 2010 22:24:01 +0000 (15:24 -0700)]
NASM 2.09rc7
H. Peter Anvin [Mon, 16 Aug 2010 22:23:16 +0000 (15:23 -0700)]
test/avx: remove deleted instructions
Remove the deleted VPERMIL2 instructions.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Mon, 16 Aug 2010 22:22:21 +0000 (15:22 -0700)]
insns.dat: permit contracted forms for VBLENDVP
Allow implicit operands for VBLENDVP, just as for other instructions,
since the semi-legacy forms now are removed.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Mon, 16 Aug 2010 22:21:48 +0000 (15:21 -0700)]
assmemble.c: fix VEX.W logic
Fix the generation logic for VEX.W, which unfortunately got the wrong
constants.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Mon, 16 Aug 2010 22:08:51 +0000 (15:08 -0700)]
insns.dat: fix encoding of VCVTSD2SS
Fix typo in the definition of VCVTSD2SS.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Mon, 16 Aug 2010 22:05:25 +0000 (15:05 -0700)]
insns.dat: SSE encoding of VBLEND with VEX prefix is forbidden
Version 7 of the AVX spec specifically forbids (#UD) using the
66 0F 38 14/15 forms of the BLENDV instructions with a VEX prefix;
those encodings are strictly legacy SSE 4.1.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Mon, 16 Aug 2010 21:57:09 +0000 (14:57 -0700)]
insns.dat: updates from AVX v7
Updates from the AVX version 7 specification: mostly tightening of the
rules for VEX.L and VEX.W, but remove the VPERMIL2 instructions.
Also encode all the full-length forms of the VCMP instructions and
prefer those for the disassembly.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Mon, 16 Aug 2010 21:56:33 +0000 (14:56 -0700)]
assemble: handle vex.lig
AVX version 7 introduces the concept of .lig, meaning VEX.L is
ignored.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Mon, 16 Aug 2010 20:48:43 +0000 (13:48 -0700)]
vex: change .wx to .wig to match the latest AVX spec
Change the .wx (ignore the W field) to .wig, to match the latest
version of the AVX specification. This is not a functional change,
but just makes instruction patterns a little easier to write.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cyrill Gorcunov [Mon, 16 Aug 2010 09:53:22 +0000 (13:53 +0400)]
doc: Update -O option description
We use -Ox by default since Nasm-2.09 so "-O0" is not
longer "default" option. But first paragraph still has
the reference which confuses people. Get rid of it.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Mon, 16 Aug 2010 09:47:24 +0000 (13:47 +0400)]
doc: Fix typo in changes.src
Reported-by: Frank Kotler <fbkotler@zytor.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Keith Kanios [Sat, 14 Aug 2010 17:47:45 +0000 (12:47 -0500)]
preproc.c: revamped context-local fall-through warning message
Keith Kanios [Sat, 14 Aug 2010 17:36:49 +0000 (12:36 -0500)]
doc/nasmdoc.src: revamped context fall-through entry
Cyrill Gorcunov [Fri, 13 Aug 2010 08:32:53 +0000 (12:32 +0400)]
doc: Describe context-through lookup
Feel free to update this text as well,
and check it please for being more/less
readable.
CC: Keith Kanios <keith@kanios.net>
CC: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
H. Peter Anvin [Fri, 13 Aug 2010 02:53:37 +0000 (19:53 -0700)]
LICENSE: update year
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Cyrill Gorcunov [Thu, 12 Aug 2010 15:09:28 +0000 (19:09 +0400)]
sectalign: Implement on/off mode
And describe it in documentation. We've introduced
sectalign in 2.09rc series and have to provide an
ability to steer this feature.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 10 Aug 2010 10:19:03 +0000 (14:19 +0400)]
standart.mac: Style nitfix
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 11 Aug 2010 16:31:46 +0000 (20:31 +0400)]
preproc.c: Context-through single macros expansion is deprecated
For now we inform users about their sources need to be
updated and also since _all_ context case are legit
for single macros only we split lookup into two phases:
1) Lookup in active context, which is perfectly valid
2) Lookup in external contexts, which will be deprecated soon.
If (2) happens we yield warning.
A typical testcase is
---
%macro one 0
%push
%$a:
%assign %$b 12
%push
mov eax, %$a
mov eax, %$b ; hit -- context through
%pop
%pop
%endmacro
one
---
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Keith Kanios [Wed, 11 Aug 2010 01:12:57 +0000 (20:12 -0500)]
preproc.c: modified deprecation warning for context-local label fallthrough
Cyrill Gorcunov [Mon, 9 Aug 2010 16:17:17 +0000 (20:17 +0400)]
preproc.c: Fix error message typo
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Mon, 9 Aug 2010 14:42:57 +0000 (18:42 +0400)]
test: Add br3041451 testcase
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Mon, 9 Aug 2010 09:58:22 +0000 (13:58 +0400)]
BR3041451: Implement upper bound for %rep counter
Since %rep counter is a 64 bit signed integer we have to use some
"maximum possible value" limit (upper bound) otherwise there may be
a situation when %rep counter is 0 or even negative while user
has been passing big positive integer value.
Reported-by: nasm64developer
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Keith Kanios [Mon, 9 Aug 2010 05:55:44 +0000 (00:55 -0500)]
preproc.c: added deprecation warning for context-local label fallthrough
Cyrill Gorcunov [Fri, 6 Aug 2010 15:23:31 +0000 (19:23 +0400)]
NASM 2.09rc6
It likely to be the last -rc before final relase.
Give it a good testing. We should be in pretty good
shape.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 4 Aug 2010 13:27:17 +0000 (17:27 +0400)]
test: Add automatizing annotations to imm64.asm
H. Peter Anvin pointed
|
| Btw, test/imm64.asm needs test engine annotations.
|
Make it so.
Reported-by: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
H. Peter Anvin [Mon, 2 Aug 2010 19:04:50 +0000 (12:04 -0700)]
insns.dat: unbreak test/imm64.bin
Unbreak the following subtest in test/imm64.bin:
mov qword [rax],dword 11223344h
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cyrill Gorcunov [Thu, 29 Jul 2010 06:12:29 +0000 (10:12 +0400)]
elf: Move stabs symbol table format into outelf.h
Get rid of code duplication
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 28 Jul 2010 19:27:11 +0000 (23:27 +0400)]
nasmlib.c: fix typo in nasm_init_malloc_error
Typo happened in
9b603082 so -DLOGALLOC gets broken.
Not that important since this is a developer oriented
feature but should be fixed anyway.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 28 Jul 2010 18:03:43 +0000 (22:03 +0400)]
NASM 2.09rc5
Cyrill Gorcunov [Wed, 28 Jul 2010 09:57:01 +0000 (13:57 +0400)]
doc: Updates on macro ranges
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 28 Jul 2010 06:18:48 +0000 (10:18 +0400)]
labels.c: cleanup
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 27 Jul 2010 11:41:03 +0000 (15:41 +0400)]
Get rid of misc/altreg.inc
It's the same as macros/altreg.mac which is already included.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Wed, 28 Jul 2010 13:59:49 +0000 (17:59 +0400)]
doc: Explain SECTALIGN
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Mon, 26 Jul 2010 21:48:27 +0000 (01:48 +0400)]
doc: Fix ..sym section name misprint
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Mon, 26 Jul 2010 19:14:40 +0000 (23:14 +0400)]
assemble.c: Style nitfix
Various tabs/space mixture cleaned and some more.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
H. Peter Anvin [Sun, 25 Jul 2010 19:43:30 +0000 (12:43 -0700)]
Revert "Improve process_ea and introduce -OL"
This reverts commit
ac732cb6a599836bf4c988e59ac6de4498758c72.
Resolved Conflicts:
doc/nasmdoc.src
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Sun, 25 Jul 2010 07:17:12 +0000 (00:17 -0700)]
nasm.h: move "regs.h" to top; make is_register() a bool
Move the #include of regs.h to the top with the other includes, and
make is_register() -- being a boolean predicate -- return bool.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Cyrill Gorcunov [Sun, 25 Jul 2010 07:09:56 +0000 (11:09 +0400)]
move is_register helper to nasm.h
H. Peter Anvin noted:
|
| Could we avoid putting static code that has no dynamic content in
| dynamically generated files... it just complicates things unnecessarily.
|
| The above can move into nasm.h for example.
|
Good idea.
CC: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Sat, 24 Jul 2010 21:16:33 +0000 (01:16 +0400)]
Use is_register helper
Save us some line of code
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Sat, 24 Jul 2010 21:10:17 +0000 (01:10 +0400)]
regs.pl: Introduce is_register() helper
Instead of opencoded check use inline helper.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Victor van den Elzen [Sat, 24 Jul 2010 20:24:15 +0000 (22:24 +0200)]
Remove redundant sentence in docs
Victor van den Elzen [Tue, 31 Mar 2009 02:59:44 +0000 (04:59 +0200)]
Improve process_ea and introduce -OL
Two fixes:
1. Optimization of [bx+0xFFFF] etc
0xFFFF is an sbyte under 16-bit semantics,
so make sure to check it right.
2. Don't optimize displacements in -O0
Displacements that fit into an sbyte or
can be removed should *not* be optimized in -O0.
Implicit zero displacements are still optimized, e.g.:
[eax] -> 0 bit displacement, [ebp] -> 8 bit displacement.
However explicit displacements are not optimized:
[eax+0] -> 32 bit displacement, [ebp+0] -> 32 bit displacement.
Because #2 breaks compatibility with 0.98,
I introduced a new optimization level: -OL, legacy.
Cyrill Gorcunov [Fri, 23 Jul 2010 14:57:40 +0000 (18:57 +0400)]
doc: Update changes.src
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Fri, 23 Jul 2010 14:51:51 +0000 (18:51 +0400)]
preproc.: Fix NULL dereference on broken %strlen argument
Under particular circumstances %strlen may cause SIGSEG. A typical
example is %strlen with nonexistent macro argument.
[ Testcase test/strlen.asm ]
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
H. Peter Anvin [Tue, 20 Jul 2010 21:56:30 +0000 (14:56 -0700)]
preproc: allow non-identifier character in environment variables
Allow non-identifier characters in the name of environment variables,
by surrounding them with string quotes (subject to ordinary
string-quoting rules.)
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cyrill Gorcunov [Sat, 17 Jul 2010 14:24:13 +0000 (18:24 +0400)]
changes.src: Fix misprint in "instructions" word.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
H. Peter Anvin [Fri, 16 Jul 2010 05:51:26 +0000 (22:51 -0700)]
nasmdoc: we still miss Chuck, but...
We still miss Chuck, but I don't think we can really say anymore we're
doing this particular release in his memory.
Requiescat in pace, our friend.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Fri, 16 Jul 2010 05:45:04 +0000 (22:45 -0700)]
Merge branch 'nasm-2.08.xx'
Resolved Conflicts:
version
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Fri, 16 Jul 2010 05:44:03 +0000 (22:44 -0700)]
changes.src: update with the 2.08.xx changes
Patchlevels should be documented, too...
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Fri, 16 Jul 2010 01:32:32 +0000 (18:32 -0700)]
NASM 2.09rc4
H. Peter Anvin [Fri, 16 Jul 2010 01:28:52 +0000 (18:28 -0700)]
Make -Ox the default
Make -Ox the default; it's the optimization level expected by most
users, and it is clearly still causing confusion that it has to be
specified manually.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Bryant Keller [Tue, 13 Jul 2010 19:49:39 +0000 (23:49 +0400)]
Documentation: describe %ifenv and friends
Signed-off-by: Bryant Keller <bkeller@assembly.ath.cx>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
H. Peter Anvin [Tue, 13 Jul 2010 19:00:58 +0000 (12:00 -0700)]
preproc: add %ifenv
Add %ifenv to test for the presence of an environment variable. The
environment variable can, but does not have to be, prefixed with %!.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Tue, 13 Jul 2010 18:43:06 +0000 (11:43 -0700)]
BR3028880: Revert to nonfatal, better error message, cleanup
Revert to issuing a nonfatal error (it makes no sense to make it a
fatal error, but it probably makes sense for it to be an error instead
of a warning, especially since a lot of prior versions would crash and
apparently noone noticed.) We might have to revisit this based on
user requirements, and/or provide a method for the user to detect an
existing environment variable (%ifenv?).
Issue a better error message, indicating the nature of the failure.
Simplify the code by just updating the string in "p".
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cyrill Gorcunov [Tue, 13 Jul 2010 16:59:46 +0000 (20:59 +0400)]
Update changes.src
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 13 Jul 2010 16:54:48 +0000 (20:54 +0400)]
BR3028880: Make nonexistent environment variable being fatal error
Frank suggested to just print out an error if environment
variable is not there. Agreed.
Suggested-by: Frank Kotler <fbkotler@zytor.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 13 Jul 2010 16:16:50 +0000 (20:16 +0400)]
Check in test for BR3028880
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 13 Jul 2010 15:08:15 +0000 (19:08 +0400)]
BR3028880: Fix NULL dereference on nonexistent environment variable
Frank reported we hit NULL dereference on nonexistent
environment variables. Fix it by leaving empty string
in text field of such token and yielding warning.
Reported-by: Frank Kotler <fbkotler@zytor.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 13 Jul 2010 09:32:19 +0000 (13:32 +0400)]
tokenize: Fix wrong string index in indirect strings
At moment of calling the nasm_skip_string the string pointer
is already incremented which makes tokenize fail on correct
indirect strings.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Tue, 13 Jul 2010 07:27:41 +0000 (11:27 +0400)]
preproc: Extract reading line from predefined macros from read_line
It makes read_line less complex
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cyrill Gorcunov [Mon, 12 Jul 2010 19:15:01 +0000 (23:15 +0400)]
Documentation updates
Various small fixes.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>