modify (\tr{set*} functions) the stacks and heap usage information.
\begin{code}
+#include "HsVersions.h"
+
module CgUsages (
initHeapUsage, setVirtHp, getVirtAndRealHp, setRealHp,
- setRealAndVirtualSps,
+ setRealAndVirtualSps,
getVirtSps,
getHpRelOffset, getSpARelOffset, getSpBRelOffset,
---UNUSED: getVirtSpRelOffsets,
-
- freeBStkSlot,
- -- and to make the interface self-sufficient...
- AbstractC, HeapOffset, RegRelative, CgState
+ freeBStkSlot
) where
-import AbsCSyn
+IMP_Ubiq(){-uitous-}
+#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ <= 201
+IMPORT_DELOOPER(CgLoop1) -- here for paranoia-checking
+#endif
+
+import AbsCSyn ( RegRelative(..), AbstractC, CAddrMode )
import CgMonad
-import Util
+import HeapOffs ( zeroOff,
+ SYN_IE(VirtualHeapOffset),
+ SYN_IE(VirtualSpAOffset),
+ SYN_IE(VirtualSpBOffset)
+ )
+import Id ( SYN_IE(IdEnv) )
\end{code}
%************************************************************************
= (SpBRel realSpB virtual_offset, state)
\end{code}
-
-\begin{code}
-{- UNUSED:
-getVirtSpRelOffsets :: FCode (RegRelative, RegRelative)
-getVirtSpRelOffsets info_down
- state@(MkCgState absC binds ((virtSpA,_,realSpA,_), (virtSpB,_,realSpB,_), _))
- = ((SpARel realSpA virtSpA, SpBRel realSpB virtSpB), state)
--}
-\end{code}
-
\begin{code}
freeBStkSlot :: VirtualSpBOffset -> Code
freeBStkSlot b_slot info_down
state@(MkCgState absC binds (spa_usage, (virtSpB,free_b,realSpB,hwSpB), heap_usage))
- = MkCgState absC binds (spa_usage, (virtSpB,new_free_b,realSpB,hwSpB), heap_usage)
- where
- new_free_b = addFreeBSlots free_b [b_slot]
-
+ = MkCgState absC binds (spa_usage, (virtSpB,new_free_b,realSpB,hwSpB), heap_usage)
+ where
+ new_free_b = addFreeBSlots free_b [b_slot]
\end{code}