X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fincludes%2FmkNativeHdr.c;h=8bf707bf3633cf1533da1bbdeadf9f83cf55cc93;hb=01e0ae9952d48cbb127849405ac4d7212254604a;hp=f89a22dadd45f1ec195a8da6ba83ae14920d0644;hpb=b72390e9f9984555c9b119af4aa2acea79798870;p=ghc-hetmet.git diff --git a/ghc/includes/mkNativeHdr.c b/ghc/includes/mkNativeHdr.c index f89a22d..8bf707b 100644 --- a/ghc/includes/mkNativeHdr.c +++ b/ghc/includes/mkNativeHdr.c @@ -1,5 +1,5 @@ /* -------------------------------------------------------------------------- - * $Id: mkNativeHdr.c,v 1.4 2000/05/15 14:44:42 simonmar Exp $ + * $Id: mkNativeHdr.c,v 1.10 2002/07/21 11:46:34 panne Exp $ * * (c) The GHC Team, 1992-1998 * @@ -9,6 +9,8 @@ #include "Stg.h" +#include + #define OFFSET(table, x) ((StgUnion *) &(x) - (StgUnion *) (&table)) #define OFFSET_R1 OFFSET(RegTable, RegTable.rR1) @@ -35,15 +37,29 @@ #define OFFSET_HpLim OFFSET(RegTable, RegTable.rHpLim) #define OFFSET_CurrentTSO OFFSET(RegTable, RegTable.rCurrentTSO) #define OFFSET_CurrentNursery OFFSET(RegTable, RegTable.rCurrentNursery) +#define OFFSET_HpAlloc OFFSET(RegTable, RegTable.rHpAlloc) + +#define FUN_OFFSET(sym) ((StgPtr)&cap.f.sym - (StgPtr)&cap.r) + +#define OFFSET_stgChk0 FUN_OFFSET(stgChk0) +#define OFFSET_stgChk1 FUN_OFFSET(stgChk1) +#define OFFSET_stgGCEnter1 FUN_OFFSET(stgGCEnter1) +#define OFFSET_stgUpdatePAP FUN_OFFSET(stgUpdatePAP) + +#define OFFW_Capability_r OFFSET(cap, cap.r) #define TSO_SP OFFSET(tso, tso.sp) -#define TSO_SPLIM OFFSET(tso, tso.splim) #define TSO_SU OFFSET(tso, tso.su) +#define TSO_STACK OFFSET(tso, tso.stack) #define BDESCR_START OFFSET(bd, bd.start) #define BDESCR_FREE OFFSET(bd, bd.free) +#define BDESCR_BLOCKS OFFSET(bd, bd.blocks) StgRegTable RegTable; + +Capability cap; + StgTSO tso; bdescr bd; @@ -80,6 +96,16 @@ main() printf("#define OFFSET_HpLim %d\n", OFFSET_HpLim); printf("#define OFFSET_CurrentTSO %d\n", OFFSET_CurrentTSO); printf("#define OFFSET_CurrentNursery %d\n", OFFSET_CurrentNursery); + printf("#define OFFSET_HpAlloc %d\n", OFFSET_HpAlloc); + + printf("#define OFFSET_stgChk0 (%d)\n", OFFSET_stgChk0); + printf("#define OFFSET_stgChk1 (%d)\n", OFFSET_stgChk1); + printf("#define OFFSET_stgGCEnter1 (%d)\n", OFFSET_stgGCEnter1); + printf("#define OFFSET_stgUpdatePAP (%d)\n", OFFSET_stgUpdatePAP); + + printf("\n-- Offset of the .r (StgRegTable) field in a Capability\n"); + + printf("#define OFFW_Capability_r (%d)\n", OFFW_Capability_r); printf("\n-- Storage Manager offsets for the Native Code Generator\n"); @@ -87,12 +113,13 @@ main() printf("#define TSO_SP %d\n", TSO_SP); printf("#define TSO_SU %d\n", TSO_SU); - printf("#define TSO_SPLIM %d\n", TSO_SPLIM); + printf("#define TSO_STACK %d\n", TSO_STACK); printf("\n-- Block descriptor offsets for the Native Code Generator\n"); printf("#define BDESCR_START %d\n", BDESCR_START); printf("#define BDESCR_FREE %d\n", BDESCR_FREE); + printf("#define BDESCR_BLOCKS %d\n", BDESCR_BLOCKS); printf("\n-- FILE size for the Native Code Generator\n");