]>
granicus.if.org Git - yasm/log
Peter Johnson [Tue, 1 Oct 2002 18:29:08 +0000 (18:29 -0000)]
Update comment for sym_table variable.
svn path=/trunk/yasm/; revision=717
Peter Johnson [Tue, 1 Oct 2002 17:09:44 +0000 (17:09 -0000)]
PSHUFW has 3 operands, not 2 (typo in num_operands value).
svn path=/trunk/yasm/; revision=716
Peter Johnson [Tue, 1 Oct 2002 17:03:16 +0000 (17:03 -0000)]
RET and RETN are exactly equivalent (the previous commit was wrong, but not
for the reason stated; it just had the wrong base opcode).
svn path=/trunk/yasm/; revision=715
Peter Johnson [Fri, 27 Sep 2002 07:49:10 +0000 (07:49 -0000)]
Revert previous commit until we can do this the right way (C2 iw is an
invalid opcode, it needs to be C2 or C3 iw).
svn path=/trunk/yasm/; revision=714
Peter Johnson [Fri, 27 Sep 2002 07:37:31 +0000 (07:37 -0000)]
RET is a form of RETNF.
svn path=/trunk/yasm/; revision=713
Peter Johnson [Fri, 27 Sep 2002 07:30:08 +0000 (07:30 -0000)]
Fix lexing bug for XMM[0-7] (wrong character used to get register index).
svn path=/trunk/yasm/; revision=712
Peter Johnson [Fri, 27 Sep 2002 06:46:59 +0000 (06:46 -0000)]
Declare shifted constants unsigned longs (with UL) before shifting, to
increase portability.
svn path=/trunk/yasm/; revision=711
Peter Johnson [Thu, 26 Sep 2002 18:11:11 +0000 (18:11 -0000)]
The data argument to section_data_print() can never be null.
svn path=/trunk/yasm/; revision=710
Peter Johnson [Thu, 26 Sep 2002 18:00:16 +0000 (18:00 -0000)]
errwarn_new(): Fix bug that could cause infinite loops.
svn path=/trunk/yasm/; revision=709
Peter Johnson [Tue, 24 Sep 2002 18:35:51 +0000 (18:35 -0000)]
Rename intnum_new_int to intnum_new_uint, and add new signed version of
intnum_new_int. Currently only just calls intnum_new_uint with a cast, but
eventually there may be a better way of handling signed numbers.
svn path=/trunk/yasm/; revision=708
Peter Johnson [Mon, 23 Sep 2002 16:29:34 +0000 (16:29 -0000)]
InternalError on unrecognized operations rather than just dropping them.
svn path=/trunk/yasm/; revision=707
Peter Johnson [Mon, 23 Sep 2002 16:25:39 +0000 (16:25 -0000)]
Create LTLIBOBJS from LIBOBJS and add to libyasm.
Change use of LDADD for libraries to LIBADD (automake warning).
svn path=/trunk/yasm/; revision=706
Peter Johnson [Mon, 23 Sep 2002 06:16:59 +0000 (06:16 -0000)]
Move yasm core files into a libyasm shared library (avoiding backlinking).
Some cleanups still needed; a few things in globals should really be somewhere
else, or named differently.
svn path=/trunk/yasm/; revision=705
Peter Johnson [Mon, 23 Sep 2002 05:44:19 +0000 (05:44 -0000)]
Move cur_parser from globals to main (as it's only used in main).
svn path=/trunk/yasm/; revision=704
Peter Johnson [Mon, 23 Sep 2002 03:00:49 +0000 (03:00 -0000)]
With dynamic linking, it's possible for the default object format to not load,
so error out with message instead of asserting.
svn path=/trunk/yasm/; revision=703
Peter Johnson [Sun, 18 Aug 2002 18:47:20 +0000 (18:47 -0000)]
Fix build breakage caused by not using sect access function.
svn path=/trunk/yasm/; revision=702
Peter Johnson [Sun, 18 Aug 2002 03:48:17 +0000 (03:48 -0000)]
Eliminate duplicate code for callbacks from expr_expand_labelequ() by moving
code and adding a resolve_precall function parameter (which caused cascading
changes in bytecode-related sources).
svn path=/trunk/yasm/; revision=701
Peter Johnson [Sat, 17 Aug 2002 05:08:53 +0000 (05:08 -0000)]
Support dynamic linking for objfmts, and make bin and dbg both dynamically
loadable.
svn path=/trunk/yasm/; revision=700
Peter Johnson [Fri, 16 Aug 2002 05:48:10 +0000 (05:48 -0000)]
Warning cleanups.
svn path=/trunk/yasm/; revision=699
Peter Johnson [Fri, 16 Aug 2002 02:45:10 +0000 (02:45 -0000)]
Re-add a hackish fix to set initial bits setting from objfmt for x86 arch.
svn path=/trunk/yasm/; revision=698
Peter Johnson [Wed, 14 Aug 2002 03:48:40 +0000 (03:48 -0000)]
The short forms (0x50+reg) of push/pop reg should be selected before the long
(0xFF, ModRM) forms.
svn path=/trunk/yasm/; revision=697
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