#if !defined(PAR) /* && !defined(GRAN) */
-/* Ditto for Foreign Objectr entry point and info tables. [ADR]
+/* Ditto for Foreign Object entry point and info tables. [ADR]
BTW Will, I copied most of this blindly from above - what's with
this TAG stuff? And what kind of description/ type is wanted here?
FE_
}
-ForeignObj_ITBL(ForeignObj_info,ForeignObj_entry,UpdErr,0,INFO_OTHER_TAG,,,const,EF_,ForeignObj_K,"FOREIGN OBJ","ForeignObj");
+ForeignObj_ITBL(ForeignObj_info,ForeignObj_entry,UpdErr,0,INFO_OTHER_TAG,,,const,EF_,ForeignObj_K,"FOREIGN_OBJ","ForeignObj");
/* End of ForeignObj stuff */
FE_
}
-STATIC_ITBL(UnusedSP_info,UnusedSP_entry,UpdErr,0,INFO_OTHER_TAG,0,0,const,IF_,CON_K,"UNUSED STABLE PTR","USP");
+STATIC_ITBL(UnusedSP_info,UnusedSP_entry,UpdErr,0,INFO_OTHER_TAG,0,0,const,IF_,CON_K,"UNUSED_STABLE_PTR","USP");
SET_STATIC_HDR(UnusedSP_closure,UnusedSP_info,CC_SUBSUMED,,ED_RO_)
};
/* End of SP stuff */
#endif /* !PAR */
+/* Not a natural home for these, but
+ the following symbols may be referenced in
+ an object file, but never entered
+*/
+P_ PrelGHC_void_closure = (P_) 0xbadbadbaL;
+P_ PrelGHC_ZcCCallable_static_info = (P_) 0xbadbadbaL;
+P_ PrelGHC_ZcCReturnable_static_info = (P_) 0xbadbadbaL;
/* the IoWorld token to start the whole thing off */
/* Question: this is just an amusing hex code isn't it
-- or does it mean something? ADR */
-P_ realWorldZh_closure = (P_) 0xbadbadbaL;
-P_ GHCbuiltins_void_closure = (P_) 0xbadbadbaL;
-
-SET_STATIC_HDR(WorldStateToken_closure,GHCbase_SZh_static_info,CC_SUBSUMED/*harmless*/,,ED_RO_)
-, (W_) 0xbadbadbaL
-};
+P_ realWorldZh_closure = (P_)0xbadbadbaL;
#ifndef CONCURRENT
RetReg = (StgRetAddr) UNVEC(stopThreadDirectReturn,vtbl_stopStgWorld);
/* Put an IoWorld token on the A stack */
- SpA -= AREL(1);
- *SpA = (P_) WorldStateToken_closure;
+ SpB -= BREL(1);
+ (P_)*SpB = (P_) realWorldZh_closure;
Node = (P_) TopClosure; /* Point to the closure for main/errorIO-arg */
ENT_VIA_NODE();
/* Assumes that "TopClosure" has been set already */
{
FB_
+ fflush(stdout);
+ fflush(stderr);
if (ErrorIO_call_count >= 16 /* MAGIC CONSTANT */ ) {
/* Don't wrap the calls; we're done with STG land */
fflush(stdout);
/* Finish stack setup as if for a top-level task and enter the error node */
+ /* Put an IoWorld token on the B stack */
+ SpB -= BREL(1);
+ *SpB = (P_) realWorldZh_closure;
+/*
SpA = SuA - AREL(1);
-
- *SpA = (P_) WorldStateToken_closure;
-
- STKO_LINK(StkOReg) = Prelude_Z91Z93_closure;
+ *SpA = (P_) realWorldZh_closure;
+*/
+ STKO_LINK(StkOReg) = PrelBase_Z91Z93_closure;
STKO_RETURN(StkOReg) = NULL;
#ifdef TICKY_TICKY
/* Assumes that "TopClosure" has been set already */
{
FB_
+ fflush(stdout);
+ fflush(stderr);
if (ErrorIO_call_count >= 16 /* MAGIC CONSTANT */ ) {
/* Don't wrap the calls; we're done with STG land */
fflush(stdout);
SET_STATIC_HDR(STK_STUB_closure,STK_STUB_info,CC_SUBSUMED,,EXTDATA_RO)
, (W_)0, (W_)0
};
+
+
+ED_RO_(vtbl_seq);
+
+/*
+STGFUN(seqZhCode)
+{
+ FB_
+ __label__ cont;
+ SpB[BREL(0)] = (W_) RetReg;
+ SpB[BREL(1)] = (W_) &&cont;
+ RetReg = (StgRetAddr) vtbl_seq;
+ ENT_VIA_NODE();
+ InfoPtr = (D_)(INFO_PTR(Node));
+ JMP_(ENTRY_CODE(InfoPtr));
+cont:
+ FE_
+}
+*/
+
\end{code}
%/****************************************************************
CC_DECLARE(CC_CAFs, "CAFs_in_...", "PRELUDE", "PRELUDE", CC_IS_CAF,/*not static*/);
CC_DECLARE(CC_DICTs, "DICTs_in_...", "PRELUDE", "PRELUDE", CC_IS_DICT,/*not static*/);
-START_REGISTER_PRELUDE(_regPrelude);
+START_REGISTER_PRELUDE(_regPrel);
REGISTER_CC(CC_CAFs);
REGISTER_CC(CC_DICTs);
END_REGISTER_CCS()
+
\end{code}
We also need cost centre declarations and registering routines for other
/* _regPrelude is above */
-START_REGISTER_PRELUDE(_regPreludeArray);
+START_REGISTER_PRELUDE(_regPrelGHC);
END_REGISTER_CCS()
-START_REGISTER_PRELUDE(_regPreludeCore);
-END_REGISTER_CCS()
-
-START_REGISTER_PRELUDE(_regPreludeDialogueIO);
-END_REGISTER_CCS()
-
-START_REGISTER_PRELUDE(_regPreludeGlaMisc);
-END_REGISTER_CCS()
-
-START_REGISTER_PRELUDE(_regPreludeGlaST);
-END_REGISTER_CCS()
-
-START_REGISTER_PRELUDE(_regPreludeIOError);
-END_REGISTER_CCS()
-
-START_REGISTER_PRELUDE(_regPreludePS);
-END_REGISTER_CCS()
-
-START_REGISTER_PRELUDE(_regPreludePrimIO);
-END_REGISTER_CCS()
-
-START_REGISTER_PRELUDE(_regPreludeStdIO);
-END_REGISTER_CCS()
#endif
\end{code}