[project @ 2002-12-12 15:03:42 by simonmar]
[ghc-hetmet.git] / ghc / includes / Updates.h
index d203324..add8b26 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: Updates.h,v 1.25 2001/11/08 12:46:31 simonmar Exp $
+ * $Id: Updates.h,v 1.28 2002/12/11 15:36:40 simonmar Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
@@ -39,7 +39,7 @@
 #define UPD_REAL_IND(updclosure, heapptr)                              \
    {                                                                   \
        const StgInfoTable *info;                                       \
-       if (Bdescr((P_)updclosure)->back != (bdescr *)BaseReg) {        \
+       if (Bdescr((P_)updclosure)->u.back != (bdescr *)BaseReg) {      \
                info = LOCK_CLOSURE(updclosure);                        \
        } else {                                                        \
                info = updclosure->header.info;                         \
@@ -178,12 +178,15 @@ extern void awakenBlockedQueue(StgTSO *q);
    ------------------------------------------------------------------------- */
 
 #if defined(PROFILING)
-#define PUSH_STD_CCCS(frame) frame->header.prof.ccs = CCCS
+// frame->header.prof.hp.rs = NULL (or frame-header.prof.hp.ldvw = 0) is unnecessary 
+// because it is not used anyhow.
+#define PUSH_STD_CCCS(frame) (frame->header.prof.ccs = CCCS)
 #else
 #define PUSH_STD_CCCS(frame)
 #endif
 
 extern DLL_IMPORT_RTS const StgPolyInfoTable stg_upd_frame_info; 
+extern DLL_IMPORT_RTS const StgPolyInfoTable stg_noupd_frame_info; 
 
 #define PUSH_UPD_FRAME(target, Sp_offset)                      \
        {                                                       \
@@ -191,10 +194,8 @@ extern DLL_IMPORT_RTS const StgPolyInfoTable stg_upd_frame_info;
                TICK_UPDF_PUSHED(target, GET_INFO((StgClosure*)target)); \
                __frame = (StgUpdateFrame *)(Sp + (Sp_offset)) - 1; \
                SET_INFO(__frame, (StgInfoTable *)&stg_upd_frame_info);   \
-               __frame->link = Su;                             \
                __frame->updatee = (StgClosure *)(target);      \
                PUSH_STD_CCCS(__frame);                         \
-               Su = __frame;                                   \
        }
 
 /* -----------------------------------------------------------------------------
@@ -239,16 +240,4 @@ extern void newCAF(StgClosure*);
    Update-related prototypes
    -------------------------------------------------------------------------- */
 
-EXTFUN_RTS(__stg_update_PAP);
-
-DLL_IMPORT_RTS extern STGFUN(stg_upd_frame_entry);
-
-extern DLL_IMPORT_RTS const StgInfoTable stg_PAP_info;
-DLL_IMPORT_RTS STGFUN(stg_PAP_entry);
-
-extern DLL_IMPORT_RTS const StgInfoTable stg_AP_UPD_info;
-DLL_IMPORT_RTS STGFUN(stg_AP_UPD_entry);
-
-extern DLL_IMPORT_RTS const StgInfoTable stg_raise_info;
-
 #endif /* UPDATES_H */