I could't repeat this bug.
Use: preparators_test.rb
prepare t1, -1
trace "prepare -1 in t1 = %x", gpr_observer(9)
prepare t1, 0
trace "prepare 0 in t1 = %x", gpr_observer(9)
prepare t1, -2
trace "prepare -2 in t1 = %x", gpr_observer(9)
prepare t2, 0xFF120000
trace "prepare 0xFF120000 in t2 = %x", gpr_observer(10)
Result:
Run preparators:
0xffffffffa0004024 nor r9, r0, r0
prepare -1 in t1 = ffffffffffffffff
0xffffffffa0004028 or r9, r0, r0
prepare 0 in t1 = 0
0xffffffffa000402c lui r9, 0xffff
0xffffffffa0004030 ori r9, r9, 0xfffe
prepare -2 in t1 = fffffffffffffffe
0xffffffffa0004034 ori r10, r0, 0xff12
0xffffffffa0004038 dsll r10, r10, 16
prepare 0xFF120000 in t2 = ff120000
Update: 029b03539888976ff67bcabaf78481ff5664fae4