X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fcmm%2FPprC.hs;h=3f8fe1c6faa5d4360503f13ac0f282dcd8570d04;hb=9aaa2bc98fc2f9ca5428ecb3eed40b8fa4c5f749;hp=c7d0cf16c11977b784ee44eb5cdd908f9efc1ced;hpb=e5d9aaa2b7b717c862651f8eea5e2dc66f0a8028;p=ghc-hetmet.git diff --git a/compiler/cmm/PprC.hs b/compiler/cmm/PprC.hs index c7d0cf1..3f8fe1c 100644 --- a/compiler/cmm/PprC.hs +++ b/compiler/cmm/PprC.hs @@ -245,9 +245,9 @@ pprCFunType cconv ress args ] where res_type [] = ptext SLIT("void") - res_type [(one,hint)] = machRepHintCType (localRegRep one) hint + res_type [CmmHinted one hint] = machRepHintCType (localRegRep one) hint - arg_type (expr,hint) = machRepHintCType (cmmExprRep expr) hint + arg_type (CmmHinted expr hint) = machRepHintCType (cmmExprRep expr) hint -- --------------------------------------------------------------------- -- unconditional branches @@ -755,17 +755,17 @@ pprCall ppr_fn cconv results args _ ppr_assign results (ppr_fn <> parens (commafy (map pprArg args))) <> semi where ppr_assign [] rhs = rhs - ppr_assign [(one,hint)] rhs + ppr_assign [CmmHinted one hint] rhs = pprLocalReg one <> ptext SLIT(" = ") <> pprUnHint hint (localRegRep one) <> rhs ppr_assign _other _rhs = panic "pprCall: multiple results" - pprArg (expr, PtrHint) + pprArg (CmmHinted expr PtrHint) = cCast (ptext SLIT("void *")) expr -- see comment by machRepHintCType below - pprArg (expr, SignedHint) + pprArg (CmmHinted expr SignedHint) = cCast (machRepSignedCType (cmmExprRep expr)) expr - pprArg (expr, _other) + pprArg (CmmHinted expr _other) = pprExpr expr pprUnHint PtrHint rep = parens (machRepCType rep) @@ -788,7 +788,7 @@ is_cish StdCallConv = True -- pprTempAndExternDecls :: [CmmBasicBlock] -> (SDoc{-temps-}, SDoc{-externs-}) pprTempAndExternDecls stmts - = (vcat (map pprTempDecl (eltsUFM temps)), + = (vcat (map pprTempDecl (uniqSetToList temps)), vcat (map (pprExternDecl False{-ToDo-}) (keysFM lbls))) where (temps, lbls) = runTE (mapM_ te_BB stmts) @@ -849,8 +849,8 @@ te_Lit _ = return () te_Stmt :: CmmStmt -> TE () te_Stmt (CmmAssign r e) = te_Reg r >> te_Expr e te_Stmt (CmmStore l r) = te_Expr l >> te_Expr r -te_Stmt (CmmCall _ rs es _ _) = mapM_ (te_temp.fst) rs >> - mapM_ (te_Expr.fst) es +te_Stmt (CmmCall _ rs es _ _) = mapM_ (te_temp.hintlessCmm) rs >> + mapM_ (te_Expr.hintlessCmm) es te_Stmt (CmmCondBranch e _) = te_Expr e te_Stmt (CmmSwitch e _) = te_Expr e te_Stmt (CmmJump e _) = te_Expr e