[project @ 1999-03-17 16:25:07 by sewardj]
[ghc-hetmet.git] / ghc / rts / HeapStackCheck.hc
index ff31c74..7baf7aa 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: HeapStackCheck.hc,v 1.4 1999/03/16 13:20:15 simonm Exp $
+ * $Id: HeapStackCheck.hc,v 1.6 1999/03/17 16:25:07 sewardj Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
@@ -798,6 +798,10 @@ FN_(stg_gen_hp)
   FE_
 }        
 
+/* -----------------------------------------------------------------------------
+   Yields
+   -------------------------------------------------------------------------- */
+
 FN_(stg_gen_yield)
 {
   FB_
@@ -806,10 +810,23 @@ FN_(stg_gen_yield)
   FE_
 }
 
+INFO_TABLE_SRT_BITMAP(stg_yield_noregs_info, stg_yield_noregs_ret, 0/*BITMAP*/, 
+                     0/*SRT*/, 0/*SRT_OFF*/, 0/*SRT_LEN*/, 
+                     RET_SMALL, const, EF_, 0, 0);
+
+FN_(stg_yield_noregs_ret)
+{
+  FB_
+  JMP_(ENTRY_CODE(Sp[0]));
+  FE_
+}
+
 FN_(stg_yield_noregs)
 {
   FB_
-  YIELD_GENERIC  
+  Sp--;
+  Sp[0] = (W_)&stg_yield_noregs_info;
+  YIELD_GENERIC;
   FE_
 }
 
@@ -821,6 +838,10 @@ FN_(stg_yield_to_Hugs)
   FE_
 }
 
+/* -----------------------------------------------------------------------------
+   Blocks
+   -------------------------------------------------------------------------- */
+
 FN_(stg_gen_block)
 {
   FB_