Add test for cmpeqb
[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 = concat(sh[5], sh[0:5])
60 + n = sh
61 r = ROTL64(RS, n)
62 b = concat(mb[5], mb[0:5])
63 m = MASK(b, 63)
64 @@ -68,7 +68,7 @@
65
66 @inject()
67 def op_rldicl_(self, RS):
68 - n = concat(sh[5], sh[0:5])
69 + n = sh
70 r = ROTL64(RS, n)
71 b = concat(mb[5], mb[0:5])
72 m = MASK(b, 63)
73 @@ -77,7 +77,7 @@
74
75 @inject()
76 def op_rldicr(self, RS):
77 - n = concat(sh[5], sh[0:5])
78 + n = sh
79 r = ROTL64(RS, n)
80 e = concat(me[5], me[0:5])
81 m = MASK(0, e)
82 @@ -86,7 +86,7 @@
83
84 @inject()
85 def op_rldicr_(self, RS):
86 - n = concat(sh[5], sh[0:5])
87 + n = sh
88 r = ROTL64(RS, n)
89 e = concat(me[5], me[0:5])
90 m = MASK(0, e)
91 @@ -95,7 +95,7 @@
92
93 @inject()
94 def op_rldic(self, RS):
95 - n = concat(sh[5], sh[0:5])
96 + n = sh
97 r = ROTL64(RS, n)
98 b = concat(mb[5], mb[0:5])
99 m = MASK(b, ~n)
100 @@ -104,7 +104,7 @@
101
102 @inject()
103 def op_rldic_(self, RS):
104 - n = concat(sh[5], sh[0:5])
105 + n = sh
106 r = ROTL64(RS, n)
107 b = concat(mb[5], mb[0:5])
108 m = MASK(b, ~n)
109 @@ -168,9 +168,9 @@
110 @inject()
111 def op_slw(self, RB, RS):
112 n = RB[59:64]
113 - r = ROTL32(RS[32:64], n)
114 + r = ROTL32(RS[32:64], n.value)
115 if eq(RB[58], 0):
116 - m = MASK(32, 63 - n)
117 + m = MASK(32, 63 - n.value)
118 else:
119 m = concat(0, repeat=64)
120 RA = r & m
121 @@ -179,9 +179,9 @@
122 @inject()
123 def op_slw_(self, RB, RS):
124 n = RB[59:64]
125 - r = ROTL32(RS[32:64], n)
126 + r = ROTL32(RS[32:64], n.value)
127 if eq(RB[58], 0):
128 - m = MASK(32, 63 - n)
129 + m = MASK(32, 63 - n.value)
130 else:
131 m = concat(0, repeat=64)
132 RA = r & m
133 @@ -190,9 +190,9 @@
134 @inject()
135 def op_srw(self, RB, RS):
136 n = RB[59:64]
137 - r = ROTL32(RS[32:64], 64 - n)
138 + r = ROTL32(RS[32:64], 64 - n.value)
139 if eq(RB[58], 0):
140 - m = MASK(n + 32, 63)
141 + m = MASK(n.value + 32, 63)
142 else:
143 m = concat(0, repeat=64)
144 RA = r & m
145 @@ -201,9 +201,9 @@
146 @inject()
147 def op_srw_(self, RB, RS):
148 n = RB[59:64]
149 - r = ROTL32(RS[32:64], 64 - n)
150 + r = ROTL32(RS[32:64], 64 - n.value)
151 if eq(RB[58], 0):
152 - m = MASK(n + 32, 63)
153 + m = MASK(n.value + 32, 63)
154 else:
155 m = concat(0, repeat=64)
156 RA = r & m
157 @@ -212,8 +212,8 @@
158 @inject()
159 def op_srawi(self, RS):
160 n = SH
161 - r = ROTL32(RS[32:64], 64 - n)
162 - m = MASK(n + 32, 63)
163 + r = ROTL32(RS[32:64], 64 - n.value)
164 + m = MASK(n.value + 32, 63)
165 s = RS[32]
166 RA = r & m | concat(s, repeat=64) & ~m
167 carry = s & ne((r & ~m)[32:64], 0)
168 @@ -224,8 +224,8 @@
169 @inject()
170 def op_srawi_(self, RS):
171 n = SH
172 - r = ROTL32(RS[32:64], 64 - n)
173 - m = MASK(n + 32, 63)
174 + r = ROTL32(RS[32:64], 64 - n.value)
175 + m = MASK(n.value + 32, 63)
176 s = RS[32]
177 RA = r & m | concat(s, repeat=64) & ~m
178 carry = s & ne((r & ~m)[32:64], 0)
179 @@ -236,9 +236,9 @@
180 @inject()
181 def op_sraw(self, RB, RS):
182 n = RB[59:64]
183 - r = ROTL32(RS[32:64], 64 - n)
184 + r = ROTL32(RS[32:64], 64 - n.value)
185 if eq(RB[58], 0):
186 - m = MASK(n + 32, 63)
187 + m = MASK(n.value + 32, 63)
188 else:
189 m = concat(0, repeat=64)
190 s = RS[32]
191 @@ -251,9 +251,9 @@
192 @inject()
193 def op_sraw_(self, RB, RS):
194 n = RB[59:64]
195 - r = ROTL32(RS[32:64], 64 - n)
196 + r = ROTL32(RS[32:64], 64 - n.value)
197 if eq(RB[58], 0):
198 - m = MASK(n + 32, 63)
199 + m = MASK(n.value + 32, 63)
200 else:
201 m = concat(0, repeat=64)
202 s = RS[32]