X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FApply.cmm;h=58ca18b0590d1780447621aaacd10ed3a5ad7c8d;hb=04db0e9fa47ce4dfbcb73ec1752d94195f3b394e;hp=8d19d1402f0453e0eb6834b6316c6c57d101789c;hpb=beb5737b7ee42c4e9373a505e7d957206d69a30e;p=ghc-hetmet.git diff --git a/ghc/rts/Apply.cmm b/ghc/rts/Apply.cmm index 8d19d14..58ca18b 100644 --- a/ghc/rts/Apply.cmm +++ b/ghc/rts/Apply.cmm @@ -15,28 +15,13 @@ /* ---------------------------------------------------------------------------- * Evaluate a closure and return it. * - * stg_ap_0_info <--- Sp - * - * NOTE: this needs to be a polymorphic return point, because we can't - * be sure that the thing being evaluated is not a function. + * There isn't an info table / return address version of stg_ap_0, because + * everything being returned is guaranteed evaluated, so it would be a no-op. */ -#if MAX_VECTORED_RTN > 8 -#error MAX_VECTORED_RTN has changed: please modify stg_ap_0 too. -#endif - STRING(stg_ap_0_ret_str,"stg_ap_0_ret... ") -INFO_TABLE_RET( stg_ap_0, - 0/*framsize*/, 0/*bitmap*/, RET_SMALL, - RET_LBL(stg_ap_0), - RET_LBL(stg_ap_0), - RET_LBL(stg_ap_0), - RET_LBL(stg_ap_0), - RET_LBL(stg_ap_0), - RET_LBL(stg_ap_0), - RET_LBL(stg_ap_0), - RET_LBL(stg_ap_0) ) +stg_ap_0_fast { // fn is in R1, no args on the stack @@ -45,11 +30,10 @@ INFO_TABLE_RET( stg_ap_0, foreign "C" printClosure(R1 "ptr") [R1]); IF_DEBUG(sanity, - foreign "C" checkStackChunk(Sp+WDS(1) "ptr", + foreign "C" checkStackChunk(Sp "ptr", CurrentTSO + TSO_OFFSET_StgTSO_stack + WDS(StgTSO_stack_size(CurrentTSO)) "ptr") [R1]); - Sp_adj(1); ENTER(); }