Peter Johnson
3ce026a098
Remove & from function pointer references.
...
svn path=/trunk/yasm/; revision=135
24 years ago
Peter Johnson
fa49ca5544
Add new subdirectories for new src/ directory structures.
...
svn path=/trunk/yasm/; revision=134
24 years ago
Peter Johnson
7ba343f346
New modular directory structure: parsers, preprocs, and outfmts.
...
Moved token.l.in, bison.y.in, and gen_instr.pl to parsers/nasm/.
New parser, preproc, and outfmt structures. None are complete; outfmt
needs the most work.
The raw preprocessor added (for no preprocessing).
Currently the default for the nasm parser is to use the raw preproc; this
should be changed to nasm_preproc once the nasm preprocessor is finished.
A dbg output format is also new; because outfmt isn't done yet, there's not
much implementation.
What structures still need creating: listfmt, debugfmt.
svn path=/trunk/yasm/; revision=133
24 years ago
Peter Johnson
ce3c2283b0
Update to reflect 0-based groupdata array.
...
svn path=/trunk/yasm/; revision=132
24 years ago
Peter Johnson
b3a5266c00
Add "error when reading from file" error.
...
svn path=/trunk/yasm/; revision=131
24 years ago
Peter Johnson
50cd4f238f
Add global filename variable and handling for a filename passed on the
...
command line (no real command-line parsing yet).
svn path=/trunk/yasm/; revision=130
24 years ago
Peter Johnson
1fa31332b6
Add lexing, parsing, and internal format for strings and character constants.
...
Completely handle data declarations (db/dw/etc) and reserve space declarations
(resb/resw/etc).
svn path=/trunk/yasm/; revision=129
24 years ago
Peter Johnson
bb595a8f02
Formatting changes and starting to comment more heavily.
...
svn path=/trunk/yasm/; revision=128
24 years ago
Peter Johnson
d4c6d24a9e
At least in NASM syntax, there is no differentation between labels and data
...
declarations, so delete SYM_DATA. We may add it back in someday if we add
another syntax.
svn path=/trunk/yasm/; revision=127
24 years ago
Peter Johnson
6232670d62
Add unary precedence to some of the expression rules.
...
Add '+' as a unary operator.
Change target to use expr instead of just explabel.
svn path=/trunk/yasm/; revision=126
24 years ago
Peter Johnson
1b34a9ea2a
Add strdup and strtoul replacements to EXTRA_DIST.
...
svn path=/trunk/yasm/; revision=125
24 years ago
Peter Johnson
5ded7b9546
Move ..start in with ..@label.
...
svn path=/trunk/yasm/; revision=124
24 years ago
Peter Johnson
76af86221f
Move some previously seperate identifiers into general label handlers.
...
svn path=/trunk/yasm/; revision=123
24 years ago
Peter Johnson
23c4df71f5
This is now in the root directory, so no need to include it here.
...
svn path=/trunk/yasm/; revision=122
24 years ago
Peter Johnson
b0271346c7
Match build changes.
...
svn path=/trunk/yasm/; revision=121
24 years ago
Peter Johnson
06cce4e4cd
Repo-copied include files to src to make automake/autoconf build structure
...
work properly. Changed Makefile.am, src/Makefile.am, and configure.in to
match directory changes.
svn path=/trunk/yasm/; revision=120
24 years ago
Peter Johnson
fa5c9d5ea9
First attempt at supporting relative jump instructions. A few hacks, but
...
seems to work well.
A few other minor fixes/changes as well (noticed when coding).
svn path=/trunk/yasm/; revision=119
24 years ago
Michael Urman
c0eb4fac3e
Better and more generalized kludge for sliding $0.\d down.
...
svn path=/trunk/yasm/; revision=118
24 years ago
Michael Urman
c4d985f1ad
Integrate expression handling into memory address expressions.
...
Consequently change Imm->EA, and update DebugPrintBC (fix segvs too)
svn path=/trunk/yasm/; revision=117
24 years ago
Peter Johnson
bd6d5322e1
Fix and tighten down on validation regexps. Add support for 4th group
...
parameter.
svn path=/trunk/yasm/; revision=116
24 years ago
Peter Johnson
187eda1c36
Eliminate conflicts by setting associativity (and precedence too).
...
svn path=/trunk/yasm/; revision=115
24 years ago
Peter Johnson
0fd21bf57e
Align inst the same as !grp to improve readability.
...
svn path=/trunk/yasm/; revision=114
24 years ago
Michael Urman
0cb10aa577
Fixed the non-ansi attempts to pass a union member casted as the union
...
type.
svn path=/trunk/yasm/; revision=113
24 years ago
Peter Johnson
daf5c6fd03
Enable and add support for (in gen_instr.pl) short xchg AX and EAX forms.
...
svn path=/trunk/yasm/; revision=112
24 years ago
Michael Urman
29c9a4f5f2
Oops. Used the write struct this time.
...
svn path=/trunk/yasm/; revision=111
24 years ago
Michael Urman
49f781300e
Added prototype for ConvertExprToImm()
...
svn path=/trunk/yasm/; revision=110
24 years ago
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