X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fincludes%2FRegs.h;h=03942578146f02f4fd173acd2b878eef5be62147;hb=f2506c8c109dfbf063fa2a239ea95c8f8cd167f1;hp=c3252be46bf63ac2c226ee45e4a67764e04b7388;hpb=693550d93040439ac20d7ab3bfcaee8ca5b7e923;p=ghc-hetmet.git diff --git a/ghc/includes/Regs.h b/ghc/includes/Regs.h index c3252be..0394257 100644 --- a/ghc/includes/Regs.h +++ b/ghc/includes/Regs.h @@ -22,6 +22,7 @@ #ifndef REGS_H #define REGS_H +#include "gmp.h" // Needs MP_INT definition /* * This is the table that holds shadow-locations for all the STG @@ -87,11 +88,22 @@ typedef struct StgRegTable_ { StgPtr rHpLim; struct StgTSO_ *rCurrentTSO; struct step_ *rNursery; - struct bdescr_ *rCurrentNursery; + struct bdescr_ *rCurrentNursery; /* Hp/HpLim point into this block */ + struct bdescr_ *rCurrentAlloc; /* for allocation using allocate() */ StgWord rHpAlloc; /* number of *bytes* being allocated in heap */ + // rmp_tmp1..rmp_result2 are only used in SMP builds to avoid per-thread temps + // in bss, but currently always incldue here so we just run mkDerivedConstants once + StgInt rmp_tmp_w; + MP_INT rmp_tmp1; + MP_INT rmp_tmp2; + MP_INT rmp_result1; + MP_INT rmp_result2; #if defined(SMP) || defined(PAR) StgSparkPool rSparks; /* per-task spark pool */ #endif + StgWord rInHaskell; /* non-zero if we're in Haskell code */ + // If this flag is set, we are running Haskell code. Used to detect + // uses of 'foreign import unsafe' that should be 'safe'. } StgRegTable;