summaryrefslogtreecommitdiff
path: root/compiler/codeGen
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2017-11-22 14:27:55 -0500
committerBen Gamari <ben@smart-cactus.org>2017-11-22 14:27:55 -0500
commit341013e24764cb7fc95169fddcda1bdb02434bb6 (patch)
treee77842663394b0c3cfdd5a1cd04e24d94590edcf /compiler/codeGen
parentabdb5559b74af003a6d85f32695c034ff739f508 (diff)
downloadhaskell-341013e24764cb7fc95169fddcda1bdb02434bb6.tar.gz
Revert "Add new mbmi and mbmi2 compiler flags"
This broke the 32-bit build. This reverts commit f5dc8ccc29429d0a1d011f62b6b430f6ae50290c.
Diffstat (limited to 'compiler/codeGen')
-rw-r--r--compiler/codeGen/StgCmmPrim.hs78
1 files changed, 0 insertions, 78 deletions
diff --git a/compiler/codeGen/StgCmmPrim.hs b/compiler/codeGen/StgCmmPrim.hs
index 18074991b3..da652bf1b0 100644
--- a/compiler/codeGen/StgCmmPrim.hs
+++ b/compiler/codeGen/StgCmmPrim.hs
@@ -584,20 +584,6 @@ emitPrimOp _ [res] PopCnt32Op [w] = emitPopCntCall res w W32
emitPrimOp _ [res] PopCnt64Op [w] = emitPopCntCall res w W64
emitPrimOp dflags [res] PopCntOp [w] = emitPopCntCall res w (wordWidth dflags)
--- Parallel bit deposit
-emitPrimOp _ [res] Pdep8Op [src, mask] = emitPdepCall res src mask W8
-emitPrimOp _ [res] Pdep16Op [src, mask] = emitPdepCall res src mask W16
-emitPrimOp _ [res] Pdep32Op [src, mask] = emitPdepCall res src mask W32
-emitPrimOp _ [res] Pdep64Op [src, mask] = emitPdepCall res src mask W64
-emitPrimOp dflags [res] PdepOp [src, mask] = emitPdepCall res src mask (wordWidth dflags)
-
--- Parallel bit extract
-emitPrimOp _ [res] Pext8Op [src, mask] = emitPextCall res src mask W8
-emitPrimOp _ [res] Pext16Op [src, mask] = emitPextCall res src mask W16
-emitPrimOp _ [res] Pext32Op [src, mask] = emitPextCall res src mask W32
-emitPrimOp _ [res] Pext64Op [src, mask] = emitPextCall res src mask W64
-emitPrimOp dflags [res] PextOp [src, mask] = emitPextCall res src mask (wordWidth dflags)
-
-- count leading zeros
emitPrimOp _ [res] Clz8Op [w] = emitClzCall res w W8
emitPrimOp _ [res] Clz16Op [w] = emitClzCall res w W16
@@ -879,56 +865,6 @@ callishPrimOpSupported dflags op
|| llvm -> Left MO_F64_Fabs
| otherwise -> Right $ genericFabsOp W64
- -- Pdep8Op | (ncg && (x86ish
- -- || ppc))
- -- || llvm -> Left (MO_Pdep (wordWidth dflags))
- -- | otherwise -> error "TODO: Implement (Right genericPdep8Op)"
-
- -- Pdep16Op | (ncg && (x86ish
- -- || ppc))
- -- || llvm -> Left (MO_Pdep (wordWidth dflags))
- -- | otherwise -> error "TODO: Implement (Right genericPdep16Op)"
-
- -- Pdep32Op | (ncg && (x86ish
- -- || ppc))
- -- || llvm -> Left (MO_Pdep (wordWidth dflags))
-
- -- | otherwise -> error "TODO: Implement (Right genericPdep32Op)"
- -- Pdep64Op | (ncg && (x86ish
- -- || ppc))
- -- || llvm -> Left (MO_Pdep (wordWidth dflags))
- -- | otherwise -> error "TODO: Implement (Right genericPdep64Op)"
-
- -- PdepOp | (ncg && (x86ish
- -- || ppc))
- -- || llvm -> Left (MO_Pdep (wordWidth dflags))
- -- | otherwise -> error "TODO: Implement (Right genericPdepOp)"
-
- -- Pext8Op | (ncg && (x86ish
- -- || ppc))
- -- || llvm -> Left (MO_Pext (wordWidth dflags))
- -- | otherwise -> error "TODO: Implement (Right genericPext8Op)"
-
- -- Pext16Op | (ncg && (x86ish
- -- || ppc))
- -- || llvm -> Left (MO_Pext (wordWidth dflags))
- -- | otherwise -> error "TODO: Implement (Right genericPext16Op)"
-
- -- Pext32Op | (ncg && (x86ish
- -- || ppc))
- -- || llvm -> Left (MO_Pext (wordWidth dflags))
- -- | otherwise -> error "TODO: Implement (Right genericPext32Op)"
-
- -- Pext64Op | (ncg && (x86ish
- -- || ppc))
- -- || llvm -> Left (MO_Pext (wordWidth dflags))
- -- | otherwise -> error "TODO: Implement (Right genericPext64Op)"
-
- -- PextOp | (ncg && (x86ish
- -- || ppc))
- -- || llvm -> Left (MO_Pext (wordWidth dflags))
- -- | otherwise -> error "TODO: Implement (Right genericPextOp)"
-
_ -> pprPanic "emitPrimOp: can't translate PrimOp " (ppr op)
where
ncg = case hscTarget dflags of
@@ -2330,20 +2266,6 @@ emitPopCntCall res x width = do
(MO_PopCnt width)
[ x ]
-emitPdepCall :: LocalReg -> CmmExpr -> CmmExpr -> Width -> FCode ()
-emitPdepCall res x y width = do
- emitPrimCall
- [ res ]
- (MO_Pdep width)
- [ x, y ]
-
-emitPextCall :: LocalReg -> CmmExpr -> CmmExpr -> Width -> FCode ()
-emitPextCall res x y width = do
- emitPrimCall
- [ res ]
- (MO_Pext width)
- [ x, y ]
-
emitClzCall :: LocalReg -> CmmExpr -> Width -> FCode ()
emitClzCall res x width = do
emitPrimCall