| (stg_arg, (rep,expr)) <- stg_args `zip` reps_n_amodes,
nonVoidArg rep]
- -- in
arg_tmps <- mapM assignTemp arg_exprs
- let
- arg_hints = zip arg_tmps (map (typeHint.stgArgType) stg_args)
- -- in
+ let arg_hints = zip arg_tmps (map (typeHint.stgArgType) stg_args)
{-
Now, allocate some result regs.
-}
import StgSyn
import Type
-import Coercion ( mkUnsafeCoercion )
import TyCon ( isAlgTyCon )
import Id
import Var ( Var, globalIdDetails, idType )
res_ty = exprType (mkApps (Var f) args)
app = case globalIdDetails f of
DataConWorkId dc | saturated -> StgConApp dc args'
- PrimOpId op -> ASSERT( saturated )
- StgOpApp (StgPrimOp op) args' res_ty
+ PrimOpId op -> ASSERT( saturated )
+ StgOpApp (StgPrimOp op) args' res_ty
FCallId call -> ASSERT( saturated )
StgOpApp (StgFCallOp call (idUnique f)) args' res_ty
_other -> StgApp f args'
| StgOpApp StgOp -- Primitive op or foreign call
[GenStgArg occ] -- Saturated
- Type -- Result type; we need to know the result type
- -- so that we can assign result registers.
+ Type -- Result type
+ -- We need to know this so that we can
+ -- assign result registers
\end{code}
%************************************************************************