%
% (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
%
-% $Id: AbsCSyn.lhs,v 1.53 2003/07/02 13:12:33 simonpj Exp $
+% $Id: AbsCSyn.lhs,v 1.56 2003/11/17 14:47:53 simonmar Exp $
%
\section[AbstractC]{Abstract C: the last stop before machine code}
@AbstractC@ is a list of Abstract~C statements, but the data structure
is tree-ish, for easier and more efficient putting-together.
\begin{code}
-absCNop = AbsCNop
-
data AbstractC
= AbsCNop
| AbsCStmts AbstractC AbstractC
= ENTRY_CODE
| ARG_TAG -- stack argument tagging
| GET_TAG -- get current constructor tag
- | UPD_FRAME_UPDATEE
| CCS_HDR
| BYTE_ARR_CTS -- used when passing a ByteArray# to a ccall
| PTRS_ARR_CTS -- similarly for an Array#
type VirtualHeapOffset = HeapOffset
type VirtualSpOffset = Int
-
-type HpRelOffset = HeapOffset
-type SpRelOffset = Int
\end{code}
%************************************************************************