1 def bmask(mode
, RA
, RB
=None, zero
=False):
2 RT
= RA
if RB
is not None and not zero
else 0
3 mask
= RB
if RB
is not None else 0xffffffffffffffff
5 a1
= RA
if mode
&1 else ~RA
6 mode2
= (mode
>> 1) & 0b11
17 mode3
= (mode
>> 3) & 0b11
28 SIF
= 0b10000 # 10011 also works no idea why yet
30 if __name__
== '__main__':
32 print("mode", bin(SBF
))
34 v3
= 0b10010100 # vmsbf.m v2, v3
36 RT
= bmask(SBF
, v3
, m
, zero
=True)
37 print(bin(v3
), bin(v2
), bin(RT
))
38 v3
= 0b10010100 # vmsbf.m v2, v3
39 v2
= 0b00000011 # v2 contents
41 print(bin(v3
), bin(v2
), bin(RT
))
42 v3
= 0b10010101 # vmsbf.m v2, v3
45 print(bin(v3
), bin(v2
), bin(RT
))
46 v3
= 0b00000000 # vmsbf.m v2, v3
49 print(bin(v3
), bin(v2
), bin(RT
))