punk@1
|
1 signature BranchPred where {
|
punk@1
|
2 import ¶Counter®¶;
|
punk@1
|
3
|
punk@1
|
4 import ¶FIFOF_®¶;
|
punk@1
|
5
|
punk@1
|
6 import ¶FIFOF®¶;
|
punk@1
|
7
|
punk@1
|
8 import ¶FIFO®¶;
|
punk@1
|
9
|
punk@1
|
10 import ¶Inout®¶;
|
punk@1
|
11
|
punk@1
|
12 import ¶List®¶;
|
punk@1
|
13
|
punk@1
|
14 import ¶Clocks®¶;
|
punk@1
|
15
|
punk@1
|
16 import ¶ListN®¶;
|
punk@1
|
17
|
punk@1
|
18 import ¶PrimArray®¶;
|
punk@1
|
19
|
punk@1
|
20 import ¶RegFile®¶;
|
punk@1
|
21
|
punk@1
|
22 import ¶Vector®¶;
|
punk@1
|
23
|
punk@1
|
24 import ¶Connectable®¶;
|
punk@1
|
25
|
punk@1
|
26 import ¶GetPut®¶;
|
punk@1
|
27
|
punk@1
|
28 import ¶ClientServer®¶;
|
punk@1
|
29
|
punk@1
|
30 import Trace;
|
punk@1
|
31
|
punk@1
|
32 import ProcTypes;
|
punk@1
|
33
|
punk@1
|
34 type (BranchPred.BrPred :: *) = ¶Prelude®¶.¶Maybe®¶ ProcTypes.Addr;
|
punk@1
|
35
|
punk@1
|
36 type (BranchPred.BPindx :: *) = ¶Prelude®¶.¶Bit®¶ 4;
|
punk@1
|
37
|
punk@1
|
38 struct (BranchPred.BrPair :: *) = {
|
punk@1
|
39 BranchPred.brpc :: ProcTypes.Addr;
|
punk@1
|
40 BranchPred.nextpc :: ProcTypes.Addr
|
punk@1
|
41 };
|
punk@1
|
42
|
punk@1
|
43 instance BranchPred ¶Prelude®¶.¶PrimMakeUndefined®¶ BranchPred.BrPair;
|
punk@1
|
44
|
punk@1
|
45 instance BranchPred ¶Prelude®¶.¶PrimDeepSeqCond®¶ BranchPred.BrPair;
|
punk@1
|
46
|
punk@1
|
47 instance BranchPred ¶Prelude®¶.¶PrimMakeUninitialized®¶ BranchPred.BrPair;
|
punk@1
|
48
|
punk@1
|
49 instance BranchPred ¶Prelude®¶.¶Bits®¶ BranchPred.BrPair 64;
|
punk@1
|
50
|
punk@1
|
51 instance BranchPred ¶Prelude®¶.¶Eq®¶ BranchPred.BrPair;
|
punk@1
|
52
|
punk@1
|
53 data (BranchPred.CBranchPath :: *) = BranchPred.Valid BranchPred.BrPair | BranchPred.Invalid ();
|
punk@1
|
54
|
punk@1
|
55 instance BranchPred ¶Prelude®¶.¶PrimMakeUndefined®¶ BranchPred.CBranchPath;
|
punk@1
|
56
|
punk@1
|
57 instance BranchPred ¶Prelude®¶.¶PrimDeepSeqCond®¶ BranchPred.CBranchPath;
|
punk@1
|
58
|
punk@1
|
59 instance BranchPred ¶Prelude®¶.¶PrimMakeUninitialized®¶ BranchPred.CBranchPath;
|
punk@1
|
60
|
punk@1
|
61 instance BranchPred ¶Prelude®¶.¶Bits®¶ BranchPred.CBranchPath 65;
|
punk@1
|
62
|
punk@1
|
63 instance BranchPred ¶Prelude®¶.¶Eq®¶ BranchPred.CBranchPath;
|
punk@1
|
64
|
punk@1
|
65 interface (BranchPred.BranchPred :: *) = {
|
punk@1
|
66 BranchPred.get :: ProcTypes.Addr -> BranchPred.BrPred {-# arg_names = [pres] #-};
|
punk@1
|
67 BranchPred.upd :: ProcTypes.Addr -> ProcTypes.Addr -> ¶Prelude®¶.¶Action®¶ {-# arg_names = [pres,
|
punk@1
|
68 next] #-}
|
punk@1
|
69 };
|
punk@1
|
70
|
punk@1
|
71 instance BranchPred ¶Prelude®¶.¶PrimMakeUndefined®¶ BranchPred.BranchPred;
|
punk@1
|
72
|
punk@1
|
73 instance BranchPred ¶Prelude®¶.¶PrimDeepSeqCond®¶ BranchPred.BranchPred;
|
punk@1
|
74
|
punk@1
|
75 instance BranchPred ¶Prelude®¶.¶PrimMakeUninitialized®¶ BranchPred.BranchPred;
|
punk@1
|
76
|
punk@1
|
77 BranchPred.mkBranchPred :: (¶Prelude®¶.¶IsModule®¶ _m__ _c__) => _m__ BranchPred.BranchPred
|
punk@1
|
78 }
|