X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FPrimOps.cmm;h=800f93ed8988428cc336812842bc5cd31bd4fa7c;hb=4311d2d9de83b0af0695f957694cce0dcc566021;hp=cd348469251243449c2ff9eea3bbd67bdf381b34;hpb=efb02b428941021771c9b9b955bba3ec0214dbaf;p=ghc-hetmet.git diff --git a/rts/PrimOps.cmm b/rts/PrimOps.cmm index cd34846..800f93e 100644 --- a/rts/PrimOps.cmm +++ b/rts/PrimOps.cmm @@ -1533,7 +1533,7 @@ takeMVarzh_fast } #if defined(THREADED_RTS) - foreign "C" unlockClosure(mvar "ptr", stg_FULL_MVAR_info) []; + unlockClosure(mvar, stg_FULL_MVAR_info); #endif RET_P(val); } @@ -1543,7 +1543,7 @@ takeMVarzh_fast StgMVar_value(mvar) = stg_END_TSO_QUEUE_closure; #if defined(THREADED_RTS) - foreign "C" unlockClosure(mvar "ptr", stg_EMPTY_MVAR_info) []; + unlockClosure(mvar, stg_EMPTY_MVAR_info); #else SET_INFO(mvar,stg_EMPTY_MVAR_info); #endif @@ -1569,7 +1569,7 @@ tryTakeMVarzh_fast if (info == stg_EMPTY_MVAR_info) { #if defined(THREADED_RTS) - foreign "C" unlockClosure(mvar "ptr", stg_EMPTY_MVAR_info) []; + unlockClosure(mvar, stg_EMPTY_MVAR_info); #endif /* HACK: we need a pointer to pass back, * so we abuse NO_FINALIZER_closure @@ -1606,7 +1606,7 @@ tryTakeMVarzh_fast StgMVar_tail(mvar) = stg_END_TSO_QUEUE_closure; } #if defined(THREADED_RTS) - foreign "C" unlockClosure(mvar "ptr", stg_FULL_MVAR_info) []; + unlockClosure(mvar, stg_FULL_MVAR_info); #endif } else @@ -1614,7 +1614,7 @@ tryTakeMVarzh_fast /* No further putMVars, MVar is now empty */ StgMVar_value(mvar) = stg_END_TSO_QUEUE_closure; #if defined(THREADED_RTS) - foreign "C" unlockClosure(mvar "ptr", stg_EMPTY_MVAR_info) []; + unlockClosure(mvar, stg_EMPTY_MVAR_info); #else SET_INFO(mvar,stg_EMPTY_MVAR_info); #endif @@ -1676,7 +1676,7 @@ putMVarzh_fast } #if defined(THREADED_RTS) - foreign "C" unlockClosure(mvar "ptr", stg_EMPTY_MVAR_info) []; + unlockClosure(mvar, stg_EMPTY_MVAR_info); #endif jump %ENTRY_CODE(Sp(0)); } @@ -1686,7 +1686,7 @@ putMVarzh_fast StgMVar_value(mvar) = R2; #if defined(THREADED_RTS) - foreign "C" unlockClosure(mvar "ptr", stg_FULL_MVAR_info) []; + unlockClosure(mvar, stg_FULL_MVAR_info); #else SET_INFO(mvar,stg_FULL_MVAR_info); #endif @@ -1712,7 +1712,7 @@ tryPutMVarzh_fast if (info == stg_FULL_MVAR_info) { #if defined(THREADED_RTS) - foreign "C" unlockClosure(mvar "ptr", stg_FULL_MVAR_info) []; + unlockClosure(mvar, stg_FULL_MVAR_info); #endif RET_N(0); } @@ -1742,7 +1742,7 @@ tryPutMVarzh_fast } #if defined(THREADED_RTS) - foreign "C" unlockClosure(mvar "ptr", stg_EMPTY_MVAR_info) []; + unlockClosure(mvar, stg_EMPTY_MVAR_info); #endif } else @@ -1751,7 +1751,7 @@ tryPutMVarzh_fast StgMVar_value(mvar) = R2; #if defined(THREADED_RTS) - foreign "C" unlockClosure(mvar "ptr", stg_FULL_MVAR_info) []; + unlockClosure(mvar, stg_FULL_MVAR_info); #else SET_INFO(mvar,stg_FULL_MVAR_info); #endif @@ -1884,8 +1884,6 @@ unpackClosurezh_fast W_ info, ptrs, nptrs, p, ptrs_arr, nptrs_arr; info = %GET_STD_INFO(R1); - ptrs = TO_W_(%INFO_PTRS(info)); - nptrs = TO_W_(%INFO_NPTRS(info)); // Some closures have non-standard layout, so we omit those here. W_ type; @@ -1903,6 +1901,8 @@ unpackClosurezh_fast goto out; } default: { + ptrs = TO_W_(%INFO_PTRS(info)); + nptrs = TO_W_(%INFO_NPTRS(info)); goto out; }} out: