Fix scoped type variables for expression type signatures
[ghc-hetmet.git] / rts / PrimOps.cmm
index 274e3a6..990d6f3 100644 (file)
@@ -138,7 +138,7 @@ unsafeThawArrayzh_fast
   //
   if (StgHeader_info(R1) != stg_MUT_ARR_PTRS_FROZEN0_info) {
        SET_INFO(R1,stg_MUT_ARR_PTRS_DIRTY_info);
-       foreign "C" recordMutableLock(R1 "ptr") [R1];
+       recordMutable(R1, R1);
        // must be done after SET_INFO, because it ASSERTs closure_MUTABLE()
        RET_P(R1);
   } else {
@@ -1200,7 +1200,7 @@ atomicallyzh_fast
 
   /* Nested transactions are not allowed; raise an exception */
   if (old_trec != NO_TREC) {
-     R1 = GHCziIOBase_NestedAtomically_closure;
+     R1 = base_GHCziIOBase_NestedAtomically_closure;
      jump raisezh_fast;
   }
 
@@ -1522,7 +1522,7 @@ takeMVarzh_fast
       /* actually perform the putMVar for the thread that we just woke up */
       tso = StgMVar_head(mvar);
       PerformPut(tso,StgMVar_value(mvar));
-      foreign "C" dirtyTSO(tso "ptr") [];
+      dirtyTSO(tso);
 
 #if defined(GRAN) || defined(PAR)
       /* ToDo: check 2nd arg (mvar) is right */
@@ -1596,7 +1596,7 @@ tryTakeMVarzh_fast
        /* actually perform the putMVar for the thread that we just woke up */
        tso = StgMVar_head(mvar);
        PerformPut(tso,StgMVar_value(mvar));
-        foreign "C" dirtyTSO(tso "ptr") [];
+        dirtyTSO(tso);
 
 #if defined(GRAN) || defined(PAR)
        /* ToDo: check 2nd arg (mvar) is right */
@@ -1666,7 +1666,7 @@ putMVarzh_fast
        /* actually perform the takeMVar */
        tso = StgMVar_head(mvar);
        PerformTake(tso, R2);
-        foreign "C" dirtyTSO(tso "ptr") [];
+        dirtyTSO(tso);
       
 #if defined(GRAN) || defined(PAR)
        /* ToDo: check 2nd arg (mvar) is right */
@@ -1732,7 +1732,7 @@ tryPutMVarzh_fast
        /* actually perform the takeMVar */
        tso = StgMVar_head(mvar);
        PerformTake(tso, R2);
-        foreign "C" dirtyTSO(tso "ptr") [];
+        dirtyTSO(tso);
       
 #if defined(GRAN) || defined(PAR)
        /* ToDo: check 2nd arg (mvar) is right */
@@ -1975,8 +1975,8 @@ delayzh_fast
 #else
 
     W_ time;
-    time = foreign "C" getourtimeofday();
-    target = (R1 / (TICK_MILLISECS*1000)) + time;
+    time = foreign "C" getourtimeofday() [R1];
+    target = (R1 / (TO_W_(RtsFlags_MiscFlags_tickInterval(RtsFlags))*1000)) + time;
     StgTSO_block_info(CurrentTSO) = target;
 
     /* Insert the new thread in the sleeping queue. */