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);
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);
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);
#ifdef REG_R1
{
Sp = Sp + SIZEOF_StgCatchFrame;
- jump Sp(SP_OFF);
+ jump %ENTRY_CODE(Sp(SP_OFF));
}
#else
{
rval = Sp(0);
Sp = Sp + SIZEOF_StgCatchFrame;
Sp(0) = rval;
- jump Sp(SP_OFF);
+ jump %ENTRY_CODE(Sp(SP_OFF));
}
#endif
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