Michael Urman
84bae30656
Long hairy integration of expression handling into the grammar.
...
Added printing, getvalue functionality to expr.[ch]
Changed immval to house an expr* instead of an unsigned long.
gen_instr.pl needs to be updated for ONE cases to fix pointer compares.
bison s/r conflicts still need to be handled.
svn path=/trunk/yasm/; revision=109
24 years ago
Peter Johnson
273a7b3c83
Change groupdate into an array, and make everything 0-based in the output
...
code. Bit of a kludge required in gen_instr.pl to slide the $0.\d down by
one (is there a better way to do it?).
svn path=/trunk/yasm/; revision=108
24 years ago
Peter Johnson
7f30800f77
Allow opsize parameters, to eliminate !onebyte16 and !onebyte32.
...
svn path=/trunk/yasm/; revision=107
24 years ago
Michael Urman
fb3e968a29
Initial checkin of expression handling.
...
svn path=/trunk/yasm/; revision=106
24 years ago
Peter Johnson
ce22ed6337
Fix movdq2q, movq2dq encodings.
...
svn path=/trunk/yasm/; revision=105
24 years ago
Peter Johnson
6b71124807
Fix typo (cmpneqps -> cmpneqsd).
...
svn path=/trunk/yasm/; revision=104
24 years ago
Peter Johnson
01ac90f4d6
Implement all variations of the SSE and SSE2 cmp* family.
...
svn path=/trunk/yasm/; revision=103
24 years ago
Peter Johnson
7ffbf9829c
#0 and #1 -> @0 and @1 (for the CPU field), to avoid warning from Perl.
...
svn path=/trunk/yasm/; revision=102
24 years ago
Peter Johnson
b969a322ef
Many minor relocations, fixes, particularly with the CPU field.
...
svn path=/trunk/yasm/; revision=101
24 years ago
Peter Johnson
1636cc2441
Backroll 1.12 and 1.13, they cause conflicts. We need to find a better way
...
to do this.
svn path=/trunk/yasm/; revision=100
24 years ago
Michael Urman
02594cb9da
Added support for spitting out multiple warnings and errors.
...
And consequently decided that i'm probably not validating half the
fields correctly. Maybe peter will fix that. Hint hint.
svn path=/trunk/yasm/; revision=99
24 years ago
Michael Urman
4053f1aaae
Updated validation regexps for $0.\d fields.
...
Removed obosolete commented "next unless ref $instr{$inst};"s
svn path=/trunk/yasm/; revision=98
24 years ago
Michael Urman
769e35a524
Removed use of "our," so as not to require perl 5.6
...
svn path=/trunk/yasm/; revision=97
24 years ago
Michael Urman
2630eece5f
Handle grouped instructions format.
...
svn path=/trunk/yasm/; revision=96
24 years ago
Peter Johnson
d0f8e51492
Indent sections under "groupings used throughout".
...
svn path=/trunk/yasm/; revision=95
24 years ago
Peter Johnson
a499242f9c
Move !ssepsimm up to before it's used.
...
svn path=/trunk/yasm/; revision=94
24 years ago
Peter Johnson
4bae37dca9
Move cmpps/cmppd to the right location in the file.
...
svn path=/trunk/yasm/; revision=93
24 years ago
Peter Johnson
1b4a70ee42
Completely reorder instructions to match that in GNU binutils
...
/include/opcode/i386.h, used for the GAS assembler.
This also helped find some missing instructions and CPU field errors, not
all of which have been added/corrected yet.
svn path=/trunk/yasm/; revision=92
24 years ago
Peter Johnson
a8329fcb64
Add memref to declared types.
...
svn path=/trunk/yasm/; revision=91
24 years ago
Peter Johnson
c5a6effe26
Fixed comment in test opcode encodings.
...
svn path=/trunk/yasm/; revision=90
24 years ago
Peter Johnson
e34f1a366c
Combine a couple instances of imm & imm8x into imm8 (and 16 and 32).
...
svn path=/trunk/yasm/; revision=89
24 years ago
Peter Johnson
91bc4ab5dc
Use %1 and %2 instead of %s and %d for "duplicate definition" error message
...
(allows message to be arbitarily changed, including reversing order of %1 and
%2 without having to change every location it's called from).
svn path=/trunk/yasm/; revision=88
24 years ago
Peter Johnson
619381bdb9
Change mem (other sized memory reference) to cause operand size mismatch error
...
if a size is specified.
svn path=/trunk/yasm/; revision=87
24 years ago
Peter Johnson
9028fd3820
Add CPU field to fence instructions.
...
svn path=/trunk/yasm/; revision=86
24 years ago
Peter Johnson
d4a97a9e7f
Implement lfence and missing mfence, minpd/ps/sd/ss.
...
svn path=/trunk/yasm/; revision=85
24 years ago
Peter Johnson
69ad452b43
Implement sfence.
...
svn path=/trunk/yasm/; revision=84
24 years ago
Peter Johnson
59aaf6cc88
Add !onebytemem and !twobytemem.
...
svn path=/trunk/yasm/; revision=83
24 years ago
Peter Johnson
4cfa5d046e
Combine cmpxchg and xadd into !cmpxchgxadd.
...
Combine !sseps and !sse2ps.
Change !sse2mmx to !mmxsse and make more flexible (handle both SSE and SSE2).
svn path=/trunk/yasm/; revision=82
24 years ago
Peter Johnson
8c0ec93234
xadd reg,mem is invalid.
...
svn path=/trunk/yasm/; revision=81
24 years ago
Peter Johnson
9e265ed5c7
Delete a couple blank lines accidently left in last commit.
...
svn path=/trunk/yasm/; revision=80
24 years ago
Peter Johnson
e796094e1c
Add instruction grouping to decrease size of generated yacc code.
...
gen_instr.pl still needs to actually implement this, so this currently breaks
the build.
svn path=/trunk/yasm/; revision=79
24 years ago
Peter Johnson
0804065bd4
Add --enable-dev option to force CFLAGS to "-ansi -pedantic -Wall -g".
...
svn path=/trunk/yasm/; revision=78
24 years ago
Peter Johnson
d6c52c0c74
Move extra autoconf/automake files to config/ directory.
...
svn path=/trunk/yasm/; revision=77
24 years ago
Peter Johnson
010ef7fe6e
Force standard C compilation.
...
svn path=/trunk/yasm/; revision=76
24 years ago
Peter Johnson
64dce149b1
Don't distribute config.h, and bison.tab.h is gone due to changes in
...
src/Makefile.am.
svn path=/trunk/yasm/; revision=75
24 years ago
Peter Johnson
a4c2cb29ad
Reverse include and src directories to make sure config.h is built first.
...
svn path=/trunk/yasm/; revision=74
24 years ago
Peter Johnson
104ea94e7e
Remove bison.tab.h due to changes in src/Makefile.am.
...
svn path=/trunk/yasm/; revision=73
24 years ago
Peter Johnson
0664f90a20
Change lex and yacc filenames to match changes in Makefile.am.
...
svn path=/trunk/yasm/; revision=72
24 years ago
Peter Johnson
1a88edb466
Use bison.h instead of bison.tab.h to match changes to Makefile.am.
...
svn path=/trunk/yasm/; revision=71
24 years ago
Peter Johnson
e0f38d8cb7
Fix how lex and yacc are handled.
...
svn path=/trunk/yasm/; revision=70
24 years ago
Peter Johnson
93c75c63a5
Add additional checks: const, size_t, vprintf() family, strtoul, and toascii.
...
svn path=/trunk/yasm/; revision=69
24 years ago
Peter Johnson
82fba53e7f
Use toascii() again (now implemented in util.h if not present on system).
...
svn path=/trunk/yasm/; revision=68
24 years ago
Peter Johnson
bfd5122925
Add toascii() implementation.
...
svn path=/trunk/yasm/; revision=67
24 years ago
Peter Johnson
8a6e7a9d48
strtoul() implementation for systems that lack it (from BSD).
...
svn path=/trunk/yasm/; revision=66
24 years ago
Peter Johnson
5faba8f40f
Change copyright and code to match original UCB source.
...
svn path=/trunk/yasm/; revision=65
24 years ago
Peter Johnson
616bd61994
Use ANSI C compliant #ifndef wrappers (_A_H_ -> YASM_A_H).
...
svn path=/trunk/yasm/; revision=64
24 years ago
Peter Johnson
8073375839
Ignore aclocal/autoheader/autoconf/automake files.
...
svn path=/trunk/yasm/; revision=63
24 years ago
Peter Johnson
80c2b676be
Use autoconf to determine when to include our implementation of strdup, so
...
remove util.c and create strdup.c. Make util.h, strdup.c, and several source
files use config.h defines.
svn path=/trunk/yasm/; revision=62
24 years ago
Peter Johnson
6b93227482
Use autoconf to determine when to include our implementation of strdup, so
...
remove util.c and create strdup.c. Make util.h, strdup.c, and several source
files use config.h defines.
svn path=/trunk/yasm/; revision=61
24 years ago
Peter Johnson
96f144ba06
Remove unfinished expr.h from listed sources so that dist target works.
...
svn path=/trunk/yasm/; revision=60
24 years ago