%
% (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
%
-% $Id: AbsCSyn.lhs,v 1.19 1998/12/18 17:40:32 simonpj Exp $
+% $Id: AbsCSyn.lhs,v 1.20 1999/03/03 17:41:13 simonm Exp $
%
\section[AbstractC]{Abstract C: the last stop before machine code}
\begin{code}
| CAssign
- CAddrMode -- target
- CAddrMode -- source
+ !CAddrMode -- target
+ !CAddrMode -- source
| CJump
CAddrMode -- Put this in the program counter
CAddrMode -- Any base address mode
ReturnInfo -- How to get the return address from the base address
- | CSwitch CAddrMode
+ | CSwitch !CAddrMode
[(Literal, AbstractC)] -- alternatives
AbstractC -- default; if there is no real Abstract C in here
-- (e.g., all comments; see function "nonemptyAbsC"),
AbstractC
| CRetDirect -- Direct return
- Unique -- for making labels
+ !Unique -- for making labels
AbstractC -- return code
(CLabel,SRT) -- SRT info
Liveness -- stack liveness at the return point
CAddrMode -- Offset
PrimRep -- For casting
- | CTemp Unique PrimRep -- Temporary locations
+ | CTemp !Unique !PrimRep -- Temporary locations
-- ``Temporaries'' correspond to local variables in C, and registers in
-- native code.