]> granicus.if.org Git - yasm/commit
Fix major bug related to multiple handling. Unfortunately this slows down
authorPeter Johnson <peter@tortall.net>
Thu, 11 May 2006 07:00:33 +0000 (07:00 -0000)
committerPeter Johnson <peter@tortall.net>
Thu, 11 May 2006 07:00:33 +0000 (07:00 -0000)
commitfe09480565337c7d8d61b31936d68e7ff4d1cedd
treef9869416f1182ac4d094c7a9557faa83c3ca4879
parent58921419c23a22843fea7e34f23c5454727b810a
Fix major bug related to multiple handling.  Unfortunately this slows down
bytecode multiple output significantly, but this way handles generating
relocations correctly (otherwise extern foo; times 5 dd foo doesn't work!).

* bytecode.h (yasm_bc_tobytes): Remove multiple output parameter.
(yasm_bc_get_multiple): New.
* bytecode.c (yasm_bc_tobytes): Update to iterate through multiple here.
(yasm_bc_get_multiple): New.
* xdf-objfmt.c, elf-objfmt.c, bin-objfmt.c, coff-objfmt.c: Don't iterate
through multiple here.
* nasm-listfmt.c: Use yasm_bc_get_multiple() to get multiple instead of
yasm_bc_tobytes().

* bytecode.pxi: Update.

* tests/win32-relocovfl.asm: Tests both this and [1534] but generates too
huge of a file (3MB) to be put into the automated tests.

svn path=/trunk/yasm/; revision=1536
libyasm/bytecode.c
libyasm/bytecode.h
modules/listfmts/nasm/nasm-listfmt.c
modules/objfmts/bin/bin-objfmt.c
modules/objfmts/coff/coff-objfmt.c
modules/objfmts/elf/elf-objfmt.c
modules/objfmts/xdf/xdf-objfmt.c
tests/win32-relocovfl.asm [new file with mode: 0644]
tools/python-yasm/bytecode.pxi