X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FLinkerInternals.h;h=2ce7fbc7b145b447f18209358a76158b65f661a8;hb=c9aeb3c625b2a472270762d4c5896614cf886d53;hp=deb9af2d994cccee210195ee073cb8ea9fb20a5b;hpb=305c762e994fff4c47f22e8e2cc4940ee430d682;p=ghc-hetmet.git diff --git a/ghc/rts/LinkerInternals.h b/ghc/rts/LinkerInternals.h index deb9af2..2ce7fbc 100644 --- a/ghc/rts/LinkerInternals.h +++ b/ghc/rts/LinkerInternals.h @@ -36,6 +36,18 @@ typedef } ProddableBlock; +/* Jump Islands are sniplets of machine code required for relative + * address relocations on the PowerPC. + */ +#ifdef powerpc_TARGET_ARCH +typedef struct { + short lis_r12, hi_addr; + short ori_r12_r12, lo_addr; + long mtctr_r12; + long bctr; +} ppcJumpIsland; +#endif + /* Top-level structure for an object module. One of these is allocated * for each object file in use. */ @@ -76,8 +88,8 @@ typedef struct _ObjectCode { unsigned int pltIndex; #endif -#ifdef darwin_TARGET_OS - char* jump_islands; +#ifdef powerpc_TARGET_ARCH + ppcJumpIsland *jump_islands; unsigned long island_start_symbol; unsigned long n_islands; #endif