summaryrefslogtreecommitdiff
path: root/compiler/codeGen/CgForeignCall.hs
diff options
context:
space:
mode:
authorNorman Ramsey <nr@eecs.harvard.edu>2008-05-03 22:45:14 +0000
committerNorman Ramsey <nr@eecs.harvard.edu>2008-05-03 22:45:14 +0000
commitb71b86cf18374f8011120c92e24ca293986e86ea (patch)
tree142a818fcd8c3b6549f701246efc844fcdba8f37 /compiler/codeGen/CgForeignCall.hs
parent4b0d51372d354687f0b2f7b2c2583bed059ce315 (diff)
downloadhaskell-b71b86cf18374f8011120c92e24ca293986e86ea.tar.gz
replace Cmm 'hint' with 'kind'
C-- no longer has 'hints'; to guide parameter passing, it has 'kinds'. Renamed type constructor, data constructor, and record fields accordingly
Diffstat (limited to 'compiler/codeGen/CgForeignCall.hs')
-rw-r--r--compiler/codeGen/CgForeignCall.hs22
1 files changed, 11 insertions, 11 deletions
diff --git a/compiler/codeGen/CgForeignCall.hs b/compiler/codeGen/CgForeignCall.hs
index ac8e99eafe..b3d779e182 100644
--- a/compiler/codeGen/CgForeignCall.hs
+++ b/compiler/codeGen/CgForeignCall.hs
@@ -63,7 +63,7 @@ cgForeignCall results fcall stg_args live
| (stg_arg, (rep,expr)) <- stg_args `zip` reps_n_amodes,
nonVoidArg rep]
- arg_hints = zipWith CmmHinted
+ arg_hints = zipWith CmmKinded
arg_exprs (map (typeHint.stgArgType) stg_args)
-- in
emitForeignCall results fcall arg_hints live
@@ -72,7 +72,7 @@ cgForeignCall results fcall stg_args live
emitForeignCall
:: CmmFormals -- where to put the results
-> ForeignCall -- the op
- -> [CmmHinted CmmExpr] -- arguments
+ -> [CmmKinded CmmExpr] -- arguments
-> StgLiveVars -- live vars, in case we need to save them
-> Code
@@ -86,14 +86,14 @@ emitForeignCall results (CCall (CCallSpec target cconv safety)) args live
= case target of
StaticTarget lbl -> (args, CmmLit (CmmLabel
(mkForeignLabel lbl call_size False)))
- DynamicTarget -> case args of (CmmHinted fn _):rest -> (rest, fn)
+ DynamicTarget -> case args of (CmmKinded fn _):rest -> (rest, fn)
-- in the stdcall calling convention, the symbol needs @size appended
-- to it, where size is the total number of bytes of arguments. We
-- attach this info to the CLabel here, and the CLabel pretty printer
-- will generate the suffix when the label is printed.
call_size
- | StdCallConv <- cconv = Just (sum (map (arg_size.cmmExprRep.hintlessCmm) args))
+ | StdCallConv <- cconv = Just (sum (map (arg_size.cmmExprRep.kindlessCmm) args))
| otherwise = Nothing
-- ToDo: this might not be correct for 64-bit API
@@ -108,7 +108,7 @@ emitForeignCall'
:: Safety
-> CmmFormals -- where to put the results
-> CmmCallTarget -- the op
- -> [CmmHinted CmmExpr] -- arguments
+ -> [CmmKinded CmmExpr] -- arguments
-> Maybe [GlobalReg] -- live vars, in case we need to save them
-> C_SRT -- the SRT of the calls continuation
-> CmmReturnInfo
@@ -137,13 +137,13 @@ emitForeignCall' safety results target args vols srt ret
-- and the CPS will will be the one to convert that
-- to this sequence of three CmmUnsafe calls.
stmtC (CmmCall (CmmCallee suspendThread CCallConv)
- [ CmmHinted id PtrHint ]
- [ CmmHinted (CmmReg (CmmGlobal BaseReg)) PtrHint ]
+ [ CmmKinded id PtrHint ]
+ [ CmmKinded (CmmReg (CmmGlobal BaseReg)) PtrHint ]
CmmUnsafe ret)
stmtC (CmmCall temp_target results temp_args CmmUnsafe ret)
stmtC (CmmCall (CmmCallee resumeThread CCallConv)
- [ CmmHinted new_base PtrHint ]
- [ CmmHinted (CmmReg (CmmLocal id)) PtrHint ]
+ [ CmmKinded new_base PtrHint ]
+ [ CmmKinded (CmmReg (CmmLocal id)) PtrHint ]
CmmUnsafe ret)
-- Assign the result to BaseReg: we
-- might now have a different Capability!
@@ -163,9 +163,9 @@ resumeThread = CmmLit (CmmLabel (mkRtsCodeLabel (sLit "resumeThread")))
-- This is a HACK; really it should be done in the back end, but
-- it's easier to generate the temporaries here.
load_args_into_temps = mapM arg_assign_temp
- where arg_assign_temp (CmmHinted e hint) = do
+ where arg_assign_temp (CmmKinded e hint) = do
tmp <- maybe_assign_temp e
- return (CmmHinted tmp hint)
+ return (CmmKinded tmp hint)
load_target_into_temp (CmmCallee expr conv) = do
tmp <- maybe_assign_temp expr