projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 2006-01-17 16:13:18 by simonmar]
[ghc-hetmet.git]
/
ghc
/
rts
/
PrimOps.cmm
diff --git
a/ghc/rts/PrimOps.cmm
b/ghc/rts/PrimOps.cmm
index
01b4138
..
ff95943
100644
(file)
--- a/
ghc/rts/PrimOps.cmm
+++ b/
ghc/rts/PrimOps.cmm
@@
-159,7
+159,7
@@
newMutVarzh_fast
ALLOC_PRIM( SIZEOF_StgMutVar, R1_PTR, newMutVarzh_fast);
mv = Hp - SIZEOF_StgMutVar + WDS(1);
ALLOC_PRIM( SIZEOF_StgMutVar, R1_PTR, newMutVarzh_fast);
mv = Hp - SIZEOF_StgMutVar + WDS(1);
- SET_HDR(mv,stg_MUT_VAR_info,W_[CCCS]);
+ SET_HDR(mv,stg_MUT_VAR_DIRTY_info,W_[CCCS]);
StgMutVar_var(mv) = R1;
RET_P(mv);
StgMutVar_var(mv) = R1;
RET_P(mv);
@@
-207,7
+207,7
@@
atomicModifyMutVarzh_fast
HP_CHK_GEN_TICKY(SIZE, R1_PTR & R2_PTR, atomicModifyMutVarzh_fast);
#if defined(SMP)
HP_CHK_GEN_TICKY(SIZE, R1_PTR & R2_PTR, atomicModifyMutVarzh_fast);
#if defined(SMP)
- foreign "C" ACQUIRE_LOCK(sm_mutex "ptr");
+ foreign "C" ACQUIRE_LOCK(sm_mutex "ptr") [R1,R2];
#endif
x = StgMutVar_var(R1);
#endif
x = StgMutVar_var(R1);
@@
-228,6
+228,7
@@
atomicModifyMutVarzh_fast
StgThunk_payload(y,0) = z;
StgMutVar_var(R1) = y;
StgThunk_payload(y,0) = z;
StgMutVar_var(R1) = y;
+ foreign "C" dirty_MUT_VAR(R1) [R1];
TICK_ALLOC_THUNK_1();
CCCS_ALLOC(THUNK_1_SIZE);
TICK_ALLOC_THUNK_1();
CCCS_ALLOC(THUNK_1_SIZE);