New backend interface - assembler internals #1
commita77692b34dea97b4681b102ac9c94f5b1b2f000f
authorH. Peter Anvin <hpa@linux.intel.com>
Tue, 20 Sep 2016 21:04:33 +0000 (20 14:04 -0700)
committerH. Peter Anvin <hpa@linux.intel.com>
Tue, 20 Sep 2016 23:05:09 +0000 (20 16:05 -0700)
tree46391c7aaf6d3f3b55840e07f02a43642e978b71
parent9938bb633348316122789dbab56951e67ed7a7b9
New backend interface - assembler internals #1

This provides the first pass of assembler internals for a new, richer,
backend interface.  It also reduces the amount of data carried in
function parameters inside the assembler.

The new interface is in the form of a structure, which will contain
substantially more information that the previous interface.  This will
allow things like ELF GOT32X and Mach-O X86_64_RELOC_BRANCH
relocations to be reliably emitted.

This provides the initial set of structures.  Future additions should
include:

1. Pass down the base symbol, if any.
2. Segments should be a structure rather than a number, and the
   horrible hack of adding one for a segment reference should be
   removed (OUT_SEGMENT replaces it.)

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
asm/assemble.c
asm/listing.c
asm/listing.h
asm/nasm.c
include/nasm.h