Commit Graph

2183 Commits

Author SHA1 Message Date
H. Peter Anvin
c23c52040f 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>
2010-08-16 15:05:25 -07:00
H. Peter Anvin
0217039cdb 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>
2010-08-16 14:57:09 -07:00
H. Peter Anvin
421059c689 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>
2010-08-16 14:56:33 -07:00
H. Peter Anvin
978c2170fc 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>
2010-08-16 13:48:43 -07:00
Cyrill Gorcunov
84a9e308c3 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>
2010-08-16 13:53:22 +04:00
Cyrill Gorcunov
327edcfc7a doc: Fix typo in changes.src
Reported-by: Frank Kotler <fbkotler@zytor.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2010-08-16 13:47:24 +04:00
Keith Kanios
88d947e909 preproc.c: revamped context-local fall-through warning message 2010-08-14 12:47:45 -05:00
Keith Kanios
c71cb6b72a doc/nasmdoc.src: revamped context fall-through entry 2010-08-14 12:36:49 -05:00
Cyrill Gorcunov
e1b6e5712b 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>
2010-08-13 12:32:53 +04:00
H. Peter Anvin
e54805b30d LICENSE: update year
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2010-08-12 20:15:27 -07:00
Cyrill Gorcunov
8cb43d3f68 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>
2010-08-12 19:09:28 +04:00
Cyrill Gorcunov
41b17b1e31 standart.mac: Style nitfix
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2010-08-12 18:47:52 +04:00
Cyrill Gorcunov
d90693c79c 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>
2010-08-11 20:31:46 +04:00
Keith Kanios
404589e558 preproc.c: modified deprecation warning for context-local label fallthrough 2010-08-10 20:12:57 -05:00
Cyrill Gorcunov
71f4f8426c preproc.c: Fix error message typo
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2010-08-09 20:17:17 +04:00
Cyrill Gorcunov
753a60de63 test: Add br3041451 testcase
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2010-08-09 18:47:05 +04:00
Cyrill Gorcunov
e091d6ed62 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>
2010-08-09 18:35:35 +04:00
Keith Kanios
fe55e918fa preproc.c: added deprecation warning for context-local label fallthrough 2010-08-09 00:55:44 -05:00
Cyrill Gorcunov
73b34a5006 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>
2010-08-06 19:25:17 +04:00
Cyrill Gorcunov
acf1cbb250 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>
2010-08-04 20:18:30 +04:00
H. Peter Anvin
b936aa61c8 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>
2010-08-02 12:06:13 -07:00
Cyrill Gorcunov
d7b654c73d elf: Move stabs symbol table format into outelf.h
Get rid of code duplication

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2010-07-30 00:51:44 +04:00
Cyrill Gorcunov
16cbf9b5c2 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>
2010-07-29 19:01:34 +04:00
Cyrill Gorcunov
fd90ef56ae NASM 2.09rc5 2010-07-28 22:03:43 +04:00
Cyrill Gorcunov
dea6c7a974 doc: Updates on macro ranges
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2010-07-28 18:00:24 +04:00
Cyrill Gorcunov
d143f4f39c labels.c: cleanup
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2010-07-28 18:00:18 +04:00
Cyrill Gorcunov
d3034cb13b 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>
2010-07-28 18:00:06 +04:00
Cyrill Gorcunov
407e6c707f doc: Explain SECTALIGN
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2010-07-28 17:59:49 +04:00
Cyrill Gorcunov
455e087c6a doc: Fix ..sym section name misprint
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2010-07-27 01:48:27 +04:00
Cyrill Gorcunov
d6f31240c5 assemble.c: Style nitfix
Various tabs/space mixture cleaned and some more.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2010-07-26 23:16:45 +04:00
H. Peter Anvin
ab5bd05d82 Revert "Improve process_ea and introduce -OL"
This reverts commit ac732cb6a5.

Resolved Conflicts:

	doc/nasmdoc.src

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2010-07-25 12:43:30 -07:00
H. Peter Anvin
b453c866ab 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>
2010-07-25 00:17:12 -07:00
Cyrill Gorcunov
a38b86aecf 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>
2010-07-25 11:09:56 +04:00
Cyrill Gorcunov
2124b7b7dc Use is_register helper
Save us some line of code

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2010-07-25 01:16:33 +04:00
Cyrill Gorcunov
79699d8eda regs.pl: Introduce is_register() helper
Instead of opencoded check use inline helper.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2010-07-25 01:10:17 +04:00
Victor van den Elzen
b8e699fb3d Remove redundant sentence in docs 2010-07-24 22:24:15 +02:00
Victor van den Elzen
ac732cb6a5 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.
2010-07-24 22:00:12 +02:00
Cyrill Gorcunov
088d151130 doc: Update changes.src
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2010-07-23 18:57:40 +04:00
Cyrill Gorcunov
4e1d5ab0cf 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>
2010-07-23 18:51:51 +04:00
H. Peter Anvin
077fb93d2b 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>
2010-07-20 14:56:30 -07:00
Cyrill Gorcunov
aed4eaa8f3 changes.src: Fix misprint in "instructions" word.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2010-07-17 18:24:13 +04:00
H. Peter Anvin
6c74498114 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>
2010-07-15 22:51:26 -07:00
H. Peter Anvin
abe61900e4 Merge branch 'nasm-2.08.xx'
Resolved Conflicts:
	version

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2010-07-15 22:45:04 -07:00
H. Peter Anvin
5bc03271bd changes.src: update with the 2.08.xx changes
Patchlevels should be documented, too...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2010-07-15 22:44:03 -07:00
H. Peter Anvin
c23adff39b NASM 2.09rc4 2010-07-15 18:32:32 -07:00
H. Peter Anvin
31387b2d04 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>
2010-07-15 18:30:18 -07:00
Bryant Keller
a537d4964e Documentation: describe %ifenv and friends
Signed-off-by: Bryant Keller <bkeller@assembly.ath.cx>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2010-07-13 23:49:39 +04:00
H. Peter Anvin
6d9b2b59b5 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>
2010-07-13 12:00:58 -07:00
H. Peter Anvin
5b00bf4d49 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>
2010-07-13 11:46:37 -07:00
Cyrill Gorcunov
702df6d6cc Update changes.src
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2010-07-13 21:17:54 +04:00