stmtC (CmmCall (CmmForeignCall (CmmLit (CmmLabel mkDirty_MUT_VAR_Label))
CCallConv)
[{-no results-}]
- [(mutv,PtrHint)]
+ [(CmmReg (CmmGlobal BaseReg), PtrHint),
+ (mutv,PtrHint)]
(Just vols))
-- #define sizzeofByteArrayzh(r,a) \
extern void performGCWithRoots(void (*get_roots)(evac_fn));
extern HsInt64 getAllocations( void );
extern void revertCAFs( void );
-extern void dirty_MUT_VAR(StgClosure *);
+extern void dirty_MUT_VAR(StgRegTable *reg, StgClosure *p);
#endif /* RTSEXTERNAL_H */
and is put on the mutable list.
-------------------------------------------------------------------------- */
-void dirty_MUT_VAR(StgClosure *p);
+void dirty_MUT_VAR(StgRegTable *reg, StgClosure *p);
/* -----------------------------------------------------------------------------
DEBUGGING predicates for pointers
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);
-------------------------------------------------------------------------- */
void
-dirty_MUT_VAR(StgClosure *p)
+dirty_MUT_VAR(StgRegTable *reg, StgClosure *p)
{
+ Capability *cap = regTableToCapability(reg);
if (p->header.info == &stg_MUT_VAR_CLEAN_info) {
p->header.info = &stg_MUT_VAR_DIRTY_info;
- recordMutable(p);
+ recordMutableCap(p,cap,Bdescr(p)->gen_no);
}
}