X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FLinkerInternals.h;h=561a224a09de96afa86f2e44e46abe52c6572a7a;hb=27de38efce6d73d2a0209f803cfa98c82773e773;hp=07d6334c7f4fab7d3299c6548cf9824c1f1a28ea;hpb=0065d5ab628975892cea1ec7303f968c3338cbe1;p=ghc-hetmet.git diff --git a/rts/LinkerInternals.h b/rts/LinkerInternals.h index 07d6334..561a224 100644 --- a/rts/LinkerInternals.h +++ b/rts/LinkerInternals.h @@ -42,14 +42,19 @@ typedef /* Jump Islands are sniplets of machine code required for relative * address relocations on the PowerPC. */ -#ifdef powerpc_HOST_ARCH typedef struct { - short lis_r12, hi_addr; - short ori_r12_r12, lo_addr; - long mtctr_r12; - long bctr; -} ppcJumpIsland; +#ifdef powerpc_HOST_ARCH + struct { + short lis_r12, hi_addr; + short ori_r12_r12, lo_addr; + long mtctr_r12; + long bctr; + } jumpIsland; +#elif x86_64_TARGET_ARCH + uint64_t addr; + uint8_t jumpIsland[6]; #endif +} SymbolExtra; /* Top-level structure for an object module. One of these is allocated * for each object file in use. @@ -80,9 +85,6 @@ typedef struct _ObjectCode { list. */ Section* sections; - /* A private hash table for local symbols. */ - HashTable* lochash; - /* Allow a chain of these things */ struct _ObjectCode * next; @@ -97,10 +99,10 @@ typedef struct _ObjectCode { unsigned int pltIndex; #endif -#ifdef powerpc_HOST_ARCH - ppcJumpIsland *jump_islands; - unsigned long island_start_symbol; - unsigned long n_islands; +#if powerpc_HOST_ARCH || x86_64_HOST_ARCH + SymbolExtra *symbol_extras; + unsigned long first_symbol_extra; + unsigned long n_symbol_extras; #endif } ObjectCode;