punk@1: signature BranchPred where { punk@1: import ¶Counter®¶; punk@1: punk@1: import ¶FIFOF_®¶; punk@1: punk@1: import ¶FIFOF®¶; punk@1: punk@1: import ¶FIFO®¶; punk@1: punk@1: import ¶Inout®¶; punk@1: punk@1: import ¶List®¶; punk@1: punk@1: import ¶Clocks®¶; punk@1: punk@1: import ¶ListN®¶; punk@1: punk@1: import ¶PrimArray®¶; punk@1: punk@1: import ¶RegFile®¶; punk@1: punk@1: import ¶Vector®¶; punk@1: punk@1: import ¶Connectable®¶; punk@1: punk@1: import ¶GetPut®¶; punk@1: punk@1: import ¶ClientServer®¶; punk@1: punk@1: import Trace; punk@1: punk@1: import ProcTypes; punk@1: punk@1: type (BranchPred.BrPred :: *) = ¶Prelude®¶.¶Maybe®¶ ProcTypes.Addr; punk@1: punk@1: type (BranchPred.BPindx :: *) = ¶Prelude®¶.¶Bit®¶ 4; punk@1: punk@1: struct (BranchPred.BrPair :: *) = { punk@1: BranchPred.brpc :: ProcTypes.Addr; punk@1: BranchPred.nextpc :: ProcTypes.Addr punk@1: }; punk@1: punk@1: instance BranchPred ¶Prelude®¶.¶PrimMakeUndefined®¶ BranchPred.BrPair; punk@1: punk@1: instance BranchPred ¶Prelude®¶.¶PrimDeepSeqCond®¶ BranchPred.BrPair; punk@1: punk@1: instance BranchPred ¶Prelude®¶.¶PrimMakeUninitialized®¶ BranchPred.BrPair; punk@1: punk@1: instance BranchPred ¶Prelude®¶.¶Bits®¶ BranchPred.BrPair 64; punk@1: punk@1: instance BranchPred ¶Prelude®¶.¶Eq®¶ BranchPred.BrPair; punk@1: punk@1: data (BranchPred.CBranchPath :: *) = BranchPred.Valid BranchPred.BrPair | BranchPred.Invalid (); punk@1: punk@1: instance BranchPred ¶Prelude®¶.¶PrimMakeUndefined®¶ BranchPred.CBranchPath; punk@1: punk@1: instance BranchPred ¶Prelude®¶.¶PrimDeepSeqCond®¶ BranchPred.CBranchPath; punk@1: punk@1: instance BranchPred ¶Prelude®¶.¶PrimMakeUninitialized®¶ BranchPred.CBranchPath; punk@1: punk@1: instance BranchPred ¶Prelude®¶.¶Bits®¶ BranchPred.CBranchPath 65; punk@1: punk@1: instance BranchPred ¶Prelude®¶.¶Eq®¶ BranchPred.CBranchPath; punk@1: punk@1: interface (BranchPred.BranchPred :: *) = { punk@1: BranchPred.get :: ProcTypes.Addr -> BranchPred.BrPred {-# arg_names = [pres] #-}; punk@1: BranchPred.upd :: ProcTypes.Addr -> ProcTypes.Addr -> ¶Prelude®¶.¶Action®¶ {-# arg_names = [pres, punk@1: next] #-} punk@1: }; punk@1: punk@1: instance BranchPred ¶Prelude®¶.¶PrimMakeUndefined®¶ BranchPred.BranchPred; punk@1: punk@1: instance BranchPred ¶Prelude®¶.¶PrimDeepSeqCond®¶ BranchPred.BranchPred; punk@1: punk@1: instance BranchPred ¶Prelude®¶.¶PrimMakeUninitialized®¶ BranchPred.BranchPred; punk@1: punk@1: BranchPred.mkBranchPred :: (¶Prelude®¶.¶IsModule®¶ _m__ _c__) => _m__ BranchPred.BranchPred punk@1: }