Following (and depending on) my three previous patch series for problems found in the x87 floating-point emulation, this patch series fixes some issues relating to floating-point exceptions.
Other issues in that area remain that I hope to address in future patch series. In particular, this patch series does not address the "input denormal" exception (the generic softfloat code only raises that in the flush-to-zero case; x87 has different logic for when to raise it, generally raising it for all denormal and pseudo-denormal operands but including a few instructions that don't raise it at all), does not address issues with functions whose emulation currently goes via host double (which need to be reimplemented to work properly with the full floatx80 range and precision, probably reusing some of the code from the m68k target), and does not address issues with the handling of exceptions for which traps are enabled (where there are many different bugs in the current implementation in QEMU). Joseph Myers (2): target/i386: fix fisttpl, fisttpll handling of out-of-range values target/i386: fix IEEE x87 floating-point exception raising target/i386/fpu_helper.c | 130 +++- tests/tcg/i386/test-i386-fisttp.c | 100 +++ tests/tcg/i386/test-i386-fp-exceptions.c | 831 +++++++++++++++++++++++ 3 files changed, 1040 insertions(+), 21 deletions(-) create mode 100644 tests/tcg/i386/test-i386-fisttp.c create mode 100644 tests/tcg/i386/test-i386-fp-exceptions.c -- 2.17.1 -- Joseph S. Myers jos...@codesourcery.com