summaryrefslogtreecommitdiff
path: root/compiler/cmm/OldCmm.hs
diff options
context:
space:
mode:
authorEdward Z. Yang <ezyang@mit.edu>2011-05-15 13:58:42 +0100
committerEdward Z. Yang <ezyang@mit.edu>2011-05-15 14:41:24 +0100
commitee5addccd1929a7368a39b2c88d1b77f0bc8fb73 (patch)
treeb000ebc489ddfa984064d6a25d88ce8dcc1abdbb /compiler/cmm/OldCmm.hs
parent1dc458bf7ee5ca2749e62397617af291dadc891d (diff)
downloadhaskell-ee5addccd1929a7368a39b2c88d1b77f0bc8fb73.tar.gz
Work around lack of saving volatile registers from unsafe foreign calls.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Diffstat (limited to 'compiler/cmm/OldCmm.hs')
-rw-r--r--compiler/cmm/OldCmm.hs4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/cmm/OldCmm.hs b/compiler/cmm/OldCmm.hs
index 57d458cc95..f5c08172d7 100644
--- a/compiler/cmm/OldCmm.hs
+++ b/compiler/cmm/OldCmm.hs
@@ -144,12 +144,14 @@ data CmmStmt -- Old-style
| CmmStore CmmExpr CmmExpr -- Assign to memory location. Size is
-- given by cmmExprType of the rhs.
- | CmmCall -- A call (forign, native or primitive), with
+ | CmmCall -- A call (foreign, native or primitive), with
CmmCallTarget
HintedCmmFormals -- zero or more results
HintedCmmActuals -- zero or more arguments
CmmSafety -- whether to build a continuation
CmmReturnInfo
+ -- Some care is necessary when handling the arguments of these, see
+ -- [Register parameter passing] and the hack in cmm/CmmOpt.hs
| CmmBranch BlockId -- branch to another BB in this fn