X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FStgMiscClosures.hc;h=93f4bc2275b4d5f18126c80d1fd40662a60bf547;hb=3cf7519556ab1b4c7aa49094a0a8d73f06828979;hp=27e881b234b7b385458f87b422e58925313d24f5;hpb=d6214fb69dcf14826a1835ec16cf58939469f25b;p=ghc-hetmet.git diff --git a/ghc/rts/StgMiscClosures.hc b/ghc/rts/StgMiscClosures.hc index 27e881b..93f4bc2 100644 --- a/ghc/rts/StgMiscClosures.hc +++ b/ghc/rts/StgMiscClosures.hc @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: StgMiscClosures.hc,v 1.60 2001/01/16 12:44:34 sewardj Exp $ + * $Id: StgMiscClosures.hc,v 1.64 2001/02/11 17:51:08 simonmar Exp $ * * (c) The GHC Team, 1998-2000 * @@ -51,8 +51,6 @@ STGFUN(stg_##type##_entry) \ Support for the bytecode interpreter. -------------------------------------------------------------------------- */ -#ifdef GHCI - /* 9 bits of return code for constructors created by the interpreter. */ FN_(stg_interp_constr_entry) { @@ -228,7 +226,6 @@ STG_CtoI_RET_D1_Template(stg_ctoi_ret_D1_7_entry); VEC_POLY_INFO_TABLE(stg_ctoi_ret_D1,0, NULL/*srt*/, 0/*srt_off*/, 0/*srt_len*/, RET_BCO,, EF_); - /* The other way round: when the interpreter returns a value to compiled code. The stack looks like this: @@ -257,8 +254,6 @@ STGFUN(stg_BCO_entry) { FE_ } -#endif /* GHCI */ - /* ----------------------------------------------------------------------------- Entry code for an indirection. @@ -314,7 +309,7 @@ STGFUN(stg_IND_PERM_entry) # ifdef PROFILING # error Profiling and ticky-ticky do not mix at present! # endif /* PROFILING */ - SET_INFO((StgInd*)R1.p,&IND_info); + SET_INFO((StgInd*)R1.p,&stg_IND_info); #endif /* TICKY_TICKY */ R1.p = (P_) ((StgInd*)R1.p)->indirectee; @@ -360,7 +355,7 @@ STGFUN(stg_IND_OLDGEN_PERM_entry) # ifdef PROFILING # error Profiling and ticky-ticky do not mix at present! # endif /* PROFILING */ - SET_INFO((StgInd*)R1.p,&IND_OLDGEN_info); + SET_INFO((StgInd*)R1.p,&stg_IND_OLDGEN_info); #endif /* TICKY_TICKY */ R1.p = (P_) ((StgInd*)R1.p)->indirectee; @@ -370,34 +365,6 @@ STGFUN(stg_IND_OLDGEN_PERM_entry) } /* ----------------------------------------------------------------------------- - Entry code for CAFs - - This code assumes R1 is in a register for now. - -------------------------------------------------------------------------- */ - -INFO_TABLE(stg_CAF_UNENTERED_info,stg_CAF_UNENTERED_entry,1,3,CAF_UNENTERED,,EF_,0,0); -STGFUN(stg_CAF_UNENTERED_entry) -{ - FB_ - /* ToDo: implement directly in GHC */ - Sp -= 1; - Sp[0] = R1.w; - JMP_(stg_yield_to_interpreter); - FE_ -} - -/* 0,4 is entirely bogus; _do not_ rely on this info */ -INFO_TABLE(stg_CAF_ENTERED_info,stg_CAF_ENTERED_entry,0,4,CAF_ENTERED,,EF_,0,0); -STGFUN(stg_CAF_ENTERED_entry) -{ - FB_ - R1.p = (P_) ((StgCAF*)R1.p)->value; /* just a fancy indirection */ - TICK_ENT_VIA_NODE(); - JMP_(GET_ENTRY(R1.cl)); - FE_ -} - -/* ----------------------------------------------------------------------------- Entry code for a black hole. Entering a black hole normally causes a cyclic data dependency, but @@ -427,7 +394,7 @@ STGFUN(stg_BLACKHOLE_entry) bdescr *bd = Bdescr(R1.p); if (bd->back != (bdescr *)BaseReg) { if (bd->gen->no >= 1 || bd->step->no >= 1) { - CMPXCHG(R1.cl->header.info, &BLACKHOLE_info, &WHITEHOLE_info); + CMPXCHG(R1.cl->header.info, &stg_BLACKHOLE_info, &stg_WHITEHOLE_info); } else { EXTFUN_RTS(stg_gc_enter_1_hponly); JMP_(stg_gc_enter_1_hponly); @@ -476,7 +443,7 @@ STGFUN(stg_BLACKHOLE_BQ_entry) bdescr *bd = Bdescr(R1.p); if (bd->back != (bdescr *)BaseReg) { if (bd->gen->no >= 1 || bd->step->no >= 1) { - CMPXCHG(R1.cl->header.info, &BLACKHOLE_info, &WHITEHOLE_info); + CMPXCHG(R1.cl->header.info, &stg_BLACKHOLE_info, &stg_WHITEHOLE_info); } else { EXTFUN_RTS(stg_gc_enter_1_hponly); JMP_(stg_gc_enter_1_hponly); @@ -567,7 +534,7 @@ STGFUN(stg_CAF_BLACKHOLE_entry) bdescr *bd = Bdescr(R1.p); if (bd->back != (bdescr *)BaseReg) { if (bd->gen->no >= 1 || bd->step->no >= 1) { - CMPXCHG(R1.cl->header.info, &CAF_BLACKHOLE_info, &WHITEHOLE_info); + CMPXCHG(R1.cl->header.info, &stg_CAF_BLACKHOLE_info, &stg_WHITEHOLE_info); } else { EXTFUN_RTS(stg_gc_enter_1_hponly); JMP_(stg_gc_enter_1_hponly); @@ -592,7 +559,7 @@ STGFUN(stg_CAF_BLACKHOLE_entry) CurrentTSO->block_info.closure = R1.cl; /* closure is mutable since something has just been added to its BQ */ recordMutable((StgMutClosure *)R1.cl); - /* Change the CAF_BLACKHOLE into a BLACKHOLE_BQ */ + /* Change the CAF_BLACKHOLE into a BLACKHOLE_BQ_STATIC */ ((StgBlockingQueue *)R1.p)->header.info = &stg_BLACKHOLE_BQ_info; /* PAR: dumping of event now done in blockThread -- HWL */ @@ -843,7 +810,7 @@ STGFUN(stg_forceIO_ret_entry) } #else INFO_TABLE_SRT_BITMAP(stg_forceIO_ret_info,stg_forceIO_ret_entry,0,0,0,0,RET_SMALL,,EF_,0,0); -STGFUN(forceIO_ret_entry) +STGFUN(stg_forceIO_ret_entry) { StgClosure *rval; FB_