summaryrefslogtreecommitdiff
path: root/compiler/cmm/PprC.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/cmm/PprC.hs')
-rw-r--r--compiler/cmm/PprC.hs10
1 files changed, 9 insertions, 1 deletions
diff --git a/compiler/cmm/PprC.hs b/compiler/cmm/PprC.hs
index 658e3ca5d8..d636c41997 100644
--- a/compiler/cmm/PprC.hs
+++ b/compiler/cmm/PprC.hs
@@ -28,6 +28,7 @@ import BlockId
import CLabel
import ForeignCall
import OldCmm
+import OldCmmUtils
import OldPprCmm ()
-- Utils
@@ -237,6 +238,10 @@ pprStmt platform stmt = case stmt of
pprCall platform cast_fn cconv results args <> semi)
-- for a dynamic call, no declaration is necessary.
+ CmmCall (CmmPrim op) results args _ret
+ | Just stmts <- expandCallishMachOp op results args ->
+ vcat $ map (pprStmt platform) stmts
+
CmmCall (CmmPrim op) results args _ret ->
pprCall platform ppr_fn CCallConv results args'
where
@@ -658,7 +663,10 @@ pprCallishMachOp_for_C mop
MO_Memmove -> ptext (sLit "memmove")
(MO_PopCnt w) -> ptext (sLit $ popCntLabel w)
- MO_Touch -> panic $ "pprCallishMachOp_for_C: MO_Touch not supported!"
+ MO_S_QuotRem {} -> unsupported
+ MO_Touch -> unsupported
+ where unsupported = panic ("pprCallishMachOp_for_C: " ++ show mop
+ ++ " not supported!")
-- ---------------------------------------------------------------------
-- Useful #defines