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
22 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
22 years ago
Peter Johnson
4a4fd6be7d
Support dynamic linking for objfmts, and make bin and dbg both dynamically
...
loadable.
svn path=/trunk/yasm/; revision=700
22 years ago
Peter Johnson
582c5ea3d7
Warning cleanups.
...
svn path=/trunk/yasm/; revision=699
22 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
22 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
22 years ago
Peter Johnson
ed2bbe525c
Fix %line handling.
...
svn path=/trunk/yasm/; revision=696
22 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
22 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
22 years ago
Peter Johnson
9390dd2bbb
Add MMX/SSE2 instructions.
...
svn path=/trunk/yasm/; revision=693
22 years ago
Peter Johnson
a2a986add9
Add segreg moves.
...
svn path=/trunk/yasm/; revision=692
22 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
22 years ago
Peter Johnson
19569a8d6a
Allow one-digit hex-constants of the form "0h".
...
svn path=/trunk/yasm/; revision=690
22 years ago
Peter Johnson
ca721cf125
Implement relative jumps and calls.
...
svn path=/trunk/yasm/; revision=689
22 years ago
Peter Johnson
e75b947a09
Fix writing of PC-relative values (broken in rev. 1.9).
...
svn path=/trunk/yasm/; revision=688
22 years ago
Peter Johnson
8495e174cc
x86_parse_targetmod enum should start with value 1, not 0.
...
svn path=/trunk/yasm/; revision=687
22 years ago
Peter Johnson
c2e982f901
Take opersize as an input for x86_bc_new_jmprel().
...
svn path=/trunk/yasm/; revision=686
22 years ago
Peter Johnson
2c090517fc
Flatten x86_targetval into x86_new_jmprel_data, as the former is no longer used
...
in the parser.
svn path=/trunk/yasm/; revision=685
22 years ago
Peter Johnson
cd573321b3
Finish all instructions except for relative jumps, mov segreg, MMX, SSE, and
...
SSE2.
svn path=/trunk/yasm/; revision=684
22 years ago
Peter Johnson
eb067621cf
Added rest of floating point instructions. Needed to add new action to
...
add to opcode byte 1.
svn path=/trunk/yasm/; revision=683
22 years ago
Peter Johnson
b630a6768b
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
22 years ago
Peter Johnson
70442d8b7f
Make "TO" a x86 targetmod.
...
svn path=/trunk/yasm/; revision=681
22 years ago
Peter Johnson
e320005990
Don't include malloc.h. It's deprecated on most systems.
...
svn path=/trunk/yasm/; revision=680
22 years ago
Peter Johnson
aacbbef7f9
Fix pointer comparison. Should be checking for == NULL, not <0.
...
svn path=/trunk/yasm/; revision=679
22 years ago
Peter Johnson
d6cee4db08
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
22 years ago
Peter Johnson
ef8f221f24
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
22 years ago
Peter Johnson
0af7326e75
Add lea, l?s, and arithmetic instructions. Arithmetic instructions needed
...
two additional actions: signed immediate and spare+ea.
svn path=/trunk/yasm/; revision=676
22 years ago
Peter Johnson
e1eae9bae5
Add xchg, in, out. in and out required operand type Dreg (DL/DX/EDX) to be
...
added.
svn path=/trunk/yasm/; revision=675
22 years ago
Peter Johnson
ce0d675524
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
22 years ago
Peter Johnson
4c6d5575dc
Run through cleanup.pl to get rid of unused labels.
...
svn path=/trunk/yasm/; revision=673
22 years ago