[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [PATCH v6 0/9] IEEE 754-2008 support for Mips
From: |
Aleksandar Markovic |
Subject: |
Re: [Qemu-arm] [PATCH v6 0/9] IEEE 754-2008 support for Mips |
Date: |
Wed, 25 May 2016 12:56:04 +0000 |
ping
________________________________________
From: Aleksandar Markovic address@hidden
Sent: Monday, May 16, 2016 7:12 AM
To: address@hidden
Cc: address@hidden; address@hidden; address@hidden; address@hidden;
address@hidden; address@hidden; address@hidden; Aleksandar Markovic;
address@hidden; address@hidden; Petar Jovanovic; address@hidden; Miodrag Dinic;
address@hidden; address@hidden; Leon Alrae; address@hidden; address@hidden;
address@hidden; Maciej Rozycki
Subject: [PATCH v6 0/9] IEEE 754-2008 support for Mips
From: Aleksandar Markovic <address@hidden>
v6 - code for hanlding MSA FCLASS instructions slightly simplified.
- handling of <CEIL|CVT|FLOOR|ROUND|TRUNC>.<L|W>.<S|D> corrected for
nan2008 case.
- R/W bitmask for FCR31 introduced, and related functionalities
implemented.
- cleanup items for SoftFloat library are now in a separate patch.
- minor errors corrected.
v5 - platform initialization code revisited one more time.
- handling of CLASS.<S|D> and their MSA counterparts revisited.
- better orgranization of patches (squashing, splitting).
- corrected handling of <CEIL|CVT|FLOOR|ROUND|TRUNC>.<L|W>.<S|D>.
- code cleanup item in genfarith() - order of cases.
- scripts/checkpatch.pl executed and errors addressed.
(link: https://lists.nongnu.org/archive/html/qemu-devel/2016-04/msg02774.html)
v4 - Added code cleanup items:
a. Capitalization of hex constants in softfloat-specialize.h;
b. White spaces in softfloat-specialize.h;
c. Order of Mips helpers for CVT.<L|W>.<S|D>.
(link: https://lists.nongnu.org/archive/html/qemu-devel/2016-04/msg01962.html)
v3 - Patch series reorganized into 6 patches instead of 2.
- Commit messages improved.
- Except commit messages, net result of applying v3 and v2 is the same.
(link: https://lists.nongnu.org/archive/html/qemu-devel/2016-04/msg01870.html)
v2 - Relevant CPU initialization code changes revisited for all platforms.
- In connection with <CEIL|CVT|FLOOR|ROUND|TRUNC>.<L|W>.<S|D> and
<ABS|NEG>.<S|D> Mips instructions handling, decision on whether
pre-nan2008/pre-abs2008 or nan2008/abs2008 handling will apply
moved from run-time to translate-time.
- For Mips only, in nan2008 cases only, default NaN values fixed.
- For Mips only, in nan2008 cases only, order in pickNaNMulAdd() fixed.
- Code cleanup issues:
a. Constants <floatx80|float128>_default_nan_<low|high> removed;
b. Suffix <l|w>_<s|d> replaced with _<l|w>_<s|d> for some Mips helpers;
c. In vicinity of changes, fixed not-beautiful code formatting.
- Commit messages improved.
(link: https://lists.nongnu.org/archive/html/qemu-devel/2016-04/msg01232.html)
v1 - Initial version
(link: https://lists.nongnu.org/archive/html/qemu-devel/2016-03/msg06082.html)
Mips platform represents the most complex case among QEMU-supported
platforms in reference to certain aspects of floating-point arithmetics.
This is mostly a consequence of the fact that Mips platform, for many
reasons, evolved considerably over time related to floating-point
arithmetics standards (significantly more than other platforms).
It has been difficult for emulators like QEMU to support such variety
of configurations.
This patch series provides number of IEEE 754-2008-related features to
Mips platform. It addresses the most sensitive changes that require
modification of SoftFloat library, also used by most other platforms.
In order to make develpoment, testing, and integration easier, the patch
is split into two distinct parts:
1. Part 1 (patches 1/9, 2/9, 3/9, 4/9, 5/9) that does not change any
calculation or behavior on any platform (and, for that matter, even on
Mips platform). Its sole purpose is to address platform independant
issues in a non-invasive manner, and to make Part 2 possible.
2. Part 2 (patches 6/9, 7/9, 8/9, 9/9) that sets some Mips processors to
use provisions from Part 1, and additionally implements number of
IEEE 754-2008-related features for Mips, while, at the same time,
dealing with files located in directory target-mips only.
This patch series is based on the original set of patches proposed by Maciej W.
Rozycki: http://lists.nongnu.org/archive/html/qemu-devel/2014-12/msg00968.html
Aleksandar Markovic (9):
softfloat: Implement run-time-configurable meaning of signaling NaN bit
softfloat: Clean code format in fpu/softfloat-specialize.h
softfloat: For Mips only, correct default NaN values
softfloat: For Mips only, correct order in pickNaNMulAdd()
linux-user: Update preprocessor constants for Mips-specific e_flags bits
target-mips: Activate IEEE 754-2008 signaling NaN bit meaning
target-mips: Add abs2008 flavor of <ABS|NEG>.<S|D>
target-mips: Add nan2008 flavor of <CEIL|CVT|FLOOR|ROUND|TRUNC>.<L|W>.<S|D>
target-mips: Implement FCR31's R/W bitmask and related functionalities
fpu/softfloat-specialize.h | 664 +++++++++++++++++++++---------------------
fpu/softfloat.c | 172 +++++------
include/elf.h | 18 +-
include/fpu/softfloat.h | 45 +--
linux-user/main.c | 14 +
target-arm/helper-a64.c | 14 +-
target-arm/helper.c | 40 +--
target-m68k/helper.c | 6 +-
target-microblaze/op_helper.c | 6 +-
target-mips/cpu.h | 80 ++++-
target-mips/gdbstub.c | 8 +-
target-mips/helper.h | 22 +-
target-mips/msa_helper.c | 88 +++---
target-mips/op_helper.c | 463 ++++++++++++++++++++++++++---
target-mips/translate.c | 156 ++++++++--
target-mips/translate_init.c | 57 ++++
target-ppc/fpu_helper.c | 120 ++++----
target-s390x/fpu_helper.c | 28 +-
target-s390x/helper.h | 6 +-
target-s390x/translate.c | 6 +-
target-sh4/cpu.c | 1 +
target-unicore32/cpu.c | 2 +
22 files changed, 1322 insertions(+), 694 deletions(-)
--
1.9.1
- [Qemu-arm] [PATCH v6 2/9] softfloat: Clean code format in fpu/softfloat-specialize.h, (continued)
- [Qemu-arm] [PATCH v6 2/9] softfloat: Clean code format in fpu/softfloat-specialize.h, Aleksandar Markovic, 2016/05/16
- [Qemu-arm] [PATCH v6 1/9] softfloat: Implement run-time-configurable meaning of signaling NaN bit, Aleksandar Markovic, 2016/05/16
- [Qemu-arm] [PATCH v6 3/9] softfloat: For Mips only, correct default NaN values, Aleksandar Markovic, 2016/05/16
- [Qemu-arm] [PATCH v6 4/9] softfloat: For Mips only, correct order in pickNaNMulAdd(), Aleksandar Markovic, 2016/05/16
- [Qemu-arm] [PATCH v6 5/9] linux-user: Update preprocessor constants for Mips-specific e_flags bits, Aleksandar Markovic, 2016/05/16
- [Qemu-arm] [PATCH v6 6/9] target-mips: Activate IEEE 754-2008 signaling NaN bit meaning, Aleksandar Markovic, 2016/05/16
- [Qemu-arm] [PATCH v6 7/9] target-mips: Add abs2008 flavor of <ABS|NEG>.<S|D>, Aleksandar Markovic, 2016/05/16
- [Qemu-arm] [PATCH v6 8/9] target-mips: Add nan2008 flavor of <CEIL|CVT|FLOOR|ROUND|TRUNC>.<L|W>.<S|D>, Aleksandar Markovic, 2016/05/16
- [Qemu-arm] [PATCH v6 9/9] target-mips: Implement FCR31's R/W bitmask and related functionalities, Aleksandar Markovic, 2016/05/16
- Re: [Qemu-arm] [PATCH v6 0/9] IEEE 754-2008 support for Mips,
Aleksandar Markovic <=