svn commit: r2028 - in trunk/yasm: libyasm modules/arch/x86 modules/arch/x86/tests modules/parsers/nasm

peter at tortall.net peter at tortall.net
Sat Jan 19 00:59:20 PST 2008


Author: peter
Date: Sat Jan 19 00:59:19 2008
New Revision: 2028

Added:
   trunk/yasm/modules/arch/x86/tests/jmpfar.asm
   trunk/yasm/modules/arch/x86/tests/jmpfar.hex
   trunk/yasm/modules/arch/x86/tests/segoff-err.asm
   trunk/yasm/modules/arch/x86/tests/segoff-err.errwarn
Modified:
   trunk/yasm/libyasm/insn.c
   trunk/yasm/libyasm/insn.h
   trunk/yasm/modules/arch/x86/tests/Makefile.inc
   trunk/yasm/modules/arch/x86/tests/farbasic.asm
   trunk/yasm/modules/arch/x86/tests/segoff.asm
   trunk/yasm/modules/arch/x86/tests/segoff.hex
   trunk/yasm/modules/arch/x86/x86id.c
   trunk/yasm/modules/objfmts/bin/tests/bin-farabs.asm
   trunk/yasm/modules/objfmts/bin/tests/bin-farabs.hex
   trunk/yasm/modules/parsers/nasm/nasm-parse.c
Changeset:
   http://www.tortall.net/projects/yasm/changeset/2028

Log:
Make jmp with seg:off equ behave the same as NASM.
Formerly:
  foo equ 1:2
  jmp foo
would result in a far jump.  Now, an explicit "far" is required:
  jmp far foo
to generate a far jump.

In addition, the direct use of seg:off in immediates and effective
addresses will result in an error; the use of EQU'ed seg:off values
is still legal (and will still result in just the offset).  This
behavior is more sane and also matches NASM behavior.
Thus:
  foo equ 1:2
  mov ax, foo   ; okay, just 2
  mov ax, [foo] ; okay, just 2
  mov ax, 1:2   ; illegal
  mov ax, [1:2] ; illegal



More information about the yasm-cvs mailing list