]>
granicus.if.org Git - yasm/log
Peter Johnson [Wed, 14 Aug 2002 03:02:19 +0000 (03:02 -0000)]
Fix %line handling.
svn path=/trunk/yasm/; revision=696
Peter Johnson [Wed, 14 Aug 2002 01:47:25 +0000 (01:47 -0000)]
Remove lemon. We aren't using it, it doesn't need to be in our source tree.
svn path=/trunk/yasm/; revision=695
Peter Johnson [Tue, 13 Aug 2002 05:56:39 +0000 (05:56 -0000)]
Finish remaining instructions (SSE, SSE2, Cyrix MMX). Changed CPU flags for
MMX/SSE2 to reflect that it's the MMX or SSE2 cpu feature, not the cpu family.
svn path=/trunk/yasm/; revision=694
Peter Johnson [Mon, 12 Aug 2002 07:01:31 +0000 (07:01 -0000)]
Add MMX/SSE2 instructions.
svn path=/trunk/yasm/; revision=693
Peter Johnson [Mon, 12 Aug 2002 06:14:57 +0000 (06:14 -0000)]
Add segreg moves.
svn path=/trunk/yasm/; revision=692
Peter Johnson [Mon, 12 Aug 2002 06:00:48 +0000 (06:00 -0000)]
Fix some bugs.
- Typos in imul reg, imm (# of operands)
- Fixes to push/pop. word/dword override opersize now.
svn path=/trunk/yasm/; revision=691
Peter Johnson [Mon, 12 Aug 2002 05:59:12 +0000 (05:59 -0000)]
Allow one-digit hex-constants of the form "0h".
svn path=/trunk/yasm/; revision=690
Peter Johnson [Mon, 12 Aug 2002 05:16:01 +0000 (05:16 -0000)]
Implement relative jumps and calls.
svn path=/trunk/yasm/; revision=689
Peter Johnson [Mon, 12 Aug 2002 03:58:01 +0000 (03:58 -0000)]
Fix writing of PC-relative values (broken in rev. 1.9).
svn path=/trunk/yasm/; revision=688
Peter Johnson [Mon, 12 Aug 2002 03:36:50 +0000 (03:36 -0000)]
x86_parse_targetmod enum should start with value 1, not 0.
svn path=/trunk/yasm/; revision=687
Peter Johnson [Mon, 12 Aug 2002 02:20:35 +0000 (02:20 -0000)]
Take opersize as an input for x86_bc_new_jmprel().
svn path=/trunk/yasm/; revision=686
Peter Johnson [Sun, 11 Aug 2002 18:49:52 +0000 (18:49 -0000)]
Flatten x86_targetval into x86_new_jmprel_data, as the former is no longer used
in the parser.
svn path=/trunk/yasm/; revision=685
Peter Johnson [Sun, 11 Aug 2002 03:32:40 +0000 (03:32 -0000)]
Finish all instructions except for relative jumps, mov segreg, MMX, SSE, and
SSE2.
svn path=/trunk/yasm/; revision=684
Peter Johnson [Sun, 11 Aug 2002 01:07:20 +0000 (01:07 -0000)]
Added rest of floating point instructions. Needed to add new action to
add to opcode byte 1.
svn path=/trunk/yasm/; revision=683
Peter Johnson [Sat, 10 Aug 2002 23:04:28 +0000 (23:04 -0000)]
Add checking of target modifier.
Change operand typing mask constants to be more uniform.
Increase operand type size to long from int, as it now can go over 16 bits.
svn path=/trunk/yasm/; revision=682
Peter Johnson [Sat, 10 Aug 2002 22:48:16 +0000 (22:48 -0000)]
Make "TO" a x86 targetmod.
svn path=/trunk/yasm/; revision=681
Peter Johnson [Sat, 10 Aug 2002 22:09:30 +0000 (22:09 -0000)]
Don't include malloc.h. It's deprecated on most systems.
svn path=/trunk/yasm/; revision=680
Peter Johnson [Sat, 10 Aug 2002 22:06:49 +0000 (22:06 -0000)]
Fix pointer comparison. Should be checking for == NULL, not <0.
svn path=/trunk/yasm/; revision=679
Peter Johnson [Sat, 10 Aug 2002 21:05:21 +0000 (21:05 -0000)]
Add a few control transfer instructions, plus set byte on flag, bit manip,
int, bound, and 286 protection control.
svn path=/trunk/yasm/; revision=678
Peter Johnson [Sat, 10 Aug 2002 18:18:59 +0000 (18:18 -0000)]
Added shift instructions, as well as new "postponed" actions for things such
as shift ,1 operands and imm operands that have sign-extended imm8 forms that
can't be decided at parse-time. The x86 bc format already had support for
these. Also fixed a bug in the lfs family (incorrect inst len).
svn path=/trunk/yasm/; revision=677
Peter Johnson [Sat, 10 Aug 2002 08:26:02 +0000 (08:26 -0000)]
Add lea, l?s, and arithmetic instructions. Arithmetic instructions needed
two additional actions: signed immediate and spare+ea.
svn path=/trunk/yasm/; revision=676
Peter Johnson [Sat, 10 Aug 2002 05:09:35 +0000 (05:09 -0000)]
Add xchg, in, out. in and out required operand type Dreg (DL/DX/EDX) to be
added.
svn path=/trunk/yasm/; revision=675
Peter Johnson [Sat, 10 Aug 2002 04:36:38 +0000 (04:36 -0000)]
Add push and pop. This required adding some new specific operand types, which
required adding to the number of bits allocated for the operand type.
svn path=/trunk/yasm/; revision=674
Peter Johnson [Sat, 10 Aug 2002 00:43:06 +0000 (00:43 -0000)]
Run through cleanup.pl to get rid of unused labels.
svn path=/trunk/yasm/; revision=673
Peter Johnson [Fri, 9 Aug 2002 07:14:52 +0000 (07:14 -0000)]
Add explicit $(top_builddir) when running re2c.
svn path=/trunk/yasm/; revision=672
Peter Johnson [Fri, 9 Aug 2002 05:45:10 +0000 (05:45 -0000)]
Add re2c files, libtool, and x86id.c.
svn path=/trunk/yasm/; revision=671
Peter Johnson [Fri, 9 Aug 2002 05:43:03 +0000 (05:43 -0000)]
Massive restructuring of lexing and parsing (NASM-compatible parser).
Bugzilla Bug#3. Not all instructions are parsed yet, so this is actually a
minor feature regression from the user side, but this commit lays the framework
for much easier additions of new assembler syntaxes and architectures. The
re2c tool is now used to generate the lexers, as it's much more flexibly
function-oriented than lex.
- nasm-bison.y is a repocopy+modify of nasm/bison.y.in.
- x86arch.h now includes all of x86-int.h
svn path=/trunk/yasm/; revision=670
Peter Johnson [Fri, 9 Aug 2002 05:26:21 +0000 (05:26 -0000)]
Neaten the line-continuation a bit.
svn path=/trunk/yasm/; revision=669
Peter Johnson [Fri, 9 Aug 2002 05:22:07 +0000 (05:22 -0000)]
Flatten the tools/re2c build.
- Moved (by repocopy) main.c to re2c.c
- Moved (by repocopy) parser.y to re2c-parser.y
- Changed to Makefile.inc's rather than Makefile.am's
- Modified all the source file local includes to point to tools/re2c/*.h
svn path=/trunk/yasm/; revision=668
Peter Johnson [Thu, 8 Aug 2002 02:50:40 +0000 (02:50 -0000)]
Accidently included a second change in the previous commit.
svn path=/trunk/yasm/; revision=666
Peter Johnson [Thu, 8 Aug 2002 02:49:40 +0000 (02:49 -0000)]
Disable loading preloaded symbols until there's actually loadable modules being
compiled.
svn path=/trunk/yasm/; revision=665
Peter Johnson [Thu, 8 Aug 2002 02:08:10 +0000 (02:08 -0000)]
Initialize and shut down libltdl.
svn path=/trunk/yasm/; revision=664
Peter Johnson [Thu, 8 Aug 2002 00:59:42 +0000 (00:59 -0000)]
Allow objfmt initialize and cleanup function pointers to be NULL when not needed.
svn path=/trunk/yasm/; revision=663
Peter Johnson [Wed, 7 Aug 2002 01:55:48 +0000 (01:55 -0000)]
Fix a few cases of freeing NULL pointers.
svn path=/trunk/yasm/; revision=662
Peter Johnson [Wed, 7 Aug 2002 01:04:34 +0000 (01:04 -0000)]
Move strndup() declaration outside !DMALLOC #ifdef, as it's not defined by
the dmalloc library.
svn path=/trunk/yasm/; revision=661
Peter Johnson [Tue, 6 Aug 2002 00:49:59 +0000 (00:49 -0000)]
fucom* are FPU instructions.
svn path=/trunk/yasm/; revision=660
Peter Johnson [Sat, 3 Aug 2002 17:01:05 +0000 (17:01 -0000)]
vps_print() should take a const valparamhead *.
svn path=/trunk/yasm/; revision=659
Peter Johnson [Sat, 3 Aug 2002 03:40:51 +0000 (03:40 -0000)]
Remove .re.c suffix rule. In GNU make, this doesn't work as intended (instead
of making all .re -> .c builds require re2c (as a suffix rule), it instead sees
it as a rule to build ".re.c"). Oddly enough, in BSD make this works perfectly.
svn path=/trunk/yasm/; revision=658
Peter Johnson [Fri, 2 Aug 2002 05:27:29 +0000 (05:27 -0000)]
This file is going away soon, but it's still good to fix errors: CLTS was
passing too many values to the twobyte group.
svn path=/trunk/yasm/; revision=657
Peter Johnson [Sat, 13 Jul 2002 18:51:26 +0000 (18:51 -0000)]
Bring in AC_PROVIDE_IFELSE changes necessary for AC_LIBTOOL_DLOPEN and like
under autoconf 2.53+.
svn path=/trunk/yasm/; revision=656
Peter Johnson [Sat, 13 Jul 2002 18:50:38 +0000 (18:50 -0000)]
- Disable libtool win32 DLL support.
- Use AC_PROG_LIBTOOL instead of AM_PROG_LIBTOOL.
- Move AC_LIB_LTDL down to libraries section.
svn path=/trunk/yasm/; revision=655
Peter Johnson [Sat, 13 Jul 2002 05:47:13 +0000 (05:47 -0000)]
Ignore libtool-generated objects and directories.
svn path=/trunk/yasm/; revision=653
Peter Johnson [Thu, 27 Jun 2002 04:59:13 +0000 (04:59 -0000)]
Declare errwarn_new(), error_common(), and warning_common() as static.
svn path=/trunk/yasm/; revision=652
Peter Johnson [Mon, 24 Jun 2002 07:30:28 +0000 (07:30 -0000)]
Add configure.lineno to CLEANFILES. It doesn't delete itself or have something
else delete it, making distcheck impossible (the build directory isn't empty
after a distclean).
svn path=/trunk/yasm/; revision=651
Peter Johnson [Sat, 22 Jun 2002 02:37:25 +0000 (02:37 -0000)]
Define lib_LTLIBRARIES to avoid automake warning.
svn path=/trunk/yasm/; revision=650
Peter Johnson [Thu, 20 Jun 2002 05:15:59 +0000 (05:15 -0000)]
Add xstrndup() to easily create a 0-terminated duplicate of a
non-zero-terminated source string.
svn path=/trunk/yasm/; revision=649
Peter Johnson [Mon, 3 Jun 2002 07:21:19 +0000 (07:21 -0000)]
Re-enable building of re2c (not lemon yet), including a generic Makefile rule.
A rewrite of the nasm-compat lexer in re2c is close to completion.
svn path=/trunk/yasm/; revision=648
Peter Johnson [Mon, 3 Jun 2002 07:13:09 +0000 (07:13 -0000)]
Cleanup script for re2c output that removes unreferenced labels (significantly
reducing C compiler warnings).
svn path=/trunk/yasm/; revision=647
Peter Johnson [Sun, 2 Jun 2002 18:58:38 +0000 (18:58 -0000)]
Fix 2 major bugs: -b switch caused crash, and all actions got corrupted.
svn path=/trunk/yasm/; revision=646
Peter Johnson [Sat, 1 Jun 2002 02:43:25 +0000 (02:43 -0000)]
We don't use the tools right now, so don't bother building them/including them
in the distribution.
svn path=/trunk/yasm/; revision=645
Peter Johnson [Wed, 29 May 2002 05:31:06 +0000 (05:31 -0000)]
Initial revision
svn path=/trunk/yasm/; revision=641
Peter Johnson [Wed, 29 May 2002 05:25:32 +0000 (05:25 -0000)]
Integrate gettext, libtool, and libltdl into CVS and more tightly into
configuration process.
svn path=/trunk/yasm/; revision=640
Peter Johnson [Wed, 29 May 2002 05:05:53 +0000 (05:05 -0000)]
Include all the m4 files in EXTRA_DIST.
svn path=/trunk/yasm/; revision=639
Peter Johnson [Wed, 29 May 2002 05:00:31 +0000 (05:00 -0000)]
Initial revision
svn path=/trunk/yasm/; revision=635
Peter Johnson [Wed, 29 May 2002 04:46:54 +0000 (04:46 -0000)]
Initial revision
svn path=/trunk/yasm/; revision=632
Peter Johnson [Thu, 23 May 2002 07:24:41 +0000 (07:24 -0000)]
Bytecode and objfmt changes:
- Add two new bytecode types:
BC_ALIGN (not yet implemented) for performing nice alignment magic.
BC_OBJFMT_DATA for storing objfmt-generated data in more advanced objfmts.
- objfmt structure changes:
Add handling functions for BC_OBJFMT_DATA data.
Allow a number of functions to be NULL.
svn path=/trunk/yasm/; revision=631
Peter Johnson [Mon, 20 May 2002 06:01:10 +0000 (06:01 -0000)]
Revert previous commit (ELF isn't committed yet).
svn path=/trunk/yasm/; revision=630
Peter Johnson [Mon, 20 May 2002 05:53:58 +0000 (05:53 -0000)]
Use C89 types for field sizes and avoid reserved #define names.
svn path=/trunk/yasm/; revision=629
Peter Johnson [Mon, 20 May 2002 05:46:27 +0000 (05:46 -0000)]
Don't worry about 64-bit and generic ELF at this point.
svn path=/trunk/yasm/; revision=628
Peter Johnson [Mon, 20 May 2002 05:40:22 +0000 (05:40 -0000)]
Initial revision
svn path=/trunk/yasm/; revision=624
Peter Johnson [Mon, 20 May 2002 01:08:42 +0000 (01:08 -0000)]
Prevent spurious "Circular reference detected" errors by refining the return
value for bc_resolve() to enum-defined flags.
svn path=/trunk/yasm/; revision=623
Peter Johnson [Sat, 18 May 2002 09:55:42 +0000 (09:55 -0000)]
Revamp error/warning handling.
svn path=/trunk/yasm/; revision=622
Peter Johnson [Sat, 11 May 2002 01:50:11 +0000 (01:50 -0000)]
During the first pass of basic optimization, continue reporting errors, don't
stop at the first error.
To help prevent spurios errors, make bytecodes with errors 0 length in
bc_resolve().
svn path=/trunk/yasm/; revision=621
Peter Johnson [Sun, 5 May 2002 18:18:07 +0000 (18:18 -0000)]
Change handling of res* (no longer require that the entire containing buffer
be allocated and filled with 0's to write it out).
Other fixes:
Specifically look for floating point values in res* and multiple exprs.
One-byte PC-relative displacement *is* legal (short jumps).
svn path=/trunk/yasm/; revision=620
Peter Johnson [Fri, 3 May 2002 02:21:51 +0000 (02:21 -0000)]
Check for integer warnings.
svn path=/trunk/yasm/; revision=619
Peter Johnson [Thu, 2 May 2002 06:09:07 +0000 (06:09 -0000)]
A number of fixes to float and integer handling on the output side:
- expr can now negate floatnums
- bin objfmt output_expr now correctly outputs all sizes of integers and
does a check for floating point containing exprs before complaining about
external references. Also checks for properly sized floatnum output with
an ErrorAt instead of an InternalError.
svn path=/trunk/yasm/; revision=618
Peter Johnson [Thu, 2 May 2002 03:34:10 +0000 (03:34 -0000)]
Properly count errors and warnings triggered by ErrorAt() and WarningAt().
svn path=/trunk/yasm/; revision=617
Peter Johnson [Thu, 2 May 2002 03:33:32 +0000 (03:33 -0000)]
Check return value correctly (for both error and non-error).
svn path=/trunk/yasm/; revision=616
Peter Johnson [Wed, 1 May 2002 03:34:40 +0000 (03:34 -0000)]
Revert previous commit. The srcdir isn't needed, and in fact breaks things.
svn path=/trunk/yasm/; revision=615
Peter Johnson [Wed, 1 May 2002 03:25:55 +0000 (03:25 -0000)]
Add bison-generated sources to BUILT_SOURCES and CLEANFILES.
svn path=/trunk/yasm/; revision=614
Peter Johnson [Wed, 1 May 2002 03:19:23 +0000 (03:19 -0000)]
Clean up after test execution.
svn path=/trunk/yasm/; revision=613
Peter Johnson [Wed, 1 May 2002 03:04:48 +0000 (03:04 -0000)]
Run gettextize with the --no-changelog option. Note this requires gettext
0.11.1.
svn path=/trunk/yasm/; revision=612
Peter Johnson [Tue, 30 Apr 2002 02:06:29 +0000 (02:06 -0000)]
Too overzealous on including test files that aren't committed yet (because they
don't pass yet!).
svn path=/trunk/yasm/; revision=611
Peter Johnson [Mon, 29 Apr 2002 03:59:38 +0000 (03:59 -0000)]
Fix warning message for zeroing uninit space so it prints on the correct line.
Add bin objfmt test suite and test for this case.
svn path=/trunk/yasm/; revision=610
Peter Johnson [Sun, 28 Apr 2002 21:36:54 +0000 (21:36 -0000)]
Fix distcheck build. For some reason, automake wants a $(top_srcdir) for the
yapp-token.l file.
svn path=/trunk/yasm/; revision=609
Peter Johnson [Sat, 27 Apr 2002 21:44:19 +0000 (21:44 -0000)]
Have symrec manage all symbols, not just the ones in the symbol table.
svn path=/trunk/yasm/; revision=608
Peter Johnson [Sat, 27 Apr 2002 05:14:02 +0000 (05:14 -0000)]
Switch back to returning @dependent@ instead of @observer@.
svn path=/trunk/yasm/; revision=607
Peter Johnson [Tue, 23 Apr 2002 05:04:41 +0000 (05:04 -0000)]
Splint-noticed bugfixes: memory leaks, unreachable code.
svn path=/trunk/yasm/; revision=606
Peter Johnson [Tue, 23 Apr 2002 04:54:43 +0000 (04:54 -0000)]
Splint cleanups, including const change.
svn path=/trunk/yasm/; revision=605
Peter Johnson [Mon, 22 Apr 2002 07:57:52 +0000 (07:57 -0000)]
Splint cleanups and related bugfixes:
- fix memory leak in bin_objfmt_resolve_label2()
- delete common data in bin_objfmt_common_data_new() rather than continuing
to handle it in declare_data_*()
svn path=/trunk/yasm/; revision=604
Peter Johnson [Mon, 22 Apr 2002 07:54:38 +0000 (07:54 -0000)]
Change most Splint return annotations from dependent to observer.
Also, section_get_start() can't return NULL.
svn path=/trunk/yasm/; revision=603
Peter Johnson [Mon, 22 Apr 2002 07:53:46 +0000 (07:53 -0000)]
Cast SAVE_* and WRITE_* assignments to unsigned char.
svn path=/trunk/yasm/; revision=602
Peter Johnson [Mon, 22 Apr 2002 07:49:47 +0000 (07:49 -0000)]
Make expr_print() take a const expr.
svn path=/trunk/yasm/; revision=601
Peter Johnson [Mon, 22 Apr 2002 06:32:51 +0000 (06:32 -0000)]
Fix a couple bugs found by Splint (and do some other Splint cleanups).
svn path=/trunk/yasm/; revision=600
Peter Johnson [Mon, 22 Apr 2002 06:17:11 +0000 (06:17 -0000)]
Splint cleanups: expr_copy_* don't take a NULL, so they can't return NULL.
svn path=/trunk/yasm/; revision=599
Peter Johnson [Mon, 22 Apr 2002 01:58:09 +0000 (01:58 -0000)]
Splint cleanups.
svn path=/trunk/yasm/; revision=598
Peter Johnson [Mon, 22 Apr 2002 01:55:23 +0000 (01:55 -0000)]
Split split parameters into separate lines to make it much easier to edit.
svn path=/trunk/yasm/; revision=597
Peter Johnson [Mon, 22 Apr 2002 01:52:42 +0000 (01:52 -0000)]
Add options: +allglobals -noeffect -shiftnegative.
svn path=/trunk/yasm/; revision=596
Peter Johnson [Mon, 22 Apr 2002 01:51:24 +0000 (01:51 -0000)]
Splint cleanups.
svn path=/trunk/yasm/; revision=595
Peter Johnson [Mon, 22 Apr 2002 01:39:50 +0000 (01:39 -0000)]
Splint cleanups.
svn path=/trunk/yasm/; revision=594
Peter Johnson [Mon, 22 Apr 2002 01:37:54 +0000 (01:37 -0000)]
Splint cleanups on memory allocation routines.
svn path=/trunk/yasm/; revision=593
Peter Johnson [Sun, 21 Apr 2002 18:55:19 +0000 (18:55 -0000)]
Create global macro NELEMS to replace countof macro defined just in main.c.
svn path=/trunk/yasm/; revision=592
Peter Johnson [Mon, 15 Apr 2002 04:38:59 +0000 (04:38 -0000)]
Update with latest files. Add suggestion on how to get an updated list.
svn path=/trunk/yasm/; revision=591
Peter Johnson [Mon, 15 Apr 2002 04:28:42 +0000 (04:28 -0000)]
Add remove-potcdate.sed.
svn path=/trunk/yasm/; revision=590
Peter Johnson [Mon, 15 Apr 2002 04:20:38 +0000 (04:20 -0000)]
Update to gettext 0.11.1.
svn path=/trunk/yasm/; revision=589
Peter Johnson [Fri, 12 Apr 2002 05:21:50 +0000 (05:21 -0000)]
Portability fixes: include config.h to get rid of inline if necessary, remove
last // comments, and include a local strdup.
svn path=/trunk/yasm/; revision=588
Peter Johnson [Fri, 12 Apr 2002 04:14:15 +0000 (04:14 -0000)]
Add local changes (primarily C++ -> C conversion).
svn path=/trunk/yasm/; revision=587
Peter Johnson [Fri, 12 Apr 2002 04:12:11 +0000 (04:12 -0000)]
Reflect where our local o= and t= options came from.
svn path=/trunk/yasm/; revision=586
Peter Johnson [Thu, 11 Apr 2002 07:21:38 +0000 (07:21 -0000)]
Add re2c to the build tree. Build tools with recursive make instead of from
top-level Makefile (for various reasons, including object name conflicts).
svn path=/trunk/yasm/; revision=585
Peter Johnson [Thu, 11 Apr 2002 07:15:07 +0000 (07:15 -0000)]
Don't conflict local parser.h with bison-generated parser.h by renaming
parser.h to parse.h.
svn path=/trunk/yasm/; revision=584