[project @ 2001-08-22 12:24:41 by simonmar]
[ghc-hetmet.git] / ghc / tests / programs / jeff-bug / TransSig.hs
diff --git a/ghc/tests/programs/jeff-bug/TransSig.hs b/ghc/tests/programs/jeff-bug/TransSig.hs
deleted file mode 100644 (file)
index afe0f8e..0000000
+++ /dev/null
@@ -1,310 +0,0 @@
-module TransSig
-  (     Trans(..)
-
-       ,nop
-
-       ,isNop
-       ,isAdd
-       ,isAlu
-       ,isCmp
-       ,isBool
-       ,isSub
-       ,isMul
-       ,isDiv
-       ,isJump
-       ,isMem
-       ,isMove
-       ,isLoad
-       ,isStore
-       ,isBranch
-
-       ,updCells
-       ,repCells
-
-       ,updDst
-        ,repDst
-        ,addDst
-       ,getDst
-        ,putDst
-
-       ,updSrc
-        ,addSrc
-        ,getSrc
-        ,putSrc
-
-       ,addInfo
-        ,getInfo
-        ,putInfo
-
-        ,getOp
-       ,putOp
-
-       ,getSpecPC
-       ,getDstPC
-       ,getSrcPC
-        ,getLoc 
-
-        ,getSrcRegs 
-        ,getDstRegs
-        ,getSrcRegVals 
-        ,putDstRegVal
-
-        ,bypass
-       ,bypassDst
-       ,bypassMany
-       ,bypassDstMany
-       ,broadcast
-
-       ,readyToRetire 
-       ,complete
-       ,readyToCompute
-
-       ,evalTrans
-        ,rawHazard
-       ,filterDst
-
-        ,pcTrans
-        , getPredicate
-        , isPredicated 
-        , evalPredicate
-
-
-
-  ) where
-
-import List
-import Instruction
-import Signal
-import Register
-import Words
-import Arithmetic
-import qualified Trans as T
-import Trans(Trans(..))
-import Cell
-
-
--- Begin Signature ---------------------------------------------------
-{- 
-  The functions in TransSig are identical to Trans, except
-  that they have been lifted on Signals
--}
-
-
-nop            :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w))
-isNop          :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal Bool
-isAdd          :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal Bool
-isAlu          :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal Bool
-isCmp          :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal Bool
-isBool         :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal Bool
-isSub          :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal Bool
-isMul          :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal Bool
-isDiv          :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal Bool
-isJump         :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal Bool
-isMem          :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal Bool
-isMove         :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal Bool
-isLoad         :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal Bool
-isStore                :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal Bool
-isBranch       :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal Bool
-updCells       :: (Cell c, Word w, Register r) => 
-                    Signal [c r w] -> Signal [c r w] -> Signal [c r w]
-repCells       :: (Cell c, Word w, Register r) => 
-                    (c r w -> c r w -> Bool) -> 
-                   Signal [c r w] -> Signal [c r w] -> Signal [c r w]
-
-updDst         :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal [c r w] -> 
-                   Signal (Trans i (c r w))
-repDst         :: (Instruction i,Cell c,Register r,Word w) => 
-                   (c r w -> c r w -> Bool) ->
-                  Signal (Trans i (c r w)) -> Signal [c r w] -> 
-                   Signal (Trans i (c r w))
-addDst         :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (c r w) -> Signal (Trans i (c r w)) -> 
-                   Signal (Trans i (c r w))
-getDst         :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal [c r w]
-putDst         :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal [c r w] -> 
-                   Signal (Trans i (c r w))
-updSrc         :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal [c r w] -> 
-                   Signal (Trans i (c r w))
-addSrc         :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (c r w) -> Signal (Trans i (c r w)) -> 
-                   Signal (Trans i (c r w))
-getSrc         :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal [c r w]
-putSrc         :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal [c r w] -> 
-                   Signal (Trans i (c r w))
-
-addInfo                :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (c r w) -> Signal (Trans i (c r w)) -> 
-                   Signal (Trans i (c r w))
-getInfo                :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal [c r w]
-putInfo                :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal [c r w] -> 
-                   Signal (Trans i (c r w))
-
-getOp          :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal i
-putOp          :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal i -> 
-                   Signal (Trans i (c r w))
-
-getSpecPC      :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal (Maybe (c r w))
-getDstPC       :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal (Maybe (c r w))
-getSrcPC       :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal (Maybe (c r w))
-getLoc         :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal (Maybe (c r w))
-
-getSrcRegs     :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal [r]
-getDstRegs     :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal [r]
-getSrcRegVals  :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal [w]
-putDstRegVal   :: (Instruction i,Cell c,Register r,Word w) =>  
-                   Signal (Trans i (c r w)) -> Signal w -> 
-                   Signal (Trans i (c r w))
-bypass         :: (Instruction i,Cell c,Register r,Word w) =>
-                   Signal (Trans i (c r w)) -> Signal (Trans i (c r w)) -> 
-                   Signal (Trans i (c r w))
-bypassDst      :: (Instruction i,Cell c,Register r,Word w) =>
-                   Signal (Trans i (c r w)) -> Signal (Trans i (c r w)) ->
-                  Signal (Trans i (c r w))
-bypassMany     :: (Instruction i,Cell c,Register r,Word w) =>
-                   Signal (Trans i (c r w)) -> Signal [Trans i (c r w)] ->
-                  Signal (Trans i (c r w))
-bypassDstMany  :: (Instruction i,Cell c,Register r,Word w) =>
-                   Signal (Trans i (c r w)) -> Signal [Trans i (c r w)] ->
-                  Signal (Trans i (c r w))
-broadcast ::       (Cell a, Register b, Word c) => 
-                   Signal [Trans e (a b c)] -> Signal [Trans e (a b c)] -> 
-                   Signal [Trans e (a b c)]
-
-
-readyToRetire  :: (Instruction i,Cell c,Register r,Word w) =>
-                   Signal [Trans i (c r w)] -> 
-                   Signal ([Trans i (c r w)],[Trans i (c r w)])
-complete       :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal Bool
-readyToCompute :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal [Trans i (c r w)] -> 
-                   Signal ([Trans i (c r w)],[Trans i (c r w)])
-
-evalTrans      :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal (Trans i (c r w)) -> Signal (c r w, Maybe w) -> 
-                   Signal (Trans i (c r w))
-rawHazard      :: (Instruction i,Cell c,Register r,Word w) => 
-                   (Signal (Trans i (c r w)),Signal (Trans i (c r w))) 
-                   -> Signal Bool
-filterDst      :: (Instruction i,Cell c,Register r,Word w) => 
-                   (c r w -> Bool) -> Signal (Trans i (c r w)) -> 
-                  Signal [c r w]
-
-pcTrans         :: (Instruction i,Cell c,Register r,Word w) => 
-                   Signal w -> Signal (Trans i (c r w))
-
-
-
-getPredicate   :: (Cell c,Register r,Word w) => 
-                  Signal (Trans i (c r w)) -> Signal (c r w)
-isPredicated   :: (Cell c,Register r,Word w) => 
-                  Signal (Trans i (c r w)) -> Signal Bool
-
-evalPredicate   :: (Cell c,Register r,Word w) => 
-                  Signal (Trans i (c r w)) -> Signal w
-
-
--- End Signature -------------------------------------------------------------
-nop                    = lift0 $ T.nop
-
-isNop                  = lift1 T.isNop
-isAdd                  = lift1 T.isAdd
-isAlu                  = lift1 T.isAlu
-isCmp                  = lift1 T.isCmp
-isBool                 = lift1 T.isBool
-isSub                  = lift1 T.isSub
-isMul                  = lift1 T.isMul
-isDiv                  = lift1 T.isDiv
-isJump                 = lift1 T.isJump
-isMem                  = lift1 T.isMem
-isMove                 = lift1 T.isMove
-isLoad                 = lift1 T.isLoad
-isStore                        = lift1 T.isStore
-isBranch               = lift1 T.isBranch
-
-updCells               = lift2 T.updCells
-repCells f             = lift2 $ T.repCells f
-
-updDst                 = lift2 T.updDst
-repDst f               = lift2 $ T.repDst f
-addDst                 = lift2 T.addDst
-getDst                 = lift1 T.getDst
-putDst                 = lift2 T.putDst
-
-updSrc                 = lift2 T.updSrc
---repSrc               =
-addSrc                 = lift2 T.addSrc
-getSrc                 = lift1 T.getSrc
-putSrc                 = lift2 T.putSrc
-
-addInfo                        = lift2 T.addInfo
-getInfo                        = lift1 T.getInfo
-putInfo                        = lift2 T.putInfo
-
-getOp                  = lift1 T.getOp
-putOp                  = lift2 T.putOp
-
-getSpecPC              = lift1 T.getSpecPC
-getDstPC               = lift1 T.getDstPC
-getSrcPC               = lift1 T.getSrcPC
-getLoc                 = lift1 T.getLoc
-
-getSrcRegs             = lift1 T.getSrcRegs
-getDstRegs             = lift1 T.getDstRegs
-getSrcRegVals          = lift1 T.getSrcRegVals
-putDstRegVal           = lift2 T.putDstRegVal
-
-evalTrans              = lift2 T.evalTrans
-rawHazard ts           = lift1 T.rawHazard (bundle2 ts)
-
-bypass                 = lift2 T.bypass
-bypassDst              = lift2 T.bypassDst
-bypassMany             = lift2 T.bypassMany
-bypassDstMany          = lift2 T.bypassDstMany
-broadcast              = lift2 T.broadcast
-
-readyToRetire          = lift1 T.readyToRetire
-complete               = lift1 T.complete
-readyToCompute         = lift1 T.readyToCompute
-
-filterDst f            = lift1 $ T.filterDst f
-
-
-pcTrans = lift1 T.pcTrans
-
--- Predicated instructions
-getPredicate = lift1 T.getPredicate
-isPredicated = lift1 T.isPredicated
-evalPredicate = lift1 T.evalPredicate