X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=rts%2FStgStartup.cmm;h=f8940c4196d685148a5c05394fbc06836f703bb9;hp=5b0f7e2a5f12458e1801a83a9db72d8feada70af;hb=HEAD;hpb=d31dfb32ea936c22628b508c28a36c12e631430a diff --git a/rts/StgStartup.cmm b/rts/StgStartup.cmm index 5b0f7e2..f8940c4 100644 --- a/rts/StgStartup.cmm +++ b/rts/StgStartup.cmm @@ -28,9 +28,7 @@ ASSERT(Hp != 0); \ ASSERT(Sp != 0); \ ASSERT(SpLim != 0); \ - ASSERT(HpLim != 0); \ - ASSERT(SpLim - WDS(RESERVED_STACK_WORDS) <= Sp); \ - ASSERT(HpLim >= Hp); + ASSERT(SpLim - WDS(RESERVED_STACK_WORDS) <= Sp); /* ----------------------------------------------------------------------------- Returning from the STG world. @@ -142,46 +140,15 @@ stg_threadFinished forceIO takes care of this, performing the IO action and entering the results that comes back. + ------------------------------------------------------------------------- */ INFO_TABLE_RET( stg_forceIO, RET_SMALL) -#ifdef REG_R1 { Sp_adj(1); ENTER(); } -#else -{ - R1 = Sp(0); - Sp_adj(2); - ENTER(); -} -#endif - -/* ----------------------------------------------------------------------------- - Non-strict IO application. - - This stack frame works like stg_forceIO_info except that it - doesn't evaluate the return value. We need the layer because the - return convention for an IO action differs depending on whether R1 - is a register or not. - ------------------------------------------------------------------------- */ - -INFO_TABLE_RET( stg_noforceIO, RET_SMALL ) - -#ifdef REG_R1 -{ - Sp_adj(1); - jump %ENTRY_CODE(Sp(0)); -} -#else -{ - R1 = Sp(0); - Sp_adj(2); - jump %ENTRY_CODE(Sp(0)); -} -#endif /* ----------------------------------------------------------------------------- Special STG entry points for module registration.