Peter Johnson
d6dd56e1eb
Add parsers/nasm automated tests.
...
svn path=/trunk/yasm/; revision=735
22 years ago
Peter Johnson
2368686527
Add automated arch/x86 tests. Some were moved from tests/nasm, others are new.
...
svn path=/trunk/yasm/; revision=734
22 years ago
Peter Johnson
7b4d90d981
Create a common out_test.sh test script to be used by a variety of tests.
...
Rename objfmts/bin/tests/*.bin.hx to *.hex to fit better in the common usage.
svn path=/trunk/yasm/; revision=733
22 years ago
Peter Johnson
015f373d32
x86_bc_resolve_insn(): If x86_expr_checkea fails, return not only
...
BC_RESOLVE_UNKNOWN_LEN but also BC_RESOLVE_ERROR so that a spurious circular
reference detected is not output from the basic optimizer.
svn path=/trunk/yasm/; revision=732
22 years ago
Peter Johnson
2252b6215b
Increase strictness of EA part of lds family (e.g. so no size specifier is
...
legal).
svn path=/trunk/yasm/; revision=731
22 years ago
Peter Johnson
49796c2b11
Fix a major bug: after switching sections, prev_bc was always being set to
...
NULL, causing any labels at that point to point to the start of the section
instead of the current position!
svn path=/trunk/yasm/; revision=730
22 years ago
Peter Johnson
e4411d414d
Make bcs_last() a fully visible function rather than a bc-int macro.
...
svn path=/trunk/yasm/; revision=729
22 years ago
Peter Johnson
de3fb86f35
expr_level_op(): Pull up IDENT-EXPR as well as EXPR-IDENT subtrees.
...
expr_level_tree(): Call recursively after calling expr_xform_bc_dist instead
of just calling expr_level_op, which wasn't simplifying the whole tree
properly.
svn path=/trunk/yasm/; revision=728
22 years ago
Peter Johnson
3466293ed7
bc_tobytes(): Check for multiple of 0 and return with bufsize of 0.
...
svn path=/trunk/yasm/; revision=727
22 years ago
Peter Johnson
79326b3d29
EQU's should not affect local label mechanism.
...
svn path=/trunk/yasm/; revision=726
22 years ago
Peter Johnson
46c26f12a7
Fix incorrect invalidation of [eax+ebx+ecx-eax] and others like it.
...
svn path=/trunk/yasm/; revision=725
22 years ago
Peter Johnson
b3e9ae6254
Don't fully simplify effective addresses before trying to determine their
...
registers.
svn path=/trunk/yasm/; revision=724
22 years ago
Peter Johnson
6591a155d0
Check for circular equ references (Bug#8).
...
svn path=/trunk/yasm/; revision=723
22 years ago
Peter Johnson
bd5d6b2f9d
Add missing files: x86id.c, src/section.c, src/arch/x86/x86arch.c.
...
svn path=/trunk/yasm/; revision=722
22 years ago
Peter Johnson
3420509d65
x86_bc_resolve_jmprel(): Delete unused variable 'target'.
...
svn path=/trunk/yasm/; revision=721
22 years ago
Peter Johnson
45d866ace8
bin_objfmt_section_data_print(): Fix warning/bug in fprintf call.
...
svn path=/trunk/yasm/; revision=720
22 years ago
Peter Johnson
a5a1a1f938
Update to gettext-0.11.5.
...
svn path=/trunk/yasm/; revision=719
22 years ago
Peter Johnson
a3a9fd2aa0
Completely revamp how label resolution is done (part of Bug#6). Now calculates
...
/distances/ between bytecodes in a section using bc_calc_dist() functions (a
"typical" one is provided for most occasions). expr_expand_labelequ() is gone,
as its functionality is integrated into expr_simplify(). Currently these
changes break most bin objfmt output, as it doesn't know how to resolve
absolute labels yet. Also, very preliminary expr support for :, SEG, and WRT
operators has been added (part of Bug#2). Several other minor bug fixes.
svn path=/trunk/yasm/; revision=718
22 years ago
Peter Johnson
c40005c223
Update comment for sym_table variable.
...
svn path=/trunk/yasm/; revision=717
22 years ago
Peter Johnson
f5f92a9d52
PSHUFW has 3 operands, not 2 (typo in num_operands value).
...
svn path=/trunk/yasm/; revision=716
22 years ago
Peter Johnson
99818a7010
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
22 years ago
Peter Johnson
e1107f96a2
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
22 years ago
Peter Johnson
302c7215b5
RET is a form of RETNF.
...
svn path=/trunk/yasm/; revision=713
22 years ago
Peter Johnson
c1b04966ef
Fix lexing bug for XMM[0-7] (wrong character used to get register index).
...
svn path=/trunk/yasm/; revision=712
22 years ago
Peter Johnson
ddb25b6aa7
Declare shifted constants unsigned longs (with UL) before shifting, to
...
increase portability.
svn path=/trunk/yasm/; revision=711
22 years ago
Peter Johnson
622e01725a
The data argument to section_data_print() can never be null.
...
svn path=/trunk/yasm/; revision=710
22 years ago
Peter Johnson
e9e00fcef2
errwarn_new(): Fix bug that could cause infinite loops.
...
svn path=/trunk/yasm/; revision=709
22 years ago
Peter Johnson
090a25b8d4
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
22 years ago
Peter Johnson
4f8f5b128f
InternalError on unrecognized operations rather than just dropping them.
...
svn path=/trunk/yasm/; revision=707
22 years ago
Peter Johnson
42e0002db5
Create LTLIBOBJS from LIBOBJS and add to libyasm.
...
Change use of LDADD for libraries to LIBADD (automake warning).
svn path=/trunk/yasm/; revision=706
22 years ago
Peter Johnson
b7a8747102
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
22 years ago
Peter Johnson
ba294928c6
Move cur_parser from globals to main (as it's only used in main).
...
svn path=/trunk/yasm/; revision=704
22 years ago
Peter Johnson
96f811d752
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
22 years ago
Peter Johnson
7849f57e48
Fix build breakage caused by not using sect access function.
...
svn path=/trunk/yasm/; revision=702
23 years ago
Peter Johnson
c5ef1bf2dc
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
23 years ago
Peter Johnson
4a4fd6be7d
Support dynamic linking for objfmts, and make bin and dbg both dynamically
...
loadable.
svn path=/trunk/yasm/; revision=700
23 years ago
Peter Johnson
582c5ea3d7
Warning cleanups.
...
svn path=/trunk/yasm/; revision=699
23 years ago
Peter Johnson
5f02a6f596
Re-add a hackish fix to set initial bits setting from objfmt for x86 arch.
...
svn path=/trunk/yasm/; revision=698
23 years ago
Peter Johnson
97ad3394e2
The short forms (0x50+reg) of push/pop reg should be selected before the long
...
(0xFF, ModRM) forms.
svn path=/trunk/yasm/; revision=697
23 years ago
Peter Johnson
ed2bbe525c
Fix %line handling.
...
svn path=/trunk/yasm/; revision=696
23 years ago
Peter Johnson
c0eee0f5b8
Remove lemon. We aren't using it, it doesn't need to be in our source tree.
...
svn path=/trunk/yasm/; revision=695
23 years ago
Peter Johnson
320a83294e
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
23 years ago
Peter Johnson
9390dd2bbb
Add MMX/SSE2 instructions.
...
svn path=/trunk/yasm/; revision=693
23 years ago
Peter Johnson
a2a986add9
Add segreg moves.
...
svn path=/trunk/yasm/; revision=692
23 years ago
Peter Johnson
efafc7c6fb
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
23 years ago
Peter Johnson
19569a8d6a
Allow one-digit hex-constants of the form "0h".
...
svn path=/trunk/yasm/; revision=690
23 years ago
Peter Johnson
ca721cf125
Implement relative jumps and calls.
...
svn path=/trunk/yasm/; revision=689
23 years ago
Peter Johnson
e75b947a09
Fix writing of PC-relative values (broken in rev. 1.9).
...
svn path=/trunk/yasm/; revision=688
23 years ago
Peter Johnson
8495e174cc
x86_parse_targetmod enum should start with value 1, not 0.
...
svn path=/trunk/yasm/; revision=687
23 years ago
Peter Johnson
c2e982f901
Take opersize as an input for x86_bc_new_jmprel().
...
svn path=/trunk/yasm/; revision=686
23 years ago