StgTSOPtr t;
} StgUnion;
-// Urgh.. we don't know the size of an MP_INT here because we haven't
-// #included gmp.h. We should really autoconf this, but GMP may not
-// be available at ./configure time if we're building it (GMP) locally.
-#define MP_INT_WORDS 3
-
/*
* This is the table that holds shadow-locations for all the STG
* registers. The shadow locations are used when:
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 THREADED_RTS builds to
- // avoid per-thread temps in bss, but currently always incldue here
- // so we just run mkDerivedConstants once
- StgWord rmp_tmp_w[MP_INT_WORDS];
- StgWord rmp_tmp1[MP_INT_WORDS];
- StgWord rmp_tmp2[MP_INT_WORDS];
- StgWord rmp_result1[MP_INT_WORDS];
- StgWord rmp_result2[MP_INT_WORDS];
StgWord rRet; // holds the return code of the thread
} StgRegTable;
#define SAVE_SpLim (CurrentTSO->splim)
#define SAVE_Hp (BaseReg->rHp)
-#define SAVE_HpLim (BaseReg->rHpLim)
#define SAVE_CurrentTSO (BaseReg->rCurrentTSO)
#define SAVE_CurrentNursery (BaseReg->rCurrentNursery)
#endif
#if defined(REG_HpLim) && !defined(NO_GLOBAL_REG_DECLS)
-GLOBAL_REG_DECL(P_,HpLim,REG_HpLim)
+#error HpLim cannot be in a register
#else
#define HpLim (BaseReg->rHpLim)
#endif
-------------------------------------------------------------------------- */
-#define FunReg ((StgFunTable *)((void *)BaseReg - FIELD_OFFSET(struct PartCapability_, r)))
+#define FunReg ((StgFunTable *)((void *)BaseReg - STG_FIELD_OFFSET(struct PartCapability_, r)))
#define stg_EAGER_BLACKHOLE_info (FunReg->stgEagerBlackholeInfo)
#define stg_gc_enter_1 (FunReg->stgGCEnter1)
#define CALLER_RESTORE_Hp /* nothing */
#endif
-#ifdef CALLER_SAVES_HpLim
-#define CALLER_SAVE_HpLim SAVE_HpLim = HpLim;
-#define CALLER_RESTORE_HpLim HpLim = SAVE_HpLim;
-#else
-#define CALLER_SAVE_HpLim /* nothing */
-#define CALLER_RESTORE_HpLim /* nothing */
-#endif
-
#ifdef CALLER_SAVES_Base
#ifdef THREADED_RTS
#error "Can't have caller-saved BaseReg with THREADED_RTS"
CALLER_SAVE_Sp \
CALLER_SAVE_SpLim \
CALLER_SAVE_Hp \
- CALLER_SAVE_HpLim \
CALLER_SAVE_CurrentTSO \
CALLER_SAVE_CurrentNursery \
CALLER_SAVE_Base
CALLER_RESTORE_Sp \
CALLER_RESTORE_SpLim \
CALLER_RESTORE_Hp \
- CALLER_RESTORE_HpLim \
CALLER_RESTORE_CurrentTSO \
CALLER_RESTORE_CurrentNursery