H. Peter Anvin
2b524d5e62
Merge branch 'master' of git+ssh://repo.or.cz/srv/git/nasm
2008-05-21 08:42:55 -07:00
H. Peter Anvin
be5133cb13
UDx instructions are 186+, not 286+
...
The UDx instructions are valid as far back as the #UD trap, which is
the 186, not the 286.
2008-05-21 08:41:58 -07:00
Victor van den Elzen
1fc045591b
Add automation to avx test.
2008-05-21 13:33:26 +02:00
Victor van den Elzen
82fa68acec
Configure tests to be performed automatically
2008-05-21 12:42:46 +02:00
Victor van den Elzen
533385ace5
Add automated testing script
2008-05-21 12:42:45 +02:00
H. Peter Anvin
6b3b7bcd33
VEX prefixes apply to VEX instructions only...
2008-05-20 23:36:36 -07:00
H. Peter Anvin
c882715a8e
AVX instructions up to VMINSS
2008-05-20 23:28:46 -07:00
H. Peter Anvin
330cbd1c90
A few more AVX instructions (up to VLDMXCSR)
...
More AVX instructions, up to VLDMXCSR
2008-05-20 23:16:27 -07:00
H. Peter Anvin
52dc353868
Handle is4 bytes without meaningful information in the bottom bits
...
Support is4 bytes without meaningful information in the bottom bits.
This is equivalent to /is4=0 for the assembler, but makes the bottom
bits don't care for the disassembler.
2008-05-20 19:29:04 -07:00
H. Peter Anvin
21513e822f
inslist.pl: deal with the new encoding format
...
Make it possible for inslist.pl to understand the new encoding format;
fix a few minor buglets.
2008-05-20 18:33:40 -07:00
H. Peter Anvin
2d31ec106a
Officially specify - as the symbol for an implicit operand
...
Use - to denote that an operand is implicit (not encoded). This
*better* be a fixed operand!
2008-05-20 18:21:11 -07:00
H. Peter Anvin
9681ef4144
AVX: implement all the convert instructions...
...
Make our way through the AVX instructions: conversions.
This is all I have time for now... hopefully this can service as a
generous source of examples.
2008-05-20 18:14:30 -07:00
H. Peter Anvin
4ae88e1a83
Accept the gas mnemonics "ud2a" and "ud2b"; fix ud0
...
Accept the gas mnemonics "ud2a" and "ud2b" for the instructions we
call ud2 and ud1 respectively, and Intel call ud2 and undocumented :)
Also, 0F FF is ud0 regardless of prefixes, at least as far as we know.
2008-05-20 17:14:17 -07:00
H. Peter Anvin
0ab96a17d5
ndisasm: simple compare for conditional opcodes, no loop
...
We had a completely unnecessary loop to test for conditional opcodes.
Since we always put the conditional opcodes at the end, we might as
well just remember where that list starts and compare against it.
2008-05-20 17:07:57 -07:00
H. Peter Anvin
f99359c03a
Finish the VCMP series...
2008-05-20 16:59:17 -07:00
H. Peter Anvin
e6d0eb4d68
More AVX instructions
...
Add additional AVX instructions to the list.
2008-05-20 16:48:34 -07:00
H. Peter Anvin
670219a2c0
Make the syntax for immediates match the docs better
...
Use a more manual-like syntax for immediates (we still may have to use
extended syntax, but not always.)
2008-05-20 16:47:42 -07:00
H. Peter Anvin
ee7fc29a30
Add support for ymm0 in instructions
...
Make it possible to use ymm0 as a fixed operand in instructions
2008-05-20 16:47:12 -07:00
H. Peter Anvin
711b0c1e39
phash: cut random vector set down a bit
...
Reduce the size of the random vector set somewhat
2008-05-20 16:46:36 -07:00
H. Peter Anvin
3be5d85913
No 32-byte floating point format: fix error for DY
...
Output a more legible error message for floating-point with "DY".
2008-05-20 14:49:32 -07:00
H. Peter Anvin
0c648204e2
openwcom.mak: wmake uses & for continuation, not \ (sigh)
...
wmake uses & for continuation, since \ is used for pathname
separators.
2008-05-20 14:42:53 -07:00
H. Peter Anvin
d1dab0f720
Readability improvements for regdis.c
2008-05-20 14:39:36 -07:00
H. Peter Anvin
f176537c1b
netware.mak: correct dependencies
...
The Makefile uses VPATH and stripped directory names for files, so
generate the dependencies accordingly.
2008-05-20 14:35:34 -07:00
H. Peter Anvin
9726b1e971
rdx: Add cast avoid warning from gcc
...
Avoid a warning from gcc about casting an integer of different size to
a pointer.
2008-05-20 14:25:36 -07:00
H. Peter Anvin
a4835d466c
Avoid #including .c files; instead compile as separate units
...
Don't #include .c files, even if they are auto-generated; instead
compile them as separate compilation units and let the linker do its
job.
2008-05-20 14:21:29 -07:00
H. Peter Anvin
73252a92ae
PTEST is SSE4.1; although AMD says it's SSE5.
...
Fix this when we have proper support for feature sets, or forget about
the concept entirely.
2008-05-20 13:07:09 -07:00
H. Peter Anvin
b726b04813
insns.pl: don't require whitespace before / or \
...
Use Perl's context-sensitive regular expressions to tell split that a
slash or backslash begins a new operator.
2008-05-20 13:03:39 -07:00
H. Peter Anvin
930d655916
nasm.h: remove obsolete IP_REG definitions
2008-05-20 11:47:01 -07:00
H. Peter Anvin
dfb918047b
Add DY, YWORD, and the SY instruction flag
...
Add the DY instruction, YWORD keyword, and an SY marker for
instruction sizes. Add a few more AVX sample instructions.
2008-05-20 11:43:53 -07:00
H. Peter Anvin
70a13f5a37
insns.pl: support operands that serve double duty
...
Sometimes assembly syntax wants to permit a single operand to serve
multiple functions; allow this.
The disassembler could really use to be smarter about those.
2008-05-20 11:23:18 -07:00
H. Peter Anvin
d82dd4f1a3
insns.dat: no subheader for "must be last"
2008-05-20 11:05:59 -07:00
H. Peter Anvin
1e5203872d
insns.dat: make even wider to make space for AVX
...
The AVX instructions take more space, so add a few tab stops across
the entire file.
2008-05-20 11:04:26 -07:00
H. Peter Anvin
8597e6900c
insns.dat: use compiler-generated bytecodes for AVX
...
Use compiler-generated bytecodes for the AVX instruction demos. This
should make it a lot easier for other people (HINT, HINT) to add the
instruction table.
2008-05-20 11:01:28 -07:00
H. Peter Anvin
0fc86cca1f
insns.pl: fix regex subgroup of /is4= codes
...
The argument is now $1, not $2...
2008-05-20 10:48:22 -07:00
H. Peter Anvin
8491986e69
insns.pl: fix splitting of bracketted operations
2008-05-20 10:39:15 -07:00
H. Peter Anvin
0686131bbe
Opcode listing notation is /is4, consistently
2008-05-20 10:29:11 -07:00
H. Peter Anvin
2812ff5181
Use the \360..\363 annotations for SSE prefixes
2008-05-20 10:21:57 -07:00
H. Peter Anvin
fff5a47e65
Same some space by introducing shorthand byte codes for SSE prefixes
...
Properly done, all SSE instructions which has the 66/F2/F3 opcode
multiplex need two prefixes: one to control the use of OSP and one to
control the use of REP. However, it's a four-way select: np/66/F2/F3;
so introduce shorthand bytecodes for that purpose.
2008-05-20 09:46:24 -07:00
H. Peter Anvin
24860b0f0e
Allow explicit immediate syntax for imz2 as well as is4
...
imz2 is just an alias for is4 as far as we are concerned...
2008-05-20 09:36:41 -07:00
H. Peter Anvin
e6fb38b9f2
insns.pl: escape literal special character in regex
...
In Perl code, it is good practice to escape special characters
intended to be literal.
2008-05-19 21:10:14 -07:00
H. Peter Anvin
7a4928f484
Bytecode compiler: add support for is4/imz2 operands
2008-05-19 21:07:48 -07:00
H. Peter Anvin
dfa2a842bd
More work on bytecode compiler (not finished yet...)
...
More work on the bytecode compiler. Not all useful bytecodes are
implemented yet, however.
2008-05-19 19:08:03 -07:00
H. Peter Anvin
4f0a3e64ee
insns.pl: first steps toward a "smart" bytecode compiler
...
First steps toward a smart(er) bytecode compiler, using a syntax that
can be more directly taken from the manuals.
2008-05-19 18:19:42 -07:00
H. Peter Anvin
2c94c44f35
Make insnsb.c an actual compilation unit
...
"make alldeps" doesn't really like it when included files end in *.c.
Instead of renaming insnsb.c to insnsb.h, make it an actual
compilation unit, since there really isn't any reason for it not to
be.
2008-05-13 14:29:47 -07:00
H. Peter Anvin
0a4d23219e
insnsb.c: use 5 digits for index, not 4
...
We already have indexes up to 9500, so use 5 digits instead of 4.
2008-05-12 15:28:33 -07:00
H. Peter Anvin
ff3b57c253
Make MAX_OPERANDS a parameter in insns.pl as well
...
MAX_OPERANDS is present in insns.pl as well (although proper C
compilers shouldn't need this kind of zero padding.) Make sure it's
clear to everyone.
2008-05-12 11:36:24 -07:00
H. Peter Anvin
aaa088fbf3
Remove special hacks to avoid zero bytecodes
...
We can now have zero bytecodes with impunity, so remove any special
hacks we had to avoid zeroes in the bytecode.
2008-05-12 11:13:41 -07:00
H. Peter Anvin
3720f7beae
Generate a byte array instead of using strings for the byte codes
...
Generate a byte array instead of using C compiler strings for the byte
codes. This has a few advantages:
- No need to special-case zero due to broken C compilers.
- Only insns.pl only ever reads the string, so we can invent our own
syntax.
- Compaction.
- We can give it the proper, unsigned type.
2008-05-12 11:00:50 -07:00
H. Peter Anvin
387c1c2714
Factor out string decoder in insns.pl
...
Factor out the string decoder into its own subroutine. This will be
useful shortly ;)
2008-05-12 10:17:27 -07:00
H. Peter Anvin
d58656f797
Add support for register-number immediates with fixed 4-bit values
...
Add support for imm8 bytes which has a register value in the top four
bits and an arbitrary fixed value in the bottom four bits.
2008-05-06 20:11:14 -07:00