platform/upstream/nasm.git
16 years agoAvoid obscure segfault in DWARF generation
Charles Crayne [Thu, 5 Jun 2008 23:12:06 +0000 (16:12 -0700)]
Avoid obscure segfault in DWARF generation

If DWARF debugging info is requested, and no section
is marked executable, output empty debug sections,
instead of allowing assembler to segfault.

16 years agoMerge branch 'master' of git+ssh://ccrayne@repo.or.cz/srv/git/nasm
Charles Crayne [Wed, 4 Jun 2008 23:05:14 +0000 (16:05 -0700)]
Merge branch 'master' of git+ssh://ccrayne@repo.or.cz/srv/git/nasm

16 years agoRemove EQU for critical expression list
Charles Crayne [Wed, 4 Jun 2008 22:53:21 +0000 (15:53 -0700)]
Remove EQU for critical expression list

Allow redefine_label to update segment as well as offset,
thereby fixing bug which required EQU to be on the
critical expression list.

16 years agoNASM 2.03rc5
H. Peter Anvin [Wed, 4 Jun 2008 22:13:02 +0000 (15:13 -0700)]
NASM 2.03rc5

16 years agoFix double free in %depend
H. Peter Anvin [Wed, 4 Jun 2008 22:11:23 +0000 (15:11 -0700)]
Fix double free in %depend

16 years agoFix memory management issues with expanded %include
H. Peter Anvin [Wed, 4 Jun 2008 18:26:59 +0000 (11:26 -0700)]
Fix memory management issues with expanded %include

Ownership of the filename string was a bit fuzzy, with the result that
we were freeing it even though it was retained for use by __FILE__.
Clean up a number of other memory management issues with the new
quoting code, and change the stdscan implementation to one pass over
the string.

16 years agoUpdate .gitignore, remove bogus dependency
H. Peter Anvin [Wed, 4 Jun 2008 15:58:53 +0000 (08:58 -0700)]
Update .gitignore, remove bogus dependency

16 years agoMakefile/dependency updates
H. Peter Anvin [Wed, 4 Jun 2008 15:49:10 +0000 (08:49 -0700)]
Makefile/dependency updates

Add quote.c to all the auxiliary Makefiles, and run "make alldeps".

16 years agodoc: Remove "what's new" since it is out of date
H. Peter Anvin [Tue, 3 Jun 2008 01:32:01 +0000 (18:32 -0700)]
doc: Remove "what's new" since it is out of date

16 years agoquote: Change the definition of escp
H. Peter Anvin [Mon, 2 Jun 2008 20:59:09 +0000 (13:59 -0700)]
quote: Change the definition of escp

Semi-arbitrary change of the definition of escp to the beginning of
the argument sequence instead of the initiator character.  This may
avoid an add in some code paths, and looks slightly cleaner to me.

16 years agoquote: be consistent in not using C escapes for bytes
H. Peter Anvin [Mon, 2 Jun 2008 17:38:54 +0000 (10:38 -0700)]
quote: be consistent in not using C escapes for bytes

We used numbers in nasm_unquote and C escapes in nasm_quote - use
numbers in both places, just in case some C compiler does something
weird with '\r' and (especially) '\n'.

16 years agonasm_unquote: make code a little more uniform
H. Peter Anvin [Mon, 2 Jun 2008 17:02:36 +0000 (10:02 -0700)]
nasm_unquote: make code a little more uniform

Make the code a bit more consistent:

- ndig is now always a countdown, and we always to the (p > escp+1)
  test to see if we got anything at all (this is to deal with stuff
  like \x without a digit.)
- Add missing break; after 'v' (bug!).
- Preinitialize nval to zero.

16 years agoquote: massively simplify nasm_skip_string()
H. Peter Anvin [Mon, 2 Jun 2008 16:57:46 +0000 (09:57 -0700)]
quote: massively simplify nasm_skip_string()

Greatly simplify nasm_skip_string() by observing that for the purpose
of string skipping, all states other than st_backslash are equivalent
to st_start.

16 years agoDocument UTF-8 conversion better, use "byte" instead of "ASCII"
H. Peter Anvin [Mon, 2 Jun 2008 06:00:23 +0000 (23:00 -0700)]
Document UTF-8 conversion better, use "byte" instead of "ASCII"

ASCII specifically refers to characters <= 127, so to use "ASCII" for
literal bytes is really confusing in a multibyte environment.  Give an
example of using Unicode escapes.

16 years agoDocument that underscores in numbers is permitted.
H. Peter Anvin [Mon, 2 Jun 2008 05:53:15 +0000 (22:53 -0700)]
Document that underscores in numbers is permitted.

16 years agoNASM 2.03rc4
H. Peter Anvin [Mon, 2 Jun 2008 05:37:32 +0000 (22:37 -0700)]
NASM 2.03rc4

16 years agoUpdate CHANGES
H. Peter Anvin [Mon, 2 Jun 2008 05:36:56 +0000 (22:36 -0700)]
Update CHANGES

16 years agonasmdoc: document %substr, `...`
H. Peter Anvin [Mon, 2 Jun 2008 05:35:47 +0000 (22:35 -0700)]
nasmdoc: document %substr, `...`

16 years agoFix bug where the WinHelp backend corrupts the internal data
H. Peter Anvin [Mon, 2 Jun 2008 05:34:55 +0000 (22:34 -0700)]
Fix bug where the WinHelp backend corrupts the internal data

WinHelp/RTF needs to convert \ to \\, but did so on the global data,
so the DIP output was corrupted.

16 years agoqstring: fix unquoting in %pathsearch directive
H. Peter Anvin [Mon, 2 Jun 2008 04:43:03 +0000 (21:43 -0700)]
qstring: fix unquoting in %pathsearch directive

%pathsearch unquoting should be done on the "t" token, not on the
"tline" token...

16 years agoqstring: backquoted strings seem to work now...
H. Peter Anvin [Mon, 2 Jun 2008 04:34:49 +0000 (21:34 -0700)]
qstring: backquoted strings seem to work now...

Hopefully backquoted strings should work correctly now.

16 years agoqstring: first cut at full quoted string support in the preprocessor
H. Peter Anvin [Mon, 2 Jun 2008 00:23:51 +0000 (17:23 -0700)]
qstring: first cut at full quoted string support in the preprocessor

First attempt at properly handle quoted strings in the preprocessor.
This also adds range support in %substr.

No support in the assembler yet.

16 years agoqstring: add nasm_unquote() supporting `...`
H. Peter Anvin [Sun, 1 Jun 2008 23:07:48 +0000 (16:07 -0700)]
qstring: add nasm_unquote() supporting `...`

Add a nasm_unquote() function supporting the intended `...` syntax.

16 years agodoc: Single section for all the date/time macros
H. Peter Anvin [Fri, 30 May 2008 21:32:16 +0000 (14:32 -0700)]
doc: Single section for all the date/time macros

Move all the date/time macros to a common section so we can give a
common example.  We don't have support for a fourth level of headers,
so just use a bulleted list.

16 years agodoc: fix __UTC_DATE__ and __UTC_TIME__ description
H. Peter Anvin [Fri, 30 May 2008 21:11:40 +0000 (14:11 -0700)]
doc: fix __UTC_DATE__ and __UTC_TIME__ description

16 years agoincbin: use the macro name itself as context name
H. Peter Anvin [Fri, 30 May 2008 18:31:35 +0000 (11:31 -0700)]
incbin: use the macro name itself as context name

Use the macro name itself as the context name, this is consistent with
other standard macros.

16 years agoUpdate CHANGES
H. Peter Anvin [Fri, 30 May 2008 18:08:14 +0000 (11:08 -0700)]
Update CHANGES

16 years agoAdd missing %rotate directive to the FLOAT macro.
H. Peter Anvin [Fri, 30 May 2008 18:06:28 +0000 (11:06 -0700)]
Add missing %rotate directive to the FLOAT macro.

16 years agoincbin definition: use %?
H. Peter Anvin [Fri, 30 May 2008 18:04:07 +0000 (11:04 -0700)]
incbin definition: use %?

16 years agoDocument %pathsearch and %depend
H. Peter Anvin [Fri, 30 May 2008 18:03:56 +0000 (11:03 -0700)]
Document %pathsearch and %depend

16 years agoIntroduce %depend and %pathsearch, and make incbin a macro
H. Peter Anvin [Fri, 30 May 2008 17:42:30 +0000 (10:42 -0700)]
Introduce %depend and %pathsearch, and make incbin a macro

Introduce new preprocessor directives %depend and %pathsearch, and
make incbin a standard macro using these filenames.  This lets us
remove the code that makes incbin search the path.

16 years agostdscan.c: clarify comment
H. Peter Anvin [Fri, 30 May 2008 17:26:28 +0000 (10:26 -0700)]
stdscan.c: clarify comment

There is a reason rn_warn isn't checked in this particular case...

16 years agopreproc.c: %include: use expand_smacros() not expand_smacros_in_string()
H. Peter Anvin [Fri, 30 May 2008 17:09:45 +0000 (10:09 -0700)]
preproc.c: %include: use expand_smacros() not expand_smacros_in_string()

Call expand_smacros() early instead of expand_smacros_in_string()
late.  expand_smacros_in_string() seems like a prodigiously bad idea
and a sheer brainfart in my opinion.

16 years agodoc: consistent capitalization (and indexing!) of INCBIN
H. Peter Anvin [Fri, 30 May 2008 17:09:24 +0000 (10:09 -0700)]
doc: consistent capitalization (and indexing!) of INCBIN

16 years agoAdd the -MP option to emit phony targets
H. Peter Anvin [Fri, 30 May 2008 04:38:00 +0000 (21:38 -0700)]
Add the -MP option to emit phony targets

Add the -MP option to emit phony targets.  Since this means each
header file has to be visited more than once, change the
implementation to use an internal list of all the dependencies, and
centralize the emission of the dependency files.

16 years agoAdd new options to CHANGES
H. Peter Anvin [Fri, 30 May 2008 02:29:22 +0000 (19:29 -0700)]
Add new options to CHANGES

16 years agoNASM 2.03rc3
H. Peter Anvin [Fri, 30 May 2008 02:27:35 +0000 (19:27 -0700)]
NASM 2.03rc3

16 years agoDocument the new dependency options.
H. Peter Anvin [Fri, 30 May 2008 02:27:05 +0000 (19:27 -0700)]
Document the new dependency options.

16 years agoImplement -MD, -MF, -MT, -MQ
H. Peter Anvin [Fri, 30 May 2008 02:09:11 +0000 (19:09 -0700)]
Implement -MD, -MF, -MT, -MQ

Implement the dependency options:

-MF: set the file to which dependencies are written.
-MD: generate dependencies in parallel with compilation.
-MT: set the name of the dependency target.
-MQ: same as -MT, but *attempt* to quote it for Makefile safety.

16 years agopreproc.c: get_ctx() can return NULL...
H. Peter Anvin [Fri, 30 May 2008 02:08:08 +0000 (19:08 -0700)]
preproc.c: get_ctx() can return NULL...

Handle the case where we would attempt to look up a possible local
context just to find that one doesn't exist.

16 years agoMissing % in %ifmacro
H. Peter Anvin [Thu, 29 May 2008 05:11:13 +0000 (22:11 -0700)]
Missing % in %ifmacro

16 years agohash user allocates struct hash_table
H. Peter Anvin [Wed, 28 May 2008 19:28:58 +0000 (12:28 -0700)]
hash user allocates struct hash_table

struct hash_table, a fixed-sized structure, is now allocated by the
caller.  This lets us integrate it into the Context structure, thus
avoiding an additional dynamically allocated object for no good
reason.

Add some minor code collapsing: make it more obvious that all that
differs is a pointer value, rather than relying on the compiler to do
tail merging.

16 years agoMerge commit 'autotest/master'
H. Peter Anvin [Wed, 28 May 2008 01:15:39 +0000 (18:15 -0700)]
Merge commit 'autotest/master'

16 years agotokhash.pl: fix comment
H. Peter Anvin [Tue, 27 May 2008 21:43:48 +0000 (14:43 -0700)]
tokhash.pl: fix comment

Correct filename in comment

16 years agoregs.pl: add include guards to generated header files
H. Peter Anvin [Tue, 27 May 2008 21:43:14 +0000 (14:43 -0700)]
regs.pl: add include guards to generated header files

Add include guards to generated header files, and make sure the
appropriate prerequisite headers are included if necessary.

16 years agomake alldeps
H. Peter Anvin [Tue, 27 May 2008 21:34:53 +0000 (14:34 -0700)]
make alldeps

16 years agoregs.pl: regdis.h needs "extern"; minor cleanups
H. Peter Anvin [Tue, 27 May 2008 21:32:55 +0000 (14:32 -0700)]
regs.pl: regdis.h needs "extern"; minor cleanups

The declarations in regdis.h need to be "extern", since they are
external data.

regdis.c should include regdis.h.

Minor stylistic cleanups in regs.c.

16 years agoNASM 2.03rc2
H. Peter Anvin [Tue, 27 May 2008 21:23:20 +0000 (14:23 -0700)]
NASM 2.03rc2

16 years agoinsns.dat: whitespace cleanup
H. Peter Anvin [Tue, 27 May 2008 21:22:19 +0000 (14:22 -0700)]
insns.dat: whitespace cleanup

16 years agoFix double 66 prefixes on INVEPT/INVVPID (BR 1956955)
H. Peter Anvin [Tue, 27 May 2008 21:20:21 +0000 (14:20 -0700)]
Fix double 66 prefixes on INVEPT/INVVPID (BR 1956955)

Fix double 66 prefixes on INVEPT/INVVPID in 16-bit mode, per BR
1956955.

16 years agodoc: document Win32/64 SEH extensions
Andy Polyakov [Tue, 27 May 2008 21:03:09 +0000 (14:03 -0700)]
doc: document Win32/64 SEH extensions

Document COFF extensions for Windows SEH

16 years agooutcoff.c: remove dead code, add check for imagerel
Andy Polyakov [Tue, 27 May 2008 21:01:25 +0000 (14:01 -0700)]
outcoff.c: remove dead code, add check for imagerel

Remove commented-out (dead) code, add check that the imagerel
references are valid.

16 years agoavx.bin: clean up screwy whitespace
H. Peter Anvin [Tue, 27 May 2008 05:52:57 +0000 (22:52 -0700)]
avx.bin: clean up screwy whitespace

16 years agoVCVTPD2PS, VCVTPD2DQ, VCVTTPD2DQ mem need explicit op size (BR 1974170)
H. Peter Anvin [Tue, 27 May 2008 05:48:51 +0000 (22:48 -0700)]
VCVTPD2PS, VCVTPD2DQ, VCVTTPD2DQ mem need explicit op size (BR 1974170)

BR 1974170: VCVTPD2PS, VCVTPD2DQ, VCVTTPD2DQ with a memory operand are
ambiguous without a specific operand size, so force one to be added.

Split the instruction pattern due to our current clunky handling of
MMX/XMM/YMM registers together with sizes.  Fix in the future, please!

16 years agoFix parameters to VCVTPD2DQ (BR 1974159)
H. Peter Anvin [Tue, 27 May 2008 05:42:02 +0000 (22:42 -0700)]
Fix parameters to VCVTPD2DQ (BR 1974159)

16 years agoregs.pl: add comments to regflags.c and regvals.c
H. Peter Anvin [Tue, 27 May 2008 02:32:52 +0000 (19:32 -0700)]
regs.pl: add comments to regflags.c and regvals.c

Add comments to regflags.c and regvals.c, to make it easier to spot
errors.

16 years agoFix register numbers for ymm1-15!
H. Peter Anvin [Tue, 27 May 2008 02:23:01 +0000 (19:23 -0700)]
Fix register numbers for ymm1-15!

ymm1-15 were incorrectly listed as starting at register number 0, with
obviously disastrous consequences...

16 years agondisasm: the high bit of is4 bytes is ignored in 32-bit mode
H. Peter Anvin [Mon, 26 May 2008 19:03:55 +0000 (12:03 -0700)]
ndisasm: the high bit of is4 bytes is ignored in 32-bit mode

Mask the high bit of is4 bytes in 32-bit mode.  Provide a generic
"regmask" variable that we can use for equivalent purposes as needed.

16 years agomacros.pl: more readable comments
H. Peter Anvin [Mon, 26 May 2008 18:39:00 +0000 (11:39 -0700)]
macros.pl: more readable comments

16 years agoAdd some comments to the output of macros.pl
H. Peter Anvin [Mon, 26 May 2008 18:21:25 +0000 (11:21 -0700)]
Add some comments to the output of macros.pl

Add some comments to the output of macros.pl, which might make it a
little bit easier to debug issues if there should be any.

16 years agopreproc.c: prevent the compiler from reducing enum pp_token_type
H. Peter Anvin [Mon, 26 May 2008 18:14:38 +0000 (11:14 -0700)]
preproc.c: prevent the compiler from reducing enum pp_token_type

The compiler is free to store enum pp_token_type into any size integer
small enough to contain all the values up to 2^n-1 for the smallest n
which contains all the values.  Force it to size it to integer size,
since we use it to hold macro positional parameters.

16 years agoNASM 2.03rc1
H. Peter Anvin [Mon, 26 May 2008 05:29:00 +0000 (22:29 -0700)]
NASM 2.03rc1

16 years agoCHANGES entry for %? and %??
H. Peter Anvin [Mon, 26 May 2008 05:11:36 +0000 (22:11 -0700)]
CHANGES entry for %? and %??

16 years agoDocument %? and %??
H. Peter Anvin [Mon, 26 May 2008 05:09:17 +0000 (22:09 -0700)]
Document %? and %??

16 years agoImplement %? and %?? for mmacros
H. Peter Anvin [Mon, 26 May 2008 04:57:00 +0000 (21:57 -0700)]
Implement %? and %?? for mmacros

Same as before, but for mmacros this time

16 years agoImplement %? and %?? for smacros
H. Peter Anvin [Mon, 26 May 2008 04:46:17 +0000 (21:46 -0700)]
Implement %? and %?? for smacros

%? - substitute the macro name as invoked
%?? - substitute the macro name as defined

In particular:

%idefine keyword $%?

... can be used to make a new keyword "disappear".

16 years agophash: canonicalize order, fix handling of ignored duplicates
H. Peter Anvin [Mon, 26 May 2008 01:44:44 +0000 (18:44 -0700)]
phash: canonicalize order, fix handling of ignored duplicates

Canonicalize the order of the prehash entries, so we don't have to
worry about looking up both pairs of edges.

When we find a collision that we decide to ignore, there is no point
in adding the same edge into the array again; instead, just skip the
current edge.

16 years agophash: allow collisions if the hash target is the same
H. Peter Anvin [Mon, 26 May 2008 01:17:49 +0000 (18:17 -0700)]
phash: allow collisions if the hash target is the same

If the hash target is the same value, we can permit collisions.  This
isn't relevant for the current applications of the hash generator, but
is useful for cases where one have a number of sources for the same
target.  It's easy to check, either way.

16 years agophash: massively speed up the perfect hash generator
H. Peter Anvin [Mon, 26 May 2008 01:10:57 +0000 (18:10 -0700)]
phash: massively speed up the perfect hash generator

Make the perfect hash generator about 200x faster by using a very
simple custom graph adjacency representation instead of using
Graph::Undirected.

16 years agoFix mnemnonics for SSE5 PCOMU instructions
H. Peter Anvin [Sun, 25 May 2008 16:25:47 +0000 (09:25 -0700)]
Fix mnemnonics for SSE5 PCOMU instructions

16 years agoFix mnemonics for VTESTP[SD] (BR 1971570)
H. Peter Anvin [Sun, 25 May 2008 05:15:56 +0000 (22:15 -0700)]
Fix mnemonics for VTESTP[SD] (BR 1971570)

Incorrectly entered as VPTEST* due to illogical placement in the manual.

16 years agoFix the VPSHUF*W instructions (BR 1971567)
H. Peter Anvin [Sun, 25 May 2008 05:13:33 +0000 (22:13 -0700)]
Fix the VPSHUF*W instructions (BR 1971567)

The VPSHUF*W instructions had both wrong mnemonics and opcodes.

16 years agoFix typo in VPCMPESTRM instruction (BR 1971565)
H. Peter Anvin [Sun, 25 May 2008 05:11:44 +0000 (22:11 -0700)]
Fix typo in VPCMPESTRM instruction (BR 1971565)

The VPCMPESTRM instruction was typoed.

16 years agoAdd VCVTSI2SS (BR 1971564)
H. Peter Anvin [Sun, 25 May 2008 05:09:51 +0000 (22:09 -0700)]
Add VCVTSI2SS (BR 1971564)

The VCVTSI2SS instruction was missing.

16 years agoFix immediate for PCLMULHQ* instructions (BR 1971555)
H. Peter Anvin [Sun, 25 May 2008 05:07:03 +0000 (22:07 -0700)]
Fix immediate for PCLMULHQ* instructions (BR 1971555)

The immediate for the PCLMULHQ* instructions was wrong.

16 years agoRemove imm from specific versions of VCMPxx
H. Peter Anvin [Sun, 25 May 2008 05:04:23 +0000 (22:04 -0700)]
Remove imm from specific versions of VCMPxx

For the versions of VCMPxx which already embed their condition code,
we do not want an extra immediate argument.

Todo: fix bytecode compiler to complain more about these.

16 years agoAdd VLDQQU as an alias for 256-bit VLDDQU (BR 1971539)
H. Peter Anvin [Sun, 25 May 2008 04:58:59 +0000 (21:58 -0700)]
Add VLDQQU as an alias for 256-bit VLDDQU (BR 1971539)

Accept VLDQQU as an alias for VLDDQU when used with 256-bit values.

16 years agoVFMSUBADDP[SD], not VFMADDSUBS[SD] (BR 1971573)
H. Peter Anvin [Sun, 25 May 2008 04:54:09 +0000 (21:54 -0700)]
VFMSUBADDP[SD], not VFMADDSUBS[SD] (BR 1971573)

There are VFMSUBADDP instructions, but there are no VFMADDSUBS
instructions.

16 years agoAdd note about SEH support
H. Peter Anvin [Sat, 24 May 2008 04:51:21 +0000 (21:51 -0700)]
Add note about SEH support

Still need documentation from someone who actually knows anything
about how this works.

16 years agoWin64: IMAGEREL references (SEH support for Win64)
Andy Polyakov [Sat, 24 May 2008 02:45:39 +0000 (19:45 -0700)]
Win64: IMAGEREL references (SEH support for Win64)

Guess what, SEH again, but in Win64 context, which is completely
different matter from Win32. At lowest level this one boils down to
putting so called imagerel references, or in practical terms
relocations of type ADDR32NB, 0x0003, into .pdata and .xdata
segments. Two possibilities. 1. implement say 'wrt ..imagerel' or 'wrt
..imagebase'. 2. silently enforce ADDR32NB relocations in .pdata and
.xdata segments.

16 years agoMake SAFESEH syntax error ERR_NONFATAL
H. Peter Anvin [Sat, 24 May 2008 01:38:51 +0000 (18:38 -0700)]
Make SAFESEH syntax error ERR_NONFATAL

Incorrect use of SAFESEH is more suited for ERR_NONFATAL than ERR_FATAL

16 years agoSupport for Win32 safeseh (BR 195417)
Andy Polyakov [Sat, 24 May 2008 01:37:52 +0000 (18:37 -0700)]
Support for Win32 safeseh (BR 195417)

This is basically not a bug report, but a feature request.

It's desired to be able to link .obj modules compiled with 'nasm -f
win32' with Microsoft 'link /safeseh'. As well as to register symbols
(commonly subroutine's entry points or even external symbols) as "safe
handlers." In order to achieve this, several points are required.

First of all, object module has to have absolute symbol named @feat.00
with value of 1. This can actually be achived by adding 'absolute 1'
and '@feat.00:' to source code, but it's desirable that it's
autogenerated for win32 modules.

Handler registration is essentially symbol's *index* in current
module's symbol table in .sxdata, segment with 0x200 segment flags, an
"info" segment. It's also essential that symbol has type 0x20 (see
below). All this is depicted in following framgents of 'objdump -xD'
output:

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .sxdata       00000004  00000000  00000000  0000003c  2**2
                  CONTENTS, READONLY, DEBUGGING

SYMBOL TABLE:
...
[  5](sec -1)(fl 0x00)(ty   0)(scl   3) (nx 0) 0x00000001 @feat.00
[  6](sec  0)(fl 0x00)(ty  20)(scl   2) (nx 0) 0x00000000 _handler
...
<.sxdata>
0: 06 00 00 00

Note [6] and (ty 20) in _handle line in SYMBOL TABLE. "06 00 00 00" in
.sxdata is little-endian 6, _handler's index. This is what makes up
"registration." It's impossible to achieve this with current nasm
facilities and it's probably appropriate to introduce a directive for
it, 'safeseh _handler' is probably most natural choice.

16 years agodoc: another reference to DY
H. Peter Anvin [Sat, 24 May 2008 01:24:03 +0000 (18:24 -0700)]
doc: another reference to DY

16 years agoCHANGES since 2.02, so far...
H. Peter Anvin [Sat, 24 May 2008 01:03:26 +0000 (18:03 -0700)]
CHANGES since 2.02, so far...

16 years agoDocument DY, RESY and YWORD
H. Peter Anvin [Sat, 24 May 2008 00:58:01 +0000 (17:58 -0700)]
Document DY, RESY and YWORD

16 years agoAVX FMA: Instruction table for the AVX FMA instructions
H. Peter Anvin [Sat, 24 May 2008 00:46:08 +0000 (17:46 -0700)]
AVX FMA: Instruction table for the AVX FMA instructions

This adds the AVX FMA instructions to the instruction table, which
should complete the AVX work.

16 years agoAVX: Remaining AVX instructions (still need FMA)
H. Peter Anvin [Sat, 24 May 2008 00:27:15 +0000 (17:27 -0700)]
AVX: Remaining AVX instructions (still need FMA)

Implement the remaining set of AVX instructions

16 years agoinsns.pl: better error messages, handle no-operand instructions better
H. Peter Anvin [Sat, 24 May 2008 00:25:54 +0000 (17:25 -0700)]
insns.pl: better error messages, handle no-operand instructions better

Better error messages, and allow "void" instructions to omit the
operand colon.

16 years agoAVX instruction table through "P"
H. Peter Anvin [Sat, 24 May 2008 00:03:30 +0000 (17:03 -0700)]
AVX instruction table through "P"

AVX instruction table through the letter P in the manual

16 years agofmtinsns.pl: handle compiler fields; do some case mangling
H. Peter Anvin [Fri, 23 May 2008 23:59:59 +0000 (16:59 -0700)]
fmtinsns.pl: handle compiler fields; do some case mangling

Handle compiler-generated fields, and at least try to do some case
mangling.

16 years agoUse hash tables even for context-sensitive macros
H. Peter Anvin [Thu, 22 May 2008 20:17:51 +0000 (13:17 -0700)]
Use hash tables even for context-sensitive macros

Normally, contexts aren't used with a large number of macros, but in
case someone does, do use hash tables for those as well.  This
simplifies the code somewhat, since *all* handling of macros is now
done via hash tables.

Future note: consider if it wouldn't be better to allow struct
hash_table to be allocated by the caller, instead of being allocated
by the hash table routine.

16 years agoAdd tokens vex.ww and vex.wx; vex.wx is the default
H. Peter Anvin [Thu, 22 May 2008 18:24:35 +0000 (11:24 -0700)]
Add tokens vex.ww and vex.wx; vex.wx is the default

Add vex.ww (for VEX.W follows REX.W) and vex.wx (for VEX.W is a don't
care); vex.wx is the default since that seems to match existing usage
better.

16 years agoAVX: instruction table up to PE
H. Peter Anvin [Thu, 22 May 2008 06:21:57 +0000 (23:21 -0700)]
AVX: instruction table up to PE

Complete the instruction table up to and including PE (document
319433-002, start next on page 5-330).

16 years agoAVX: instruction table through M
H. Peter Anvin [Thu, 22 May 2008 01:10:09 +0000 (18:10 -0700)]
AVX: instruction table through M

Implement the AVX instruction table through the letter M.

16 years agoinsns.pl: error if we have a 'v' operand and no vex.nds/ndd
H. Peter Anvin [Thu, 22 May 2008 01:09:17 +0000 (18:09 -0700)]
insns.pl: error if we have a 'v' operand and no vex.nds/ndd

Although redundant, the presence of a 'v' operand should match the
existence of a nds or ndd flag on vex; this should help catch typos.

16 years agoinsnsn.c: cleaner to *not* separate out conditional instructions
H. Peter Anvin [Wed, 21 May 2008 22:09:31 +0000 (15:09 -0700)]
insnsn.c: cleaner to *not* separate out conditional instructions

The disassembler code gets cleaner if we do *not* separate out the
conditional instructions; instead, rely on the fact that the
conditionals are always at the end and use FIRST_COND_OPCODE as a
barrier.

16 years agoAdd legacy blendvpd to avx.asm, as a disassembler test.
H. Peter Anvin [Wed, 21 May 2008 22:03:26 +0000 (15:03 -0700)]
Add legacy blendvpd to avx.asm, as a disassembler test.

16 years agoImplement aliases for specific SSE5 compare operations
H. Peter Anvin [Wed, 21 May 2008 22:02:30 +0000 (15:02 -0700)]
Implement aliases for specific SSE5 compare operations

Implement aliases for specific SSE5 compare operations, per BR 1930630.

16 years agoinsns.dat: reimplement SSE5 compares using the bytecode compiler
H. Peter Anvin [Wed, 21 May 2008 21:45:46 +0000 (14:45 -0700)]
insns.dat: reimplement SSE5 compares using the bytecode compiler

Use the bytecode compiler for the SSE5 compare instructions.  While we
are at it, give it correct flags.

16 years agoinsns.pl: match AMD documentation for DREX syntax
H. Peter Anvin [Wed, 21 May 2008 21:44:42 +0000 (14:44 -0700)]
insns.pl: match AMD documentation for DREX syntax

Adjust the compiler to give a syntax for DREX instructions that
matches the AMD documentation.