X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=rts%2FLinkerInternals.h;h=f081e62894bdd34769fba8346b9dc4db5af53026;hp=07d6334c7f4fab7d3299c6548cf9824c1f1a28ea;hb=842e9d6628a27cf1f420d53f6a5901935dc50c54;hpb=0065d5ab628975892cea1ec7303f968c3338cbe1;ds=sidebyside diff --git a/rts/LinkerInternals.h b/rts/LinkerInternals.h index 07d6334..f081e62 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. @@ -97,10 +102,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;