X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FException.cmm;h=8ed83b37d0c5e27b1cf6a091f41de95b4343a68d;hb=78d61618421fcd53f3e82cc7fed2da4218208bf5;hp=ce2ea274bd4120ebd47b690cc1c4f762bfc05ea7;hpb=db027550441fdce8f7bb59500345c47a21e90f25;p=ghc-hetmet.git diff --git a/rts/Exception.cmm b/rts/Exception.cmm index ce2ea27..8ed83b3 100644 --- a/rts/Exception.cmm +++ b/rts/Exception.cmm @@ -84,8 +84,7 @@ INFO_TABLE_RET( stg_unblockAsyncExceptionszh_ret, if (r != 0::CInt) { if (StgTSO_what_next(CurrentTSO) == ThreadKilled::I16) { - R1 = ThreadFinished; - jump StgReturn; + jump stg_threadFinished; } else { LOAD_THREAD_STATE(); ASSERT(StgTSO_what_next(CurrentTSO) == ThreadRunGHC::I16); @@ -180,8 +179,7 @@ unblockAsyncExceptionszh_fast if (r != 0::CInt) { if (StgTSO_what_next(CurrentTSO) == ThreadKilled::I16) { - R1 = ThreadFinished; - jump StgReturn; + jump stg_threadFinished; } else { LOAD_THREAD_STATE(); ASSERT(StgTSO_what_next(CurrentTSO) == ThreadRunGHC::I16); @@ -229,8 +227,7 @@ killThreadzh_fast foreign "C" throwToSingleThreaded(MyCapability() "ptr", target "ptr", exception "ptr")[R1,R2]; if (StgTSO_what_next(CurrentTSO) == ThreadKilled::I16) { - R1 = ThreadFinished; - jump StgReturn; + jump stg_threadFinished; } else { LOAD_THREAD_STATE(); ASSERT(StgTSO_what_next(CurrentTSO) == ThreadRunGHC::I16); @@ -431,11 +428,7 @@ retry_pop_stack: StgTSO_what_next(CurrentTSO) = ThreadKilled::I16; SAVE_THREAD_STATE(); /* inline! */ - /* The return code goes in BaseReg->rRet, and BaseReg is returned in R1 */ - StgRegTable_rRet(BaseReg) = ThreadFinished; - R1 = BaseReg; - - jump StgReturn; + jump stg_threadFinished; } /* Ok, Sp points to the enclosing CATCH_FRAME or CATCH_STM_FRAME. Pop everything