1 --- fixedshift.py.orig 2020-05-11 10:20:55.781417649 -0400
2 +++ fixedshift.py 2020-05-13 16:22:30.896089413 -0400
4 def op_rlwinm(self, RS):
6 r = ROTL32(RS[32:64], n)
7 - m = MASK(MB + 32, ME + 32)
8 + m = MASK(MB.value + 32, ME.value + 32)
13 def op_rlwinm_(self, RS):
15 r = ROTL32(RS[32:64], n)
16 - m = MASK(MB + 32, ME + 32)
17 + m = MASK(MB.value + 32, ME.value + 32)
22 def op_rlwnm(self, RB, RS):
24 r = ROTL32(RS[32:64], n)
25 - m = MASK(MB + 32, ME + 32)
26 + m = MASK(MB.value + 32, ME.value + 32)
31 def op_rlwnm_(self, RB, RS):
33 r = ROTL32(RS[32:64], n)
34 - m = MASK(MB + 32, ME + 32)
35 + m = MASK(MB.value + 32, ME.value + 32)
40 def op_rlwimi(self, RS, RA):
42 r = ROTL32(RS[32:64], n)
43 - m = MASK(MB + 32, ME + 32)
44 + m = MASK(MB.value + 32, ME.value + 32)
49 def op_rlwimi_(self, RS, RA):
51 r = ROTL32(RS[32:64], n)
52 - m = MASK(MB + 32, ME + 32)
53 + m = MASK(MB.value + 32, ME.value + 32)
58 def op_rldicl(self, RS):
62 b = concat(mb[5], mb[0:5])
67 def op_rldicl_(self, RS):
71 b = concat(mb[5], mb[0:5])
76 def op_rldicr(self, RS):
80 e = concat(me[5], me[0:5])
85 def op_rldicr_(self, RS):
89 e = concat(me[5], me[0:5])
94 def op_rldic(self, RS):
98 b = concat(mb[5], mb[0:5])
103 def op_rldic_(self, RS):
107 b = concat(mb[5], mb[0:5])
111 def op_slw(self, RB, RS):
113 - r = ROTL32(RS[32:64], n)
114 + r = ROTL32(RS[32:64], n.value)
116 - m = MASK(32, 63 - n)
117 + m = MASK(32, 63 - n.value)
119 m = concat(0, repeat=64)
123 def op_slw_(self, RB, RS):
125 - r = ROTL32(RS[32:64], n)
126 + r = ROTL32(RS[32:64], n.value)
128 - m = MASK(32, 63 - n)
129 + m = MASK(32, 63 - n.value)
131 m = concat(0, repeat=64)
135 def op_srw(self, RB, RS):
137 - r = ROTL32(RS[32:64], 64 - n)
138 + r = ROTL32(RS[32:64], 64 - n.value)
140 - m = MASK(n + 32, 63)
141 + m = MASK(n.value + 32, 63)
143 m = concat(0, repeat=64)
147 def op_srw_(self, RB, RS):
149 - r = ROTL32(RS[32:64], 64 - n)
150 + r = ROTL32(RS[32:64], 64 - n.value)
152 - m = MASK(n + 32, 63)
153 + m = MASK(n.value + 32, 63)
155 m = concat(0, repeat=64)
159 def op_srawi(self, RS):
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)
166 RA = r & m | concat(s, repeat=64) & ~m
167 carry = s & ne((r & ~m)[32:64], 0)
170 def op_srawi_(self, RS):
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)
177 RA = r & m | concat(s, repeat=64) & ~m
178 carry = s & ne((r & ~m)[32:64], 0)
181 def op_sraw(self, RB, RS):
183 - r = ROTL32(RS[32:64], 64 - n)
184 + r = ROTL32(RS[32:64], 64 - n.value)
186 - m = MASK(n + 32, 63)
187 + m = MASK(n.value + 32, 63)
189 m = concat(0, repeat=64)
193 def op_sraw_(self, RB, RS):
195 - r = ROTL32(RS[32:64], 64 - n)
196 + r = ROTL32(RS[32:64], 64 - n.value)
198 - m = MASK(n + 32, 63)
199 + m = MASK(n.value + 32, 63)
201 m = concat(0, repeat=64)