qemu-e2k/target/i386
Joseph Myers c1c5fb8f90 target/i386: fix fscale handling of infinite exponents
The fscale implementation passes infinite exponents through to generic
code that rounds the exponent to a 32-bit integer before using
floatx80_scalbn.  In round-to-nearest mode, and ignoring exceptions,
this works in many cases.  But it fails to handle the special cases of
scaling 0 by a +Inf exponent or an infinity by a -Inf exponent, which
should produce a NaN, and because it produces an inexact result for
finite nonzero numbers being scaled, the result is sometimes incorrect
in other rounding modes.  Add appropriate handling of infinite
exponents to produce a NaN or an appropriately signed exact zero or
infinity as a result.

Signed-off-by: Joseph Myers <joseph@codesourcery.com>
Message-Id: <alpine.DEB.2.21.2005070045010.18350@digraph.polyomino.org.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-06-10 12:10:18 -04:00
..
hvf i386: hvf: Reset IRQ inhibition after moving RIP 2020-04-02 14:55:45 -04:00
arch_dump.c
arch_memory_mapping.c
bpt_helper.c
cc_helper_template.h
cc_helper.c
cpu-param.h
cpu-qom.h cpu: Use DeviceClass reset instead of a special CPUClass reset 2020-03-17 19:48:10 -04:00
cpu.c accel: Move Xen accelerator code under accel/xen/ 2020-06-10 12:09:56 -04:00
cpu.h i386/kvm: fix a use-after-free when vcpu plug/unplug 2020-06-10 12:10:01 -04:00
excp_helper.c
fpu_helper.c target/i386: fix fscale handling of infinite exponents 2020-06-10 12:10:18 -04:00
gdbstub.c gdbstub: i386: Fix gdb_get_reg16() parameter to unbreak gdb 2020-04-15 11:38:23 +01:00
hax-all.c hax: Dynamic allocate vcpu state structure 2020-06-10 12:09:59 -04:00
hax-i386.h hax: Dynamic allocate vcpu state structure 2020-06-10 12:09:59 -04:00
hax-interface.h
hax-mem.c
hax-posix.c i386: Fix GCC warning with snprintf when HAX is enabled 2020-03-16 23:02:24 +01:00
hax-posix.h
hax-windows.c hax: Windows doesn't like posix device names 2020-04-14 10:37:42 -04:00
hax-windows.h
helper.c
helper.h
hyperv-proto.h
hyperv-stub.c
hyperv.c
hyperv.h
int_helper.c
kvm_i386.h
kvm-stub.c
kvm.c i386/kvm: fix a use-after-free when vcpu plug/unplug 2020-06-10 12:10:01 -04:00
machine.c
Makefile.objs
mem_helper.c
misc_helper.c target/i386: Fix OUTL debug output 2020-06-10 12:09:35 -04:00
monitor.c
mpx_helper.c
ops_sse_header.h
ops_sse.h target/i386: fix phadd* with identical destination and source register 2020-06-10 12:09:42 -04:00
seg_helper.c
sev_i386.h
sev-stub.c
sev.c qom: Drop parameter @errp of object_property_add() & friends 2020-05-15 07:07:58 +02:00
shift_helper_template.h
smm_helper.c
svm_helper.c
svm.h
TODO
trace-events
translate.c linux-user/i386: Emulate x86_64 vsyscalls 2020-03-26 08:08:54 +01:00
whp-dispatch.h WHPX: TSC get and set should be dependent on VM state 2020-03-16 23:02:21 +01:00
whpx-all.c WHPX: Use proper synchronization primitives while processing 2020-03-16 23:02:24 +01:00
xsave_helper.c