-
- -- Adjust the heap pointer backwards in case we over-allocated
- -- Analogously, we also remove bytes from the ticky counter
- move_hp = if (rHp == vHp) then AbsCNop
- else mkAbstractCs [
- CAssign (CReg Hp) (CAddr (hpRel rHp vHp)),
- profCtrAbsC SLIT("TICK_ALLOC_HEAP")
- [ mkIntCLit (vHp - rHp), CLbl ticky_ctr DataPtrRep ]
- ]
-
- new_usage = ((vSp, fSp, newRealSp, hwSp), (vHp,vHp))
+ let move_hp =
+ if (rHp == vHp) then AbsCNop
+ else mkAbstractCs [
+ CAssign (CReg Hp) (CAddr (hpRel rHp vHp)),
+ profCtrAbsC FSLIT("TICK_ALLOC_HEAP")
+ [ mkIntCLit (vHp - rHp), CLbl ticky_ctr DataPtrRep ]
+ ]
+ let new_usage = ((vSp, frame, fSp, newRealSp, hwSp), (vHp,vHp))
+ setState $ MkCgState (mkAbstractCs [absC,move_sp,move_hp]) binds new_usage