unicorn/qemu
Peter Maydell e7656cbd7a
fpu/softfloat: Don't set Invalid for float-to-int(MAXINT)
In float-to-integer conversion, if the floating point input
converts exactly to the largest or smallest integer that
fits in to the result type, this is not an overflow.
In this situation we were producing the correct result value,
but were incorrectly setting the Invalid flag.
For example for Arm A64, "FCVTAS w0, d0" on an input of
0x41dfffffffc00000 should produce 0x7fffffff and set no flags.

Fix the boundary case to take the right half of the if()
statements.

This fixes a regression from 2.11 introduced by the softfloat
refactoring.

Backports commit 333583757c5e910b040bef793974773635ce1918 from qemu
2018-05-15 21:50:41 -04:00
..
accel tcg: Use GEN_ATOMIC_HELPER_FN for opposite endian atomic add 2018-05-14 08:07:49 -04:00
crypto crypto: Clean up includes 2018-02-19 00:47:40 -05:00
default-configs
docs docs: clarify memory region lifecycle 2018-02-12 15:11:21 -05:00
fpu fpu/softfloat: Don't set Invalid for float-to-int(MAXINT) 2018-05-15 21:50:41 -04:00
hw Use cpu_create(type) instead of cpu_init(cpu_model) 2018-03-20 14:20:30 -04:00
include atomic.h: Work around gcc spurious "unused value" warning 2018-05-14 07:26:40 -04:00
qapi qobject: Modify qobject_ref() to return obj 2018-05-04 10:24:10 -04:00
qobject qobject: Modify qobject_ref() to return obj 2018-05-04 10:24:10 -04:00
qom qobject: Replace qobject_incref/QINCREF qobject_decref/QDECREF 2018-05-04 10:16:07 -04:00
scripts qobject: Replace qobject_incref/QINCREF qobject_decref/QDECREF 2018-05-04 10:16:07 -04:00
target m68k: fix floatx80_mod() (Coverity CID1390568) 2018-05-15 07:44:12 -04:00
tcg tcg: Introduce atomic helpers for integer min/max 2018-05-14 08:06:42 -04:00
util qemu-thread-win32: Prevent null pointer dereference in win32_start_routine 2018-03-21 12:42:44 -04:00
aarch64.h target/arm: Fix float16 to/from int16 2018-05-14 08:41:20 -04:00
aarch64eb.h target/arm: Fix float16 to/from int16 2018-05-14 08:41:20 -04:00
accel.c clean-up: removed duplicate #includes 2018-02-28 08:51:56 -05:00
arm.h target/arm: Fix float16 to/from int16 2018-05-14 08:41:20 -04:00
armeb.h target/arm: Fix float16 to/from int16 2018-05-14 08:41:20 -04:00
CODING_STYLE
configure tcg: fix 16-byte vector operations detection 2018-04-07 23:03:11 -04:00
COPYING
COPYING.LIB
cpus.c Include qapi/error.h exactly where needed 2018-03-07 12:26:38 -05:00
exec.c cpu: Convert cpu_index into a bitmap 2018-03-21 08:06:07 -04:00
gen_all_header.sh
glib_compat.c Use cpu_create(type) instead of cpu_init(cpu_model) 2018-03-20 14:20:30 -04:00
HACKING
header_gen.py target/arm: Fix float16 to/from int16 2018-05-14 08:41:20 -04:00
ioport.c hw: remove pio_addr_t 2018-02-24 02:43:16 -05:00
LICENSE
m68k.h target/arm: Fix float16 to/from int16 2018-05-14 08:41:20 -04:00
Makefile qapi: Don't create useless directory qapi-generated 2018-03-09 11:36:49 -05:00
Makefile.objs qapi: Move qapi-schema.json to qapi/, rename generated files 2018-03-09 11:35:11 -05:00
Makefile.target tcg: move tcg backend files into accel/tcg/ 2018-03-13 11:48:15 -04:00
memory.c memory: Protect against use-after-free 2018-03-21 09:40:33 -04:00
memory_ldst.inc.c exec: Drop unnecessary code for unicorn 2018-03-12 10:11:46 -04:00
memory_mapping.c include/qemu/osdep.h: Don't include qapi/error.h 2018-02-21 23:08:18 -05:00
mips.h target/arm: Fix float16 to/from int16 2018-05-14 08:41:20 -04:00
mips64.h target/arm: Fix float16 to/from int16 2018-05-14 08:41:20 -04:00
mips64el.h target/arm: Fix float16 to/from int16 2018-05-14 08:41:20 -04:00
mipsel.h target/arm: Fix float16 to/from int16 2018-05-14 08:41:20 -04:00
powerpc.h target/arm: Fix float16 to/from int16 2018-05-14 08:41:20 -04:00
qemu-timer.c timer/cpus: fix some typos and update some comments 2018-02-25 23:21:57 -05:00
rules.mak build-sys: silence make by default or V=0 2018-03-06 08:58:03 -05:00
sparc.h target/arm: Fix float16 to/from int16 2018-05-14 08:41:20 -04:00
sparc64.h target/arm: Fix float16 to/from int16 2018-05-14 08:41:20 -04:00
unicorn_common.h cpu: Convert cpu_index into a bitmap 2018-03-21 08:06:07 -04:00
VERSION
vl.c Use cpu_create(type) instead of cpu_init(cpu_model) 2018-03-20 14:20:30 -04:00
vl.h
x86_64.h target/arm: Fix float16 to/from int16 2018-05-14 08:41:20 -04:00