target = R1;
exception = R2;
+ /* Needs 3 words because throwToSingleThreaded uses some stack */
STK_CHK_GEN( WDS(3), R1_PTR & R2_PTR, killThreadzh_fast);
/*
} else {
W_ out;
W_ retcode;
- out = BaseReg + OFFSET_StgRegTable_rmp_tmp_w;
-
+ out = Sp - WDS(1); /* ok to re-use stack space here */
+
(retcode) = foreign "C" throwTo(MyCapability() "ptr",
CurrentTSO "ptr",
target "ptr",
#if defined(PROFILING)
W_ unused1, W_ unused2,
#endif
- W_ unused3, "ptr" W_ unused4)
+ W_ unused3, P_ unused4)
{
Sp = Sp + SIZEOF_StgCatchFrame;
jump %ENTRY_CODE(Sp(SP_OFF));
no_break_on_exception: W_[1];
}
-INFO_TABLE_RET(stg_raise_ret, RET_SMALL, "ptr" W_ arg1)
+INFO_TABLE_RET(stg_raise_ret, RET_SMALL, P_ arg1)
{
R1 = Sp(1);
Sp = Sp + WDS(2);