In mGBA 0.8.4, the UMLAL instruction yields incorrect results when rd_hi and rd_lo are the same register.
On hardware (3DS + open-agb-firm), UMLAL r4, r4, r4, r4 with r4 = 20001h sets r4 to 20005h. mGBA sets r4 to 60006h. Presumably, this is the correct order of operations:
a = do_unsigned_long_multiplication(rm, rs)
a += concat(rd_hi, rd_lo)
rd_lo = a_lo
rd_hi = a_hi
The text was updated successfully, but these errors were encountered:
In mGBA 0.8.4, the
UMLAL
instruction yields incorrect results whenrd_hi
andrd_lo
are the same register.On hardware (3DS + open-agb-firm),
UMLAL r4, r4, r4, r4
withr4 = 20001h
setsr4
to20005h
. mGBA setsr4
to60006h
. Presumably, this is the correct order of operations:The text was updated successfully, but these errors were encountered: