svn commit: r1634 - in trunk/yasm: libyasm modules/arch/x86 modules/objfmts/bin/tests modules/objfmts/elf modules/objfmts/elf/tests
peter at tortall.net
peter at tortall.net
Fri Sep 29 00:18:48 PDT 2006
Author: peter
Date: Fri Sep 29 00:18:45 2006
New Revision: 1634
Added:
trunk/yasm/modules/objfmts/bin/tests/bin-farabs.asm
trunk/yasm/modules/objfmts/bin/tests/bin-farabs.hex
trunk/yasm/modules/objfmts/elf/tests/elfequabs.asm
trunk/yasm/modules/objfmts/elf/tests/elfequabs.hex
Modified:
trunk/yasm/libyasm/expr-int.h
trunk/yasm/libyasm/expr.c
trunk/yasm/libyasm/expr.h
trunk/yasm/libyasm/symrec.c
trunk/yasm/libyasm/symrec.h
trunk/yasm/libyasm/value.c
trunk/yasm/libyasm/value.h
trunk/yasm/modules/arch/x86/x86arch.h
trunk/yasm/modules/arch/x86/x86bc.c
trunk/yasm/modules/arch/x86/x86expr.c
trunk/yasm/modules/arch/x86/x86id.c
trunk/yasm/modules/objfmts/bin/bin-objfmt.c
trunk/yasm/modules/objfmts/bin/tests/Makefile.inc
trunk/yasm/modules/objfmts/elf/elf-objfmt.c
trunk/yasm/modules/objfmts/elf/elf.c
trunk/yasm/modules/objfmts/elf/tests/Makefile.inc
trunk/yasm/modules/objfmts/elf/tests/elfabssect.asm
trunk/yasm/modules/objfmts/elf/tests/elfabssect.hex
trunk/yasm/modules/objfmts/elf/tests/elfmanysym.hex
Changeset:
http://www.tortall.net/projects/yasm/changeset/1634
Log:
- Fix much brokenness in absolute value handling, particularly in regards to
PC-relative relocations (jumps and calls).
- Allow SEG:OFF to be used as just an offset portion (like NASM does).
- Labels in absolute sections that are declared global are given the correct
absolute value in the symbol table.
One difference from NASM:
label equ 0040h:001eh
jmp label
in NASM means the same as:
jmp 001eh (a near jump)
but yasm will treat this the same as:
jmp 0040h:001eh (a far jump)
I'm still not completely happy with this implementation, but it's workable
and fixes all the bugs I've found so far in absolute handling.
More information about the yasm-cvs
mailing list