/* -----------------------------------------------------------------------------
- * $Id: HeapStackCheck.hc,v 1.17 2001/07/06 14:11:38 simonmar Exp $
+ * $Id: HeapStackCheck.hc,v 1.18 2001/11/08 12:46:31 simonmar Exp $
*
* (c) The GHC Team, 1998-1999
*
#include "Storage.h" /* for CurrentTSO */
#include "StgRun.h" /* for StgReturn and register saving */
#include "Schedule.h" /* for context_switch */
-#include "HeapStackCheck.h"
/* Stack/Heap Check Failure
* ------------------------
#define GC_GENERIC \
if (Hp > HpLim) { \
- if (ExtendNursery(Hp,HpLim)) { \
+ Hp -= HpAlloc; \
+ if (HpAlloc <= BLOCK_SIZE_W && ExtendNursery(Hp,HpLim)) {\
if (context_switch) { \
R1.i = ThreadYielding; \
} else { \
#define GC_ENTER \
if (Hp > HpLim) { \
- if (ExtendNursery(Hp,HpLim)) { \
+ Hp -= HpAlloc; \
+ if (HpAlloc <= BLOCK_SIZE_W && ExtendNursery(Hp,HpLim)) {\
if (context_switch) { \
R1.i = ThreadYielding; \
} else { \
There are canned sequences for 'n' pointer values in registers.
-------------------------------------------------------------------------- */
-EXTFUN(stg_gc_enter_1)
+EXTFUN(__stg_gc_enter_1)
{
FB_
Sp -= 1;
/*- 0 Regs -------------------------------------------------------------------*/
-EXTFUN(stg_chk_0)
+EXTFUN(__stg_chk_0)
{
FB_
Sp -= 1;
/*- 1 Reg --------------------------------------------------------------------*/
-EXTFUN(stg_chk_1)
+EXTFUN(__stg_chk_1)
{
FB_
Sp -= 2;