X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FHeapStackCheck.cmm;h=e9ddf5b69e18cafe3767a965065457ee3cc6b254;hb=68f606a04198beb15b577ebc951d34a313710cdc;hp=4e5dd2459636f177961d4f9934e87206b20a9236;hpb=0065d5ab628975892cea1ec7303f968c3338cbe1;p=ghc-hetmet.git diff --git a/rts/HeapStackCheck.cmm b/rts/HeapStackCheck.cmm index 4e5dd24..e9ddf5b 100644 --- a/rts/HeapStackCheck.cmm +++ b/rts/HeapStackCheck.cmm @@ -841,7 +841,7 @@ INFO_TABLE_RET( stg_block_takemvar, 1/*framesize*/, 0/*bitmap*/, RET_SMALL ) stg_block_takemvar_finally { #ifdef THREADED_RTS - foreign "C" unlockClosure(R3 "ptr", stg_EMPTY_MVAR_info); + unlockClosure(R3, stg_EMPTY_MVAR_info); #endif jump StgReturn; } @@ -867,7 +867,7 @@ INFO_TABLE_RET( stg_block_putmvar, 2/*framesize*/, 0/*bitmap*/, RET_SMALL ) stg_block_putmvar_finally { #ifdef THREADED_RTS - foreign "C" unlockClosure(R3 "ptr", stg_FULL_MVAR_info); + unlockClosure(R3, stg_FULL_MVAR_info); #endif jump StgReturn; } @@ -902,6 +902,31 @@ stg_block_blackhole BLOCK_BUT_FIRST(stg_block_blackhole_finally); } +INFO_TABLE_RET( stg_block_throwto, 2/*framesize*/, 0/*bitmap*/, RET_SMALL ) +{ + R2 = Sp(2); + R1 = Sp(1); + Sp_adj(3); + jump killThreadzh_fast; +} + +stg_block_throwto_finally +{ +#ifdef THREADED_RTS + foreign "C" throwToReleaseTarget (R3 "ptr"); +#endif + jump StgReturn; +} + +stg_block_throwto +{ + Sp_adj(-3); + Sp(2) = R2; + Sp(1) = R1; + Sp(0) = stg_block_throwto_info; + BLOCK_BUT_FIRST(stg_block_throwto_finally); +} + #ifdef mingw32_HOST_OS INFO_TABLE_RET( stg_block_async, 0/*framesize*/, 0/*bitmap*/, RET_SMALL ) {