1 --- fixedshift.py.orig 2020-05-09 09:56:10.393656481 -0400
2 +++ fixedshift.py 2020-05-10 18:51:24.725396454 -0400
5 def op_rlwinm(self, RS):
7 - r = ROTL32(RS[32:64], n)
8 - m = MASK(MB + 32, ME + 32)
9 + r = ROTL32(EXTZ64(RS[32:64]), n)
10 + m = MASK(MB.value + 32, ME.value + 32)
15 def op_rlwinm_(self, RS):
17 - r = ROTL32(RS[32:64], n)
18 - m = MASK(MB + 32, ME + 32)
19 + r = ROTL32(EXTZ64(RS[32:64]), n)
20 + m = MASK(MB.value + 32, ME.value + 32)
25 def op_rlwnm(self, RB, RS):
27 - r = ROTL32(RS[32:64], n)
28 - m = MASK(MB + 32, ME + 32)
29 + r = ROTL32(EXTZ64(RS[32:64]), n)
30 + m = MASK(MB.value + 32, ME.value + 32)
35 def op_rlwnm_(self, RB, RS):
37 - r = ROTL32(RS[32:64], n)
38 - m = MASK(MB + 32, ME + 32)
39 + r = ROTL32(EXTZ64(RS[32:64]), n)
40 + m = MASK(MB.value + 32, ME.value + 32)
45 def op_rlwimi(self, RS, RA):
47 - r = ROTL32(RS[32:64], n)
48 - m = MASK(MB + 32, ME + 32)
49 + r = ROTL32(EXTZ64(RS[32:64]), n)
50 + m = MASK(MB.value + 32, ME.value + 32)
55 def op_rlwimi_(self, RS, RA):
57 - r = ROTL32(RS[32:64], n)
58 - m = MASK(MB + 32, ME + 32)
59 + r = ROTL32(EXTZ64(RS[32:64]), n)
60 + m = MASK(MB.value + 32, ME.value + 32)
66 def op_slw(self, RB, RS):
68 - r = ROTL32(RS[32:64], n)
69 + r = ROTL32(EXTZ64(RS[32:64]), n.value)
71 - m = MASK(32, 63 - n)
72 + m = MASK(32, 63 - n.value)
74 m = concat(0, repeat=64)
78 def op_slw_(self, RB, RS):
80 - r = ROTL32(RS[32:64], n)
81 + r = ROTL32(EXTZ64(RS[32:64]), n.value)
83 - m = MASK(32, 63 - n)
84 + m = MASK(32, 63 - n.value)
86 m = concat(0, repeat=64)
90 def op_srw(self, RB, RS):
92 - r = ROTL32(RS[32:64], 64 - n)
93 + r = ROTL32(EXTZ64(RS[32:64]), 64 - n.value)
95 - m = MASK(n + 32, 63)
96 + m = MASK(n.value + 32, 63)
98 m = concat(0, repeat=64)
102 def op_srw_(self, RB, RS):
104 - r = ROTL32(RS[32:64], 64 - n)
105 + r = ROTL32(EXTZ64(RS[32:64]), 64 - n.value)
107 - m = MASK(n + 32, 63)
108 + m = MASK(n.value + 32, 63)
110 m = concat(0, repeat=64)
114 def op_srawi(self, RS):
116 - r = ROTL32(RS[32:64], 64 - n)
117 - m = MASK(n + 32, 63)
118 + r = ROTL32(EXTZ64(RS[32:64]), 64 - n.value)
119 + m = MASK(n.value + 32, 63)
121 RA = r & m | concat(s, repeat=64) & ~m
122 carry = s & ne((r & ~m)[32:64], 0)
125 def op_srawi_(self, RS):
127 - r = ROTL32(RS[32:64], 64 - n)
128 - m = MASK(n + 32, 63)
129 + r = ROTL32(EXTZ64(RS[32:64]), 64 - n.value)
130 + m = MASK(n.value + 32, 63)
132 RA = r & m | concat(s, repeat=64) & ~m
133 carry = s & ne((r & ~m)[32:64], 0)
136 def op_sraw(self, RB, RS):
138 - r = ROTL32(RS[32:64], 64 - n)
139 + r = ROTL32(EXTZ64(RS[32:64]), 64 - n.value)
141 - m = MASK(n + 32, 63)
142 + m = MASK(n.value + 32, 63)
144 m = concat(0, repeat=64)
148 def op_sraw_(self, RB, RS):
150 - r = ROTL32(RS[32:64], 64 - n)
151 + r = ROTL32(EXTZ64(RS[32:64]), 64 - n.value)
153 - m = MASK(n + 32, 63)
154 + m = MASK(n.value + 32, 63)
156 m = concat(0, repeat=64)