This code is required by the update interface which sits on top of the
storage manager interface (See \tr{SMupdate.lh}).
-Some of this stuff has been separated (correctly!) into StgThreads.lhc
-for version 0.23. Could someone (Hans?) bring us up to date, please!
-KH.
-
\begin{itemize}
\item Indirection entry code and info table.
\item Black Hole entry code and info table.
#endif
#endif
-EXTDATA(Nil_closure);
+EXTDATA(Prelude_Z91Z93_closure);
#if defined(TICKY_TICKY)
void PrintTickyInfo(STG_NO_ARGS);
FB_
# if 0
- if ( debug & 0x80 )
+ if ( RTSflags.GranFlags.debug & 0x80 )
(void) STGCALL4(int,(),fprintf,stderr,"GRAN_CHECK in BH_UPD_entry: Entered a `black hole' @ 0x%x (CurrentTSO @ 0x%x\n ",Node,CurrentTSO);
-#endif
+# endif
# if defined(GRAN)
- STGCALL0(void,(),GranSimBlock); /* Do this before losing its TSO_LINK */
+ /* Do this before losing its TSO_LINK */
+ STGCALL3(void,(),GranSimBlock,CurrentTSO,CurrentProc,Node);
# endif
- TSO_LINK(CurrentTSO) = Nil_closure;
+ TSO_LINK(CurrentTSO) = Prelude_Z91Z93_closure;
SET_INFO_PTR(Node, BQ_info);
BQ_ENTRIES(Node) = (W_) CurrentTSO;
# endif
# if defined(GRAN)
- /* CurrentTSO = Nil_closure; */
- ReSchedule(NEW_THREAD);
+ /* CurrentTSO = Prelude_Z91Z93_closure; */
+ ReSchedule(SAME_THREAD);
# else
ReSchedule(0);
# endif
/* Don't add INDs to granularity cost */
- /* Dont: ENT_IND(Node); for ticky-ticky; this ind is here only to help ticky */
+ /* Dont: ENT_IND(Node); for ticky-ticky; this ind is here only to help profiling */
/* Enter PAP cost centre -- lexical scoping only */
ENTER_CC_PAP_CL(Node);
InfoPtr=(D_)(INFO_PTR(Node));
-# if defined(GRAN)
- GRAN_EXEC(1,1,2,0,0);
-# endif
JMP_(ENTRY_CODE(InfoPtr));
FE_
}
FB_
-#if defined(COUNT)
+#if defined(GRAN_COUNT)
++nPAPs;
#endif
/* set "CC_pap" to go in the updatee (see Sansom thesis, p 183) */
CC_pap /*really cc_enter*/ = (CostCentre) CC_HDR(Node);
- if (IS_SUBSUMED_CC(CC_pap) /*really cc_enter*/)
+ if (IS_CAF_OR_DICT_OR_SUB_CC(CC_pap) /*really cc_enter*/)
CC_pap = CCC;
#endif
* Take the CC out of the update frame if a CAF/DICT.
*/
- CCC = (IS_CAF_OR_DICT_CC(CC_pap)) ? GRAB_COST_CENTRE(SuB) : CC_pap;
+ CCC = (IS_CAF_OR_DICT_OR_SUB_CC(CC_pap)) ? GRAB_COST_CENTRE(SuB) : CC_pap;
#endif /* PROFILING */
* Don't count this entry for ticky-ticky profiling.
*/
-#if defined(GRAN)
+#if 0 /* defined(GRAN) */
GRAN_EXEC(16,4,7,4,0);
#endif
InfoPtr=(D_)(INFO_PTR(Node));
*/
CC_pap = (CostCentre) CC_HDR(Node);
- CCC = (IS_CAF_OR_DICT_CC(CC_pap)) ? GRAB_COST_CENTRE(SuB) : CC_pap;
+ CCC = (IS_CAF_OR_DICT_OR_SUB_CC(CC_pap)) ? GRAB_COST_CENTRE(SuB) : CC_pap;
#endif /* PROFILING */