platform/upstream/nasm.git
12 years agodoc: Document elfx32 support
H. Peter Anvin [Sat, 25 Feb 2012 23:05:45 +0000 (15:05 -0800)]
doc: Document elfx32 support

Document the new elfx32 backend.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
12 years agodoc: Move the EPS logo down by 1"
H. Peter Anvin [Sat, 25 Feb 2012 22:55:12 +0000 (14:55 -0800)]
doc: Move the EPS logo down by 1"

The default page-centered position doesn't work too well with the
title and the new logo, so move the new logo down the page a bit.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
12 years agodoc: New NASM logo
Cyrill Gorcunov [Sat, 25 Feb 2012 22:53:34 +0000 (14:53 -0800)]
doc: New NASM logo

Update to a new NASM logo.

12 years agodoc: Allow repositioning the EPS logo
H. Peter Anvin [Sat, 25 Feb 2012 22:51:01 +0000 (14:51 -0800)]
doc: Allow repositioning the EPS logo

Allow specifying an offset from the computed position of the EPS logo:

\M{logoxadj}{adjustment}
\M{logoyadj}{adjustment}

The adjustment is given in Postscript points (1/72" = 0.352778 mm) and
using the Postscript coordinate system, with the origin in the lower
left.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
12 years agoUpdate copyright year to 2012
H. Peter Anvin [Sat, 25 Feb 2012 22:45:44 +0000 (14:45 -0800)]
Update copyright year to 2012

12 years agoNASM 2.10rc9
H. Peter Anvin [Sat, 25 Feb 2012 21:31:16 +0000 (13:31 -0800)]
NASM 2.10rc9

12 years agodoc: Document AVX2, BMI1, BMI2 and TSX support.
H. Peter Anvin [Sat, 25 Feb 2012 21:30:41 +0000 (13:30 -0800)]
doc: Document AVX2, BMI1, BMI2 and TSX support.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
12 years agoAssume the undocumented CMPXCHG486 opcode was lockable
H. Peter Anvin [Sat, 25 Feb 2012 20:35:33 +0000 (12:35 -0800)]
Assume the undocumented CMPXCHG486 opcode was lockable

Someone who actually knows about this opcode and has a 486 to test on
may want to verify this.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
12 years agoinsns.dat: Add IF_LOCK flag on appropriate instructions
Cyrill Gorcunov [Sat, 25 Feb 2012 20:24:43 +0000 (00:24 +0400)]
insns.dat: Add IF_LOCK flag on appropriate instructions

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoClean up JMP/CALL patterns, especially for 64 bits
H. Peter Anvin [Sat, 25 Feb 2012 20:05:53 +0000 (12:05 -0800)]
Clean up JMP/CALL patterns, especially for 64 bits

Clean up JMP/CALL patterns so they don't disassemble quite so uglily.
Fix a CALL pattern which would have incorrectly generated a (harmless)
REX.W prefix.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
12 years agoinsns.dat: Add nohle for MOV in case of moffset destination
Cyrill Gorcunov [Sat, 25 Feb 2012 20:07:27 +0000 (00:07 +0400)]
insns.dat: Add nohle for MOV in case of moffset destination

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hlexr flag for MOV instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:51:10 +0000 (23:51 +0400)]
insns.dat: Add hlexr flag for MOV instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hlenl flag for XCHG instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:46:16 +0000 (23:46 +0400)]
insns.dat: Add hlenl flag for XCHG instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hle flag for XADD instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:42:14 +0000 (23:42 +0400)]
insns.dat: Add hle flag for XADD instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hle flag for XOR instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:41:11 +0000 (23:41 +0400)]
insns.dat: Add hle flag for XOR instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hle flag for SUB instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:39:44 +0000 (23:39 +0400)]
insns.dat: Add hle flag for SUB instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hle flag for SBB instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:37:58 +0000 (23:37 +0400)]
insns.dat: Add hle flag for SBB instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hle flag for OR instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:36:24 +0000 (23:36 +0400)]
insns.dat: Add hle flag for OR instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hle flag for NOT instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:34:55 +0000 (23:34 +0400)]
insns.dat: Add hle flag for NOT instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hle flag for NEG instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:34:24 +0000 (23:34 +0400)]
insns.dat: Add hle flag for NEG instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hle flag for INC instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:33:24 +0000 (23:33 +0400)]
insns.dat: Add hle flag for INC instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hle flag for DEC instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:32:31 +0000 (23:32 +0400)]
insns.dat: Add hle flag for DEC instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hle flag for CMPXCHG16B instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:30:32 +0000 (23:30 +0400)]
insns.dat: Add hle flag for CMPXCHG16B instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hle flag for CMPXCHG8B instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:28:58 +0000 (23:28 +0400)]
insns.dat: Add hle flag for CMPXCHG8B instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hle flag for CMPXCHG instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:18:36 +0000 (23:18 +0400)]
insns.dat: Add hle flag for CMPXCHG instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hle flag for BTS instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:17:23 +0000 (23:17 +0400)]
insns.dat: Add hle flag for BTS instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hle flag for BTR instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:16:48 +0000 (23:16 +0400)]
insns.dat: Add hle flag for BTR instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hle flag for BTC instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:15:40 +0000 (23:15 +0400)]
insns.dat: Add hle flag for BTC instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hle flag for AND instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:13:25 +0000 (23:13 +0400)]
insns.dat: Add hle flag for AND instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hle flag for ADC instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:10:17 +0000 (23:10 +0400)]
insns.dat: Add hle flag for ADC instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Add hle flag for ADD instruction
Cyrill Gorcunov [Sat, 25 Feb 2012 19:04:32 +0000 (23:04 +0400)]
insns.dat: Add hle flag for ADD instruction

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agodisasm: ignore opcodes 370 and 371
H. Peter Anvin [Sat, 25 Feb 2012 19:46:56 +0000 (11:46 -0800)]
disasm: ignore opcodes 370 and 371

12 years agoRemove all remaining explicit bytecodes from insns.dat
H. Peter Anvin [Sat, 25 Feb 2012 19:41:34 +0000 (11:41 -0800)]
Remove all remaining explicit bytecodes from insns.dat

Get rid of the last vestiges of the explicit byte codes in insns.dat.
The only files that now depend on actual byte code numbers are
insns.pl, assemble.c and disasm.c.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
12 years agoAdd support for warning on invalid LOCK prefixes
H. Peter Anvin [Sat, 25 Feb 2012 19:11:42 +0000 (11:11 -0800)]
Add support for warning on invalid LOCK prefixes

Add an LOCK flag to the instruction template, and make the presence of
a LOCK prefix trigger a warning if it is not set.  Simplify the LOCK
and HLE logic by hard-coding the knowledge that operand 0 has to be
memory.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
12 years agoMove HLE byte codes to \264..\267
H. Peter Anvin [Sat, 25 Feb 2012 18:24:24 +0000 (10:24 -0800)]
Move HLE byte codes to \264..\267

Move the HLE byte codes to \264..\267 so as not to break up an unused
group of 8 (\240..\247).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
12 years agoAdd a "nohle" byte code to skip an instruction pattern
H. Peter Anvin [Sat, 25 Feb 2012 18:19:56 +0000 (10:19 -0800)]
Add a "nohle" byte code to skip an instruction pattern

The a2/a3 mem_offs MOV opcodes are invalid with XRELEASE; those
instructions instead have to use a modrm form.  Therefore give a way
to annotate those instruction patters so the pattern matcher will move
on to the next pattern, rather than selecting them and then issue a
warning.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
12 years agoinsns.pl: Bundle all "plain bytecodes" into a hash
H. Peter Anvin [Sat, 25 Feb 2012 06:06:39 +0000 (22:06 -0800)]
insns.pl: Bundle all "plain bytecodes" into a hash

Instead of a long string of ifs, put all the plain opcodes which just
turn into single bytecodes with no other effect into a hash.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
12 years agoHLE: Implement the basic mechanism for XACQUIRE/XRELEASE
H. Peter Anvin [Sat, 25 Feb 2012 05:51:46 +0000 (21:51 -0800)]
HLE: Implement the basic mechanism for XACQUIRE/XRELEASE

This implements the mechanism for XACQUIRE/XRELEASE.  It does not
include the necessary annotations in insns.dat.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
12 years agonasm.c: Fix is_suppressed_warning()
H. Peter Anvin [Sat, 25 Feb 2012 05:50:53 +0000 (21:50 -0800)]
nasm.c: Fix is_suppressed_warning()

The logic in is_suppressed_warning() was severely wrong, which would
cause a lot of legitimate warnings to be suppressed while some
warnings would be duplicated.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
12 years agoHLE: Split the LOCK and REP prefix slots
H. Peter Anvin [Sat, 25 Feb 2012 04:57:04 +0000 (20:57 -0800)]
HLE: Split the LOCK and REP prefix slots

With HLE, the sequence REP LOCK actually makes sense, so support it.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
12 years agoinsns: create a symbolic "wait" token for the \341 byte code
H. Peter Anvin [Fri, 10 Feb 2012 19:11:08 +0000 (11:11 -0800)]
insns: create a symbolic "wait" token for the \341 byte code

Create a symbolic name "wait" for the \341 byte code, so we don't have
to open-code it.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
12 years agoinsns: fix IMUL patterns to get rid of open-coded \100 bytecodes
H. Peter Anvin [Fri, 10 Feb 2012 19:08:09 +0000 (11:08 -0800)]
insns: fix IMUL patterns to get rid of open-coded \100 bytecodes

There already is a standard encoding for "use this operand in multiple
slots"; no need to open-code it.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
12 years agoinsns: correct the TSX opcodes
H. Peter Anvin [Fri, 10 Feb 2012 00:24:32 +0000 (16:24 -0800)]
insns: correct the TSX opcodes

All except XTEST are RTM, not HLE; XBEGIN is like a JMP or CALL.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
12 years agoinsns: Add AVX2 transactional synchronization extensions
Cyrill Gorcunov [Thu, 9 Feb 2012 22:11:22 +0000 (02:11 +0400)]
insns: Add AVX2 transactional synchronization extensions

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns: replace open-coded \322 opcode with odf (operand default)
H. Peter Anvin [Fri, 10 Feb 2012 00:20:21 +0000 (16:20 -0800)]
insns: replace open-coded \322 opcode with odf (operand default)

Create a mnemonic for the open-coded opcode \322.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
12 years agobackend: add support for x32 ELF
H.J. Lu [Fri, 3 Feb 2012 20:06:04 +0000 (12:06 -0800)]
backend: add support for x32 ELF

Add an x32 ELF (32-bit code with the CPU in 64-bit mode) backend.

12 years agoBR 3463230: Add VMFUNC instruction
H. Peter Anvin [Wed, 21 Dec 2011 16:26:48 +0000 (08:26 -0800)]
BR 3463230: Add VMFUNC instruction

Add VMFUNC instruction from the Intel SDM version 041.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
12 years agoinsns: Fix up sizes for MOVSD and VMOVSS instructions
Cyrill Gorcunov [Sat, 17 Dec 2011 08:09:02 +0000 (12:09 +0400)]
insns: Fix up sizes for MOVSD and VMOVSS instructions

Reported-by: Jasper Neumann <jasper.neumann@scpsoftware.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoDon't forget to setup warning levels on preprocessor phase
Cyrill Gorcunov [Sun, 4 Dec 2011 21:56:40 +0000 (01:56 +0400)]
Don't forget to setup warning levels on preprocessor phase

http://bugzilla.nasm.us/show_bug.cgi?id=3143109

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoDrop tab/space mess from parse_cmdline
Cyrill Gorcunov [Sun, 4 Dec 2011 21:44:43 +0000 (01:44 +0400)]
Drop tab/space mess from parse_cmdline

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoUse proper bracing on setting warnings in comman line parsing
Cyrill Gorcunov [Sun, 4 Dec 2011 21:39:04 +0000 (01:39 +0400)]
Use proper bracing on setting warnings in comman line parsing

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoAdd WARN_IDX helper and ERR_WARN_TERM named constant
Cyrill Gorcunov [Sun, 4 Dec 2011 21:01:06 +0000 (01:01 +0400)]
Add WARN_IDX helper and ERR_WARN_TERM named constant

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoSimplify is_suppressed_warning helper
Cyrill Gorcunov [Sun, 4 Dec 2011 15:24:25 +0000 (19:24 +0400)]
Simplify is_suppressed_warning helper

The former is really hard to read.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoBR3392199: Revert "insns: Add MOVD as aliases to MOVQ for compatibility with AMD"
Cyrill Gorcunov [Sun, 20 Nov 2011 13:16:28 +0000 (17:16 +0400)]
BR3392199: Revert "insns: Add MOVD as aliases to MOVQ for compatibility with AMD"

This reverts commit 70712c0df6c437c50452c4997aa2e3de5a0e0299.

Conflicts:

insns.dat

Our instructions matcher fuzzy logic fails to handle it at moment.

Reported-by: KO Myung-Hun <komh@chollian.net>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agopreproc: Proper bracing with list_for_each
Cyrill Gorcunov [Sun, 20 Nov 2011 06:42:13 +0000 (10:42 +0400)]
preproc: Proper bracing with list_for_each

It is a potential place for a bug if list_for_each
helper is used with multiple lines of code without
a proper bracing.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Fix VPCMPEQQ template
Cyrill Gorcunov [Mon, 14 Nov 2011 21:21:48 +0000 (01:21 +0400)]
insns.dat: Fix VPCMPEQQ template

http://bugzilla.nasm.us/show_bug.cgi?id=3392197

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoBR3392198: Fix compilation warning on prefixes
Cyrill Gorcunov [Sat, 12 Nov 2011 07:41:51 +0000 (11:41 +0400)]
BR3392198: Fix compilation warning on prefixes

insn->prefixes might contain not only values from
'enum prefixes' but from 'enum reg_enum' as well so
make it generic 'int' instead.

This calms down the compiler about enum's mess and
eliminates a wrong assumption that we always have
values by particular type in this field.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoBR3392195: insns: Drop MMX flag from MOVD
Cyrill Gorcunov [Sat, 12 Nov 2011 05:47:27 +0000 (09:47 +0400)]
BR3392195: insns: Drop MMX flag from MOVD

Typo in specification.

Reported-by: Jasper Neumann <sirrida@web.de>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns: Fix typos for vcmpeq aliases
Cyrill Gorcunov [Fri, 11 Nov 2011 09:04:20 +0000 (13:04 +0400)]
insns: Fix typos for vcmpeq aliases

The patch came from herumi@nifty.com

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agopreproc: Drop NULL assignments for static variables
Cyrill Gorcunov [Sun, 9 Oct 2011 15:04:14 +0000 (19:04 +0400)]
preproc: Drop NULL assignments for static variables

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agopreproc: A few style fixups
Cyrill Gorcunov [Sun, 9 Oct 2011 14:58:46 +0000 (18:58 +0400)]
preproc: A few style fixups

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoBR3376406: Update default optimization level in man
Cyrill Gorcunov [Wed, 5 Oct 2011 20:26:36 +0000 (00:26 +0400)]
BR3376406: Update default optimization level in man

Update default optimization level in man to reflect
the reality.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns: Add MOVD as aliases to MOVQ for compatibility with AMD
Cyrill Gorcunov [Sun, 2 Oct 2011 06:53:37 +0000 (10:53 +0400)]
insns: Add MOVD as aliases to MOVQ for compatibility with AMD

AMD has MOVD for both 32bit and 64bit GPRs so in a sake of
compatibility bring them into insns.dat.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agopreproc: %ifenv should require environment variable name to exist
Cyrill Gorcunov [Sun, 2 Oct 2011 05:18:34 +0000 (09:18 +0400)]
preproc: %ifenv should require environment variable name to exist

Otherwise naked %ifenv/%endif passes without a notice.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoBR3414012: Make %if[n]def to handle tail spaces
Cyrill Gorcunov [Sat, 1 Oct 2011 21:06:29 +0000 (01:06 +0400)]
BR3414012: Make %if[n]def to handle tail spaces

In case if there a trailing spaces after expansion
%if[n]def might produce a false alarms on macro id
being expected.

Note it also makes the constructions like bare

%ifdef
%endif

invalid, while before they were passed well without
a notice.

Reported-by: KO Myung-Hun
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoassemble: Drop redundant variable
Cyrill Gorcunov [Sun, 25 Sep 2011 14:01:45 +0000 (18:01 +0400)]
assemble: Drop redundant variable

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoBR3411280: Fix incorrect compiler option for OS/2 target in Open Watcom makefile
Jiri Malak [Tue, 20 Sep 2011 17:37:06 +0000 (21:37 +0400)]
BR3411280: Fix incorrect compiler option for OS/2 target in Open Watcom makefile

For OS2 target the -bt option should be set accordingly.

Signed-off-by: Jiri Malak <malak.jiri@gmail.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns.dat: Fixup VGATHERx instructions
Cyrill Gorcunov [Tue, 30 Aug 2011 21:34:43 +0000 (01:34 +0400)]
insns.dat: Fixup VGATHERx instructions

As being spotted by nasm64developer the memory
operands size is incorrect. Fix it.

Reported-by: nasm64developer
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoAdd AVX2 test file
Cyrill Gorcunov [Tue, 30 Aug 2011 21:22:43 +0000 (01:22 +0400)]
Add AVX2 test file

nasm64developer kindly provided a testfile converted
to nasm format.

http://sourceware.org/ml/binutils/2011-06/msg00150.html

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoA couple of simplifications to assemble.c
Cyrill Gorcunov [Sun, 28 Aug 2011 20:07:17 +0000 (00:07 +0400)]
A couple of simplifications to assemble.c

 - GEN_SIB and GEN_MODRM helpers added
 - a number of tabs vs space fixs
 - more use of is_class() helper

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoparser: No need to split line if it a bit longer than 80 chars
Cyrill Gorcunov [Sun, 28 Aug 2011 15:53:11 +0000 (19:53 +0400)]
parser: No need to split line if it a bit longer than 80 chars

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoAdd IS_SREG and IS_FSGS helpers
Cyrill Gorcunov [Sun, 28 Aug 2011 14:49:00 +0000 (18:49 +0400)]
Add IS_SREG and IS_FSGS helpers

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoA few style fixups in parser.c
Cyrill Gorcunov [Sun, 28 Aug 2011 14:02:31 +0000 (18:02 +0400)]
A few style fixups in parser.c

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoelf64: Make linelist to look the same as elf32
Cyrill Gorcunov [Sun, 28 Aug 2011 13:07:26 +0000 (17:07 +0400)]
elf64: Make linelist to look the same as elf32

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoelf32: Drop holes in linelist structure
Cyrill Gorcunov [Sun, 28 Aug 2011 13:05:17 +0000 (17:05 +0400)]
elf32: Drop holes in linelist structure

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agooutobj: Reorder Segment members to eliminate holes
Cyrill Gorcunov [Sun, 28 Aug 2011 13:03:21 +0000 (17:03 +0400)]
outobj: Reorder Segment members to eliminate holes

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agooutieee: Reorder ieeeSection members to eliminate holes
Cyrill Gorcunov [Sun, 28 Aug 2011 13:00:04 +0000 (17:00 +0400)]
outieee: Reorder ieeeSection members to eliminate holes

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoDrop empty line and bracket
Cyrill Gorcunov [Sun, 28 Aug 2011 12:33:39 +0000 (16:33 +0400)]
Drop empty line and bracket

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoStyle tuneup of nasm.h
Cyrill Gorcunov [Sun, 28 Aug 2011 11:00:26 +0000 (15:00 +0400)]
Style tuneup of nasm.h

 - a number of tabs to space conversion
 - redundant spaces removed
 - structure elements alignment

No functional changes.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agodisasm.c: ESP/RSP cannot be indicies, but XMM4/YMM4 can be
H. Peter Anvin [Mon, 22 Aug 2011 21:09:04 +0000 (14:09 -0700)]
disasm.c: ESP/RSP cannot be indicies, but XMM4/YMM4 can be

If we have XMM4/YMM4 as a VSIB, it does not mean no index; that is
only for scalar encoding.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
12 years agoassemble.c: remove stray debugging code
H. Peter Anvin [Mon, 22 Aug 2011 20:52:02 +0000 (13:52 -0700)]
assemble.c: remove stray debugging code

My bad for checking this in at all.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
12 years agoinsns, avx2: A couple of upper-case to lower-case conversion
Cyrill Gorcunov [Mon, 22 Aug 2011 20:35:32 +0000 (00:35 +0400)]
insns, avx2: A couple of upper-case to lower-case conversion

Just to be solid in style

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns, avx2: A typo in VPERMPD
Cyrill Gorcunov [Mon, 22 Aug 2011 20:30:28 +0000 (00:30 +0400)]
insns, avx2: A typo in VPERMPD

The second VPERMD should be VPERMPD actually.

Thanks to nasm64developer for gas test file provided
which allowed to reveal this issue.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoassemble.c: Comment out debug printing
Cyrill Gorcunov [Mon, 22 Aug 2011 20:12:50 +0000 (00:12 +0400)]
assemble.c: Comment out debug printing

Probably we need some kind of pr_debug or
something like that instead.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoBR3385573: Some AVX2 instructions fixups
Cyrill Gorcunov [Sun, 21 Aug 2011 21:38:40 +0000 (01:38 +0400)]
BR3385573: Some AVX2 instructions fixups

A few instruction templates for AVX2 set were wrong.

Reported-by: Agner Fog
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agoinsns: Change VPERMPQ to VPERMQ
Cyrill Gorcunov [Wed, 3 Aug 2011 18:16:29 +0000 (22:16 +0400)]
insns: Change VPERMPQ to VPERMQ

Was a typo

Reported-by: Agner Fog
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agopreproc: Drop emitting() rudimanet
Cyrill Gorcunov [Sun, 31 Jul 2011 10:51:49 +0000 (14:51 +0400)]
preproc: Drop emitting() rudimanet

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
12 years agodoc: update documentation for pending 2.10 release
Keith Kanios [Sat, 30 Jul 2011 18:14:18 +0000 (13:14 -0500)]
doc: update documentation for pending 2.10 release

12 years agoNASM 2.10rc8
H. Peter Anvin [Wed, 27 Jul 2011 21:32:08 +0000 (14:32 -0700)]
NASM 2.10rc8

13 years agoImplement insns.dat in human readable form
Anonymous [Wed, 20 Jul 2011 17:41:49 +0000 (21:41 +0400)]
Implement insns.dat in human readable form

 I converted almost all instructions in insns.dat (version
 7a6f97869840fc0b1b8677bd77c74754c5f024aa) to the more
 readable format that insns.pl has supported for years.

 I also made some changes to insns.pl. You can verify that the
 new insns.dat and insns.pl produce byte-identical output to
 the old insns.dat and insns.pl, so I think that this change
 is safe to check in, even though it is a large change to
 insns.dat.

The changes to insns.pl are:

 * fixed a bug: ib,u was not recognized
 * added support for a second immediate argument called "j" for
   instructions like ENTER imm,imm
 * added a "+r" syntax for \10..\13

[gorcunov: insns files remains the same, great job anonymous!]

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
13 years agoNASM 2.10.rc7
Cyrill Gorcunov [Tue, 19 Jul 2011 21:30:31 +0000 (01:30 +0400)]
NASM 2.10.rc7

Intel's AVX2 instructions should be covered now.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
13 years agoinsns: A final pile of AVX2 instructions
Cyrill Gorcunov [Tue, 19 Jul 2011 21:16:11 +0000 (01:16 +0400)]
insns: A final pile of AVX2 instructions

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
13 years agoinsns: A few additional AVX2 templates
Cyrill Gorcunov [Tue, 19 Jul 2011 13:01:35 +0000 (17:01 +0400)]
insns: A few additional AVX2 templates

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
13 years agoinsns: One more small snippet of AVX2
Cyrill Gorcunov [Sun, 17 Jul 2011 21:15:25 +0000 (01:15 +0400)]
insns: One more small snippet of AVX2

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
13 years agoinsns: One more slab of AVX2 instructions
Cyrill Gorcunov [Sun, 17 Jul 2011 20:57:35 +0000 (00:57 +0400)]
insns: One more slab of AVX2 instructions

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
13 years agoinsns: Add a slab of AVX2 instructions
Cyrill Gorcunov [Sun, 17 Jul 2011 19:20:00 +0000 (23:20 +0400)]
insns: Add a slab of AVX2 instructions

Not all are covered yet, but still a step
forward I think.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
13 years agoinsns.dat: Move exsiting AVX2 insns to a separate section
Cyrill Gorcunov [Sun, 17 Jul 2011 16:24:16 +0000 (20:24 +0400)]
insns.dat: Move exsiting AVX2 insns to a separate section

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
13 years agopreproc: Align members in structures
Cyrill Gorcunov [Sun, 17 Jul 2011 16:20:14 +0000 (20:20 +0400)]
preproc: Align members in structures

For easier reading

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
13 years agopreproc: Reorder ExpInv to drop padding
Cyrill Gorcunov [Sun, 17 Jul 2011 16:11:08 +0000 (20:11 +0400)]
preproc: Reorder ExpInv to drop padding

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
13 years agopreproc: Reorder SMacro members to eliminate padding
Cyrill Gorcunov [Sun, 17 Jul 2011 16:06:20 +0000 (20:06 +0400)]
preproc: Reorder SMacro members to eliminate padding

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>