# HG changeset patch # User lost # Date 1241887157 0 # Node ID 7803d2d099936fc1d6112bb2b08557af86009229 # Parent 271c0ef9ea609a148124b1fadb9bb3430bda9a7d Allow 8 bit immediate operands to be external references diff -r 271c0ef9ea60 -r 7803d2d09993 ChangeLog --- a/ChangeLog Sat May 09 16:32:47 2009 +0000 +++ b/ChangeLog Sat May 09 16:39:17 2009 +0000 @@ -17,6 +17,7 @@ generated by lwasm [LWASM] [b] Fixed segfault in "extern" pseudo op and allowed a symbol list as the operand just like "export" [LWASM] +[+] 8 bit immediate operands can now be external references [LWASM] Version 2.3 diff -r 271c0ef9ea60 -r 7803d2d09993 lwasm/insn_gen.c --- a/lwasm/insn_gen.c Sat May 09 16:32:47 2009 +0000 +++ b/lwasm/insn_gen.c Sat May 09 16:39:17 2009 +0000 @@ -159,7 +159,11 @@ if (r != 0) rval = 0; if (r == 1 && as -> passnum == 2) - register_error(as, l, 2, "Illegal external or intersegment reference"); + { + l -> relocoff = as -> addr - l -> codeaddr; + l -> reloc8bit = 1; + } +// register_error(as, l, 2, "Illegal external or intersegment reference"); lwasm_emit(as, l, rval & 0xff); return; }