X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fincludes%2FmkNativeHdr.c;h=b1500d53979e51c2e8d9f0f703fcb5f9b10c05ea;hb=0b447a84debf4d99aa089ca5b25ab5554ef8411c;hp=de04c8c623ab117749d8f3483a74fc2efe60c899;hpb=438596897ebbe25a07e1c82085cfbc5bdb00f09e;p=ghc-hetmet.git diff --git a/ghc/includes/mkNativeHdr.c b/ghc/includes/mkNativeHdr.c index de04c8c..b1500d5 100644 --- a/ghc/includes/mkNativeHdr.c +++ b/ghc/includes/mkNativeHdr.c @@ -1,5 +1,5 @@ /* -------------------------------------------------------------------------- - * $Id: mkNativeHdr.c,v 1.2 1998/12/02 13:21:50 simonm Exp $ + * $Id: mkNativeHdr.c,v 1.7 2001/12/12 18:12:46 sewardj Exp $ * * (c) The GHC Team, 1992-1998 * @@ -19,6 +19,8 @@ #define OFFSET_R6 OFFSET(RegTable, RegTable.rR6) #define OFFSET_R7 OFFSET(RegTable, RegTable.rR7) #define OFFSET_R8 OFFSET(RegTable, RegTable.rR8) +#define OFFSET_R9 OFFSET(RegTable, RegTable.rR9) +#define OFFSET_R10 OFFSET(RegTable, RegTable.rR10) #define OFFSET_F1 OFFSET(RegTable, RegTable.rF1) #define OFFSET_F2 OFFSET(RegTable, RegTable.rF2) #define OFFSET_F3 OFFSET(RegTable, RegTable.rF3) @@ -31,13 +33,32 @@ #define OFFSET_SpLim OFFSET(RegTable, RegTable.rSpLim) #define OFFSET_Hp OFFSET(RegTable, RegTable.rHp) #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) StgRegTable RegTable; + +Capability cap; + StgTSO tso; +bdescr bd; int main() @@ -54,6 +75,8 @@ main() printf("#define OFFSET_R6 %d\n", OFFSET_R6); printf("#define OFFSET_R7 %d\n", OFFSET_R7); printf("#define OFFSET_R8 %d\n", OFFSET_R8); + printf("#define OFFSET_R9 %d\n", OFFSET_R9); + printf("#define OFFSET_R10 %d\n", OFFSET_R10); printf("#define OFFSET_F1 %d\n", OFFSET_F1); printf("#define OFFSET_F2 %d\n", OFFSET_F2); printf("#define OFFSET_F3 %d\n", OFFSET_F3); @@ -68,6 +91,18 @@ main() printf("#define OFFSET_SpLim %d\n", OFFSET_SpLim); printf("#define OFFSET_Hp %d\n", OFFSET_Hp); 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"); @@ -75,7 +110,12 @@ 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("\n-- FILE size for the Native Code Generator\n");