projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Explicitly list HpcParser as a module in hpc-bin
[ghc-hetmet.git]
/
rts
/
Exception.cmm
diff --git
a/rts/Exception.cmm
b/rts/Exception.cmm
index
daa8e4f
..
793c9ab
100644
(file)
--- a/
rts/Exception.cmm
+++ b/
rts/Exception.cmm
@@
-73,6
+73,14
@@
INFO_TABLE_RET( stg_unblockAsyncExceptionszh_ret, RET_SMALL )
*/
Sp_adj(1);
#endif
*/
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];
SAVE_THREAD_STATE();
(r) = foreign "C" maybePerformBlockedException (MyCapability() "ptr",
CurrentTSO "ptr") [R1];
@@
-192,6
+200,15
@@
unblockAsyncExceptionszh_fast
jump stg_ap_v_fast;
}
jump stg_ap_v_fast;
}
+asyncExceptionsBlockedzh_fast
+{
+ /* args: none */
+ if ((TO_W_(StgTSO_flags(CurrentTSO)) & TSO_BLOCKEX) != 0) {
+ RET_N(1);
+ } else {
+ RET_N(0);
+ }
+}
killThreadzh_fast
{
killThreadzh_fast
{
@@
-214,7
+231,7
@@
killThreadzh_fast
*/
loop:
if (StgTSO_what_next(target) == ThreadRelocated::I16) {
*/
loop:
if (StgTSO_what_next(target) == ThreadRelocated::I16) {
- target = StgTSO_link(target);
+ target = StgTSO__link(target);
goto loop;
}
if (target == CurrentTSO) {
goto loop;
}
if (target == CurrentTSO) {