[project @ 2002-12-05 23:49:43 by mthomas]
[ghc-hetmet.git] / ghc / rts / HeapStackCheck.hc
index 63e09c9..f3882fe 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: HeapStackCheck.hc,v 1.22 2002/02/26 19:18:00 sof Exp $
+ * $Id: HeapStackCheck.hc,v 1.26 2002/03/02 17:43:44 sof Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
@@ -634,7 +634,7 @@ EXTFUN(stg_gc_seq_1)
    cases are covered below.
    -------------------------------------------------------------------------- */
 
-/*-- No regsiters live (probably a void return) ----------------------------- */
+/*-- No registers live (probably a void return) ----------------------------- */
 
 /* If we change the policy for thread startup to *not* remove the
  * return address from the stack, we can get rid of this little
@@ -685,6 +685,20 @@ EXTFUN(stg_gc_unpt_r1)
   FE_
 }
 
+/*-- Unboxed tuple return (unregisterised build only)------------------ */
+
+INFO_TABLE_SRT_BITMAP(stg_ut_1_0_unreg_info, stg_ut_1_0_unreg_ret, 0/*BITMAP*/, 
+                     0/*SRT*/, 0/*SRT_OFF*/, 0/*SRT_LEN*/, 
+                     RET_SMALL,, EF_, 0, 0);
+
+EXTFUN(stg_ut_1_0_unreg_ret)
+{
+  FB_
+  /* R1 is on the stack (*Sp) */
+  JMP_(ENTRY_CODE(Sp[1]));
+  FE_
+}
+
 /*-- R1 is unboxed -------------------------------------------------- */
 
 INFO_TABLE_SRT_BITMAP(stg_gc_unbx_r1_info, stg_gc_unbx_r1_ret, 1/*BITMAP*/,
@@ -1256,14 +1270,14 @@ FN_(stg_block_1)
  *      
  *       ret. addr
  *       ptr to MVar   (R1)
- *       stg_block_takemvar_ret
+ *       stg_block_takemvar_info
  *
  * Stack layout for a thread blocked in putMVar:
  *      
  *       ret. addr
  *       ptr to Value  (R2)
  *       ptr to MVar   (R1)
- *       stg_block_putmvar_ret
+ *       stg_block_putmvar_info
  *
  * See PrimOps.hc for a description of the workings of take/putMVar.
  * 
@@ -1287,7 +1301,7 @@ FN_(stg_block_takemvar)
   FB_
   Sp -= 2;
   Sp[1] = R1.w;
-  Sp[0] = (W_)&stg_block_takemvar_ret;
+  Sp[0] = (W_)&stg_block_takemvar_info;
   BLOCK_GENERIC;
   FE_
 }
@@ -1312,7 +1326,7 @@ FN_(stg_block_putmvar)
   Sp -= 3;
   Sp[2] = R2.w;
   Sp[1] = R1.w;
-  Sp[0] = (W_)&stg_block_putmvar_ret;
+  Sp[0] = (W_)&stg_block_putmvar_info;
   BLOCK_GENERIC;
   FE_
 }