diff options
author | Peter Trommler <ptrommler@acm.org> | 2018-03-19 12:01:37 -0400 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2018-03-19 12:05:12 -0400 |
commit | b37a87b7ccc7c9b0a9da9aa987733c85050548b0 (patch) | |
tree | 482656f14060a615de62f99c2465cbea1e861281 | |
parent | a00b88b9a27736c9c41f1921fcb6b7759ad8425e (diff) | |
download | haskell-b37a87b7ccc7c9b0a9da9aa987733c85050548b0.tar.gz |
PPC nativeGen: Add support for MO_SS_Conv_W32_W64
This is required by D4363. D4362 has the implementation for i386
this commit adds PowerPC.
Test Plan: validate
Reviewers: erikd, hvr, simonmar, bgamari
Reviewed By: bgamari
Subscribers: rwbarton, thomie, carter
Differential Revision: https://phabricator.haskell.org/D4468
-rw-r--r-- | compiler/nativeGen/PPC/CodeGen.hs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler/nativeGen/PPC/CodeGen.hs b/compiler/nativeGen/PPC/CodeGen.hs index e2c568c836..7c345f2328 100644 --- a/compiler/nativeGen/PPC/CodeGen.hs +++ b/compiler/nativeGen/PPC/CodeGen.hs @@ -382,6 +382,14 @@ iselExpr64 (CmmMachOp (MO_UU_Conv W32 W64) [expr]) = do mov_lo = MR rlo expr_reg return $ ChildCode64 (expr_code `snocOL` mov_lo `snocOL` mov_hi) rlo + +iselExpr64 (CmmMachOp (MO_SS_Conv W32 W64) [expr]) = do + (expr_reg,expr_code) <- getSomeReg expr + (rlo, rhi) <- getNewRegPairNat II32 + let mov_hi = SRA II32 rhi expr_reg (RIImm (ImmInt 31)) + mov_lo = MR rlo expr_reg + return $ ChildCode64 (expr_code `snocOL` mov_lo `snocOL` mov_hi) + rlo iselExpr64 expr = pprPanic "iselExpr64(powerpc)" (pprExpr expr) |