summaryrefslogtreecommitdiff
path: root/rts/Exception.cmm
diff options
context:
space:
mode:
Diffstat (limited to 'rts/Exception.cmm')
-rw-r--r--rts/Exception.cmm48
1 files changed, 0 insertions, 48 deletions
diff --git a/rts/Exception.cmm b/rts/Exception.cmm
index 793c9ab149..479c9c9427 100644
--- a/rts/Exception.cmm
+++ b/rts/Exception.cmm
@@ -64,23 +64,10 @@ INFO_TABLE_RET( stg_unblockAsyncExceptionszh_ret, RET_SMALL )
* thread, which might result in the thread being killed.
*/
-#ifndef REG_R1
- /*
- * raiseAsync assumes that the stack is in ThreadRunGHC state,
- * i.e. with a return address on the top. In unreg mode, the
- * return value for IO is on top of the return address, so we
- * need to make a small adjustment here.
- */
- Sp_adj(1);
-#endif
STK_CHK_GEN( WDS(2), R1_PTR, stg_unblockAsyncExceptionszh_ret_info);
Sp_adj(-2);
Sp(1) = R1;
-#ifdef REG_R1
Sp(0) = stg_gc_unpt_r1_info;
-#else
- Sp(0) = stg_ut_1_0_unreg_info;
-#endif
SAVE_THREAD_STATE();
(r) = foreign "C" maybePerformBlockedException (MyCapability() "ptr",
CurrentTSO "ptr") [R1];
@@ -94,25 +81,10 @@ INFO_TABLE_RET( stg_unblockAsyncExceptionszh_ret, RET_SMALL )
jump %ENTRY_CODE(Sp(0));
}
}
-#ifndef REG_R1
- /*
- * Readjust stack in unregisterised mode if we didn't raise an
- * exception, see above
- */
- else {
- Sp_adj(-1);
- }
-#endif
}
-#ifdef REG_R1
Sp_adj(1);
jump %ENTRY_CODE(Sp(0));
-#else
- Sp(1) = Sp(0);
- Sp_adj(1);
- jump %ENTRY_CODE(Sp(1));
-#endif
}
INFO_TABLE_RET( stg_blockAsyncExceptionszh_ret, RET_SMALL )
@@ -120,14 +92,8 @@ INFO_TABLE_RET( stg_blockAsyncExceptionszh_ret, RET_SMALL )
StgTSO_flags(CurrentTSO) =
StgTSO_flags(CurrentTSO) | TSO_BLOCKEX::I32 | TSO_INTERRUPTIBLE::I32;
-#ifdef REG_R1
Sp_adj(1);
jump %ENTRY_CODE(Sp(0));
-#else
- Sp(1) = Sp(0);
- Sp_adj(1);
- jump %ENTRY_CODE(Sp(1));
-#endif
}
blockAsyncExceptionszh_fast
@@ -276,11 +242,7 @@ killThreadzh_fast
Catch frames
-------------------------------------------------------------------------- */
-#ifdef REG_R1
#define SP_OFF 0
-#else
-#define SP_OFF 1
-#endif
/* Catch frames are very similar to update frames, but when entering
* one we just pop the frame off the stack and perform the correct
@@ -292,20 +254,10 @@ INFO_TABLE_RET(stg_catch_frame, CATCH_FRAME,
W_ unused1, W_ unused2,
#endif
W_ unused3, "ptr" W_ unused4)
-#ifdef REG_R1
- {
- Sp = Sp + SIZEOF_StgCatchFrame;
- jump %ENTRY_CODE(Sp(SP_OFF));
- }
-#else
{
- W_ rval;
- rval = Sp(0);
Sp = Sp + SIZEOF_StgCatchFrame;
- Sp(0) = rval;
jump %ENTRY_CODE(Sp(SP_OFF));
}
-#endif
/* -----------------------------------------------------------------------------
* The catch infotable