change dirty_MUT_VAR() to use recordMutableCap()
[ghc-hetmet.git] / ghc / rts / PrimOps.cmm
index ff95943..049e4e2 100644 (file)
@@ -228,7 +228,7 @@ atomicModifyMutVarzh_fast
    StgThunk_payload(y,0) = z;
 
    StgMutVar_var(R1) = y;
-   foreign "C" dirty_MUT_VAR(R1) [R1];
+   foreign "C" dirty_MUT_VAR(BaseReg "ptr", R1 "ptr") [R1];
 
    TICK_ALLOC_THUNK_1();
    CCCS_ALLOC(THUNK_1_SIZE);
@@ -1729,7 +1729,6 @@ tryPutMVarzh_fast
 #if defined(SMP)
        foreign "C" unlockClosure(mvar "ptr", stg_EMPTY_MVAR_info);
 #endif
-       jump %ENTRY_CODE(Sp(0));
     }
     else
     {
@@ -1741,9 +1740,9 @@ tryPutMVarzh_fast
 #else
        SET_INFO(mvar,stg_FULL_MVAR_info);
 #endif
-       jump %ENTRY_CODE(Sp(0));
     }
     
+    RET_N(1);
     /* ToDo: yield afterward for better communication performance? */
 }