unicorn/qemu/target
Richard Henderson 67740bbc7f
target/arm: Fix float16 to/from int16
The instruction "ucvtf v0.4h, v04h, #2", with input 0x8000u,
overflows the intermediate float16 to infinity before we have a
chance to scale the output. Use float64 as the intermediate type
so that no input argument (uint32_t in this case) can overflow
or round before scaling. Given the declared argument, the signed
int32_t function has the same problem.

When converting from float16 to integer, using u/int32_t instead
of u/int16_t means that the bounding is incorrect.

Backports commit 88808a022c06f98d81cd3f2d105a5734c5614839 from qemu
2018-05-14 08:41:20 -04:00
..
arm target/arm: Fix float16 to/from int16 2018-05-14 08:41:20 -04:00
i386 translator: merge max_insns into DisasContextBase 2018-05-11 13:59:17 -04:00
m68k target/m68k: Fix build Werror with gcc 8.0.1 2018-05-11 10:37:45 -04:00
mips target/mips: convert to TranslatorOps 2018-05-12 16:42:21 -04:00
sparc target/sparc: convert to TranslatorOps 2018-05-11 15:17:12 -04:00