HP_CHK_GEN_TICKY(SIZE, R1_PTR & R2_PTR, atomicModifyMutVarzh_fast);
-#if defined(SMP)
- foreign "C" ACQUIRE_LOCK(sm_mutex "ptr") [R1,R2];
+#if defined(THREADED_RTS)
+ foreign "C" ACQUIRE_LOCK(atomic_modify_mutvar_mutex "ptr") [R1,R2];
#endif
x = StgMutVar_var(R1);
StgThunk_payload(y,0) = z;
StgMutVar_var(R1) = y;
- foreign "C" dirty_MUT_VAR(R1 "ptr") [R1];
+ foreign "C" dirty_MUT_VAR(BaseReg "ptr", R1 "ptr") [R1];
TICK_ALLOC_THUNK_1();
CCCS_ALLOC(THUNK_1_SIZE);
LDV_RECORD_CREATE(r);
StgThunk_payload(r,0) = z;
-#if defined(SMP)
- foreign "C" RELEASE_LOCK(sm_mutex "ptr") [];
+#if defined(THREADED_RTS)
+ foreign "C" RELEASE_LOCK(atomic_modify_mutvar_mutex "ptr") [];
#endif
RET_P(r);
/* ToDo: this is shockingly inefficient */
-#ifndef SMP
+#ifndef THREADED_RTS
section "bss" {
mp_tmp1:
bits8 [SIZEOF_MP_INT];
}
#endif
-#ifdef SMP
+#ifdef THREADED_RTS
#define FETCH_MP_TEMP(X) \
W_ X; \
X = BaseReg + (OFFSET_StgRegTable_r ## X);
GMP_TAKE2_RET2(quotRemIntegerzh_fast, mpz_tdiv_qr)
GMP_TAKE2_RET2(divModIntegerzh_fast, mpz_fdiv_qr)
-#ifndef SMP
+#ifndef THREADED_RTS
section "bss" {
mp_tmp_w: W_; // NB. mp_tmp_w is really an here mp_limb_t
}
/* args: R1 = MVar closure */
mvar = R1;
-#if defined(SMP)
+#if defined(THREADED_RTS)
"ptr" info = foreign "C" lockClosure(mvar "ptr");
#else
info = GET_INFO(mvar);
StgMVar_tail(mvar) = stg_END_TSO_QUEUE_closure;
}
-#if defined(SMP)
+#if defined(THREADED_RTS)
foreign "C" unlockClosure(mvar "ptr", stg_FULL_MVAR_info);
#endif
RET_P(val);
/* No further putMVars, MVar is now empty */
StgMVar_value(mvar) = stg_END_TSO_QUEUE_closure;
-#if defined(SMP)
+#if defined(THREADED_RTS)
foreign "C" unlockClosure(mvar "ptr", stg_EMPTY_MVAR_info);
#else
SET_INFO(mvar,stg_EMPTY_MVAR_info);
mvar = R1;
-#if defined(SMP)
+#if defined(THREADED_RTS)
"ptr" info = foreign "C" lockClosure(mvar "ptr");
#else
info = GET_INFO(mvar);
#endif
if (info == stg_EMPTY_MVAR_info) {
-#if defined(SMP)
+#if defined(THREADED_RTS)
foreign "C" unlockClosure(mvar "ptr", stg_EMPTY_MVAR_info);
#endif
/* HACK: we need a pointer to pass back,
if (StgMVar_head(mvar) == stg_END_TSO_QUEUE_closure) {
StgMVar_tail(mvar) = stg_END_TSO_QUEUE_closure;
}
-#if defined(SMP)
+#if defined(THREADED_RTS)
foreign "C" unlockClosure(mvar "ptr", stg_FULL_MVAR_info);
#endif
}
{
/* No further putMVars, MVar is now empty */
StgMVar_value(mvar) = stg_END_TSO_QUEUE_closure;
-#if defined(SMP)
+#if defined(THREADED_RTS)
foreign "C" unlockClosure(mvar "ptr", stg_EMPTY_MVAR_info);
#else
SET_INFO(mvar,stg_EMPTY_MVAR_info);
/* args: R1 = MVar, R2 = value */
mvar = R1;
-#if defined(SMP)
+#if defined(THREADED_RTS)
"ptr" info = foreign "C" lockClosure(mvar "ptr");
#else
info = GET_INFO(mvar);
StgMVar_tail(mvar) = stg_END_TSO_QUEUE_closure;
}
-#if defined(SMP)
+#if defined(THREADED_RTS)
foreign "C" unlockClosure(mvar "ptr", stg_EMPTY_MVAR_info);
#endif
jump %ENTRY_CODE(Sp(0));
/* No further takes, the MVar is now full. */
StgMVar_value(mvar) = R2;
-#if defined(SMP)
+#if defined(THREADED_RTS)
foreign "C" unlockClosure(mvar "ptr", stg_FULL_MVAR_info);
#else
SET_INFO(mvar,stg_FULL_MVAR_info);
/* args: R1 = MVar, R2 = value */
mvar = R1;
-#if defined(SMP)
+#if defined(THREADED_RTS)
"ptr" info = foreign "C" lockClosure(mvar "ptr");
#else
info = GET_INFO(mvar);
#endif
if (info == stg_FULL_MVAR_info) {
-#if defined(SMP)
+#if defined(THREADED_RTS)
foreign "C" unlockClosure(mvar "ptr", stg_FULL_MVAR_info);
#endif
RET_N(0);
StgMVar_tail(mvar) = stg_END_TSO_QUEUE_closure;
}
-#if defined(SMP)
+#if defined(THREADED_RTS)
foreign "C" unlockClosure(mvar "ptr", stg_EMPTY_MVAR_info);
#endif
}
/* No further takes, the MVar is now full. */
StgMVar_value(mvar) = R2;
-#if defined(SMP)
+#if defined(THREADED_RTS)
foreign "C" unlockClosure(mvar "ptr", stg_FULL_MVAR_info);
#else
SET_INFO(mvar,stg_FULL_MVAR_info);