starting to add SVP64 register EXTRA-read and isvec to ISACaller
[soc.git] / src / soc / decoder / isa / fixedshift.patch
1 --- fixedshift.py.orig 2020-05-11 10:20:55.781417649 -0400
2 +++ fixedshift.py 2020-05-13 16:22:30.896089413 -0400
3 @@ -13,7 +13,7 @@
4 def op_rlwinm(self, RS):
5 n = SH
6 r = ROTL32(RS[32:64], n)
7 - m = MASK(MB + 32, ME + 32)
8 + m = MASK(MB.value + 32, ME.value + 32)
9 RA = r & m
10 return (RA,)
11
12 @@ -21,7 +21,7 @@
13 def op_rlwinm_(self, RS):
14 n = SH
15 r = ROTL32(RS[32:64], n)
16 - m = MASK(MB + 32, ME + 32)
17 + m = MASK(MB.value + 32, ME.value + 32)
18 RA = r & m
19 return (RA,)
20
21 @@ -29,7 +29,7 @@
22 def op_rlwnm(self, RB, RS):
23 n = RB[59:64]
24 r = ROTL32(RS[32:64], n)
25 - m = MASK(MB + 32, ME + 32)
26 + m = MASK(MB.value + 32, ME.value + 32)
27 RA = r & m
28 return (RA,)
29
30 @@ -37,7 +37,7 @@
31 def op_rlwnm_(self, RB, RS):
32 n = RB[59:64]
33 r = ROTL32(RS[32:64], n)
34 - m = MASK(MB + 32, ME + 32)
35 + m = MASK(MB.value + 32, ME.value + 32)
36 RA = r & m
37 return (RA,)
38
39 @@ -45,7 +45,7 @@
40 def op_rlwimi(self, RS, RA):
41 n = SH
42 r = ROTL32(RS[32:64], n)
43 - m = MASK(MB + 32, ME + 32)
44 + m = MASK(MB.value + 32, ME.value + 32)
45 RA = r & m | RA & ~m
46 return (RA,)
47
48 @@ -53,13 +53,13 @@
49 def op_rlwimi_(self, RS, RA):
50 n = SH
51 r = ROTL32(RS[32:64], n)
52 - m = MASK(MB + 32, ME + 32)
53 + m = MASK(MB.value + 32, ME.value + 32)
54 RA = r & m | RA & ~m
55 return (RA,)
56
57 @inject()
58 def op_rldicl(self, RS):
59 - n = sh
60 + n = sh
61 r = ROTL64(RS, n)
62 b = concat(mb[5], mb[0:5])
63 m = MASK(b, 63)
64 @@ -168,9 +168,9 @@
65 @inject()
66 def op_slw(self, RB, RS):
67 n = RB[59:64]
68 - r = ROTL32(RS[32:64], n)
69 + r = ROTL32(RS[32:64], n.value)
70 if eq(RB[58], 0):
71 - m = MASK(32, 63 - n)
72 + m = MASK(32, 63 - n.value)
73 else:
74 m = concat(0, repeat=64)
75 RA = r & m
76 @@ -179,9 +179,9 @@
77 @inject()
78 def op_slw_(self, RB, RS):
79 n = RB[59:64]
80 - r = ROTL32(RS[32:64], n)
81 + r = ROTL32(RS[32:64], n.value)
82 if eq(RB[58], 0):
83 - m = MASK(32, 63 - n)
84 + m = MASK(32, 63 - n.value)
85 else:
86 m = concat(0, repeat=64)
87 RA = r & m
88 @@ -190,9 +190,9 @@
89 @inject()
90 def op_srw(self, RB, RS):
91 n = RB[59:64]
92 - r = ROTL32(RS[32:64], 64 - n)
93 + r = ROTL32(RS[32:64], 64 - n.value)
94 if eq(RB[58], 0):
95 - m = MASK(n + 32, 63)
96 + m = MASK(n.value + 32, 63)
97 else:
98 m = concat(0, repeat=64)
99 RA = r & m
100 @@ -201,9 +201,9 @@
101 @inject()
102 def op_srw_(self, RB, RS):
103 n = RB[59:64]
104 - r = ROTL32(RS[32:64], 64 - n)
105 + r = ROTL32(RS[32:64], 64 - n.value)
106 if eq(RB[58], 0):
107 - m = MASK(n + 32, 63)
108 + m = MASK(n.value + 32, 63)
109 else:
110 m = concat(0, repeat=64)
111 RA = r & m
112 @@ -212,8 +212,8 @@
113 @inject()
114 def op_srawi(self, RS):
115 n = SH
116 - r = ROTL32(RS[32:64], 64 - n)
117 - m = MASK(n + 32, 63)
118 + r = ROTL32(RS[32:64], 64 - n.value)
119 + m = MASK(n.value + 32, 63)
120 s = RS[32]
121 RA = r & m | concat(s, repeat=64) & ~m
122 carry = s & ne((r & ~m)[32:64], 0)
123 @@ -224,8 +224,8 @@
124 @inject()
125 def op_srawi_(self, RS):
126 n = SH
127 - r = ROTL32(RS[32:64], 64 - n)
128 - m = MASK(n + 32, 63)
129 + r = ROTL32(RS[32:64], 64 - n.value)
130 + m = MASK(n.value + 32, 63)
131 s = RS[32]
132 RA = r & m | concat(s, repeat=64) & ~m
133 carry = s & ne((r & ~m)[32:64], 0)
134 @@ -236,9 +236,9 @@
135 @inject()
136 def op_sraw(self, RB, RS):
137 n = RB[59:64]
138 - r = ROTL32(RS[32:64], 64 - n)
139 + r = ROTL32(RS[32:64], 64 - n.value)
140 if eq(RB[58], 0):
141 - m = MASK(n + 32, 63)
142 + m = MASK(n.value + 32, 63)
143 else:
144 m = concat(0, repeat=64)
145 s = RS[32]
146 @@ -251,9 +251,9 @@
147 @inject()
148 def op_sraw_(self, RB, RS):
149 n = RB[59:64]
150 - r = ROTL32(RS[32:64], 64 - n)
151 + r = ROTL32(RS[32:64], 64 - n.value)
152 if eq(RB[58], 0):
153 - m = MASK(n + 32, 63)
154 + m = MASK(n.value + 32, 63)
155 else:
156 m = concat(0, repeat=64)
157 s = RS[32]