/* -----------------------------------------------------------------------------
- * $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
*
#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; \
------------------------------------------------------------------------- */
#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) \
{ \
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; \
}
/* -----------------------------------------------------------------------------
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 */