mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-13 20:33:33 +08:00
477904ca75
This is the last of the correctness fixes I've been carrying around for the v850. Like the other recent fixes, this is another case where we haven't been as careful as we should WRT host vs target types. For the divq instruction both operands are 32 bit types. Yet in the simulator code we convert them from unsigned int to signed long by assignment. So 0xfffffffb (aka -5) turns into 4294967291 and naturally that changes the result of our division. The fix is simple, insert a cast to int32_t to force interpretation as a signed value. Testcase for the simulator is included. It has a trivial dependency on the bins patch. |
||
---|---|---|
.. | ||
allinsns.exp | ||
bins.cgs | ||
bsh.cgs | ||
ChangeLog-2021 | ||
div.cgs | ||
divh_3.cgs | ||
divh.cgs | ||
divhu.cgs | ||
divq.cgs | ||
divu.cgs | ||
mul.cgs | ||
sar.cgs | ||
satadd.cgs | ||
satsub.cgs | ||
satsubi.cgs | ||
satsubr.cgs | ||
shl.cgs | ||
shr.cgs | ||
testutils.cgs | ||
testutils.inc |