[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 06/33] target/alpha: Mask IOV exception with INV for user-only
From: |
Alex Bennée |
Subject: |
[PATCH v3 06/33] target/alpha: Mask IOV exception with INV for user-only |
Date: |
Tue, 24 Sep 2019 22:00:39 +0100 |
From: Richard Henderson <address@hidden>
The kernel masks the integer overflow exception with the
software invalid exception mask. Include IOV in the set
of exception bits masked by fpcr_exc_enable.
Fixes the new float_convs test.
Signed-off-by: Richard Henderson <address@hidden>
Signed-off-by: Alex Bennée <address@hidden>
Message-Id: <address@hidden>
---
target/alpha/helper.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/target/alpha/helper.c b/target/alpha/helper.c
index 1b3479738b7..55d7274d946 100644
--- a/target/alpha/helper.c
+++ b/target/alpha/helper.c
@@ -58,6 +58,13 @@ void cpu_alpha_store_fpcr(CPUAlphaState *env, uint64_t val)
*/
uint32_t soft_fpcr = alpha_ieee_swcr_to_fpcr(env->swcr) >> 32;
fpcr |= soft_fpcr & (FPCR_STATUS_MASK | FPCR_DNZ);
+
+ /*
+ * The IOV exception is disabled by the kernel with SWCR_TRAP_ENABLE_INV,
+ * which got mapped by alpha_ieee_swcr_to_fpcr to FPCR_INVD.
+ * Add FPCR_IOV to fpcr_exc_enable so that it is handled identically.
+ */
+ t |= CONVERT_BIT(soft_fpcr, FPCR_INVD, FPCR_IOV);
#endif
t |= CONVERT_BIT(fpcr, FPCR_INED, FPCR_INE);
--
2.20.1
- [PATCH v3 00/33] testing/next (docker,tcg, alpha ;-), Alex Bennée, 2019/09/24
- [PATCH v3 01/33] target/alpha: Use array for FPCR_DYN conversion, Alex Bennée, 2019/09/24
- [PATCH v3 02/33] target/alpha: Fix SWCR_MAP_UMZ, Alex Bennée, 2019/09/24
- [PATCH v3 07/33] target/alpha: Tidy helper_fp_exc_raise_s, Alex Bennée, 2019/09/24
- [PATCH v3 03/33] target/alpha: Fix SWCR_TRAP_ENABLE_MASK, Alex Bennée, 2019/09/24
- [PATCH v3 05/33] target/alpha: Write to fpcr_flush_to_zero once, Alex Bennée, 2019/09/24
- [PATCH v3 11/33] target/ppc: fix signal delivery for ppc64abi32, Alex Bennée, 2019/09/24
- [PATCH v3 21/33] tests/tcg: add simple record/replay smoke test for aarch64, Alex Bennée, 2019/09/24
- [PATCH v3 06/33] target/alpha: Mask IOV exception with INV for user-only,
Alex Bennée <=
- [PATCH v3 13/33] tests/docker: fix DOCKER_PARTIAL_IMAGES, Alex Bennée, 2019/09/24
- [PATCH v3 04/33] target/alpha: Handle SWCR_MAP_DMZ earlier, Alex Bennée, 2019/09/24
- [PATCH v3 15/33] tests/docker: reduce scary warnings by cleaning up clean up, Alex Bennée, 2019/09/24
- [PATCH v3 08/33] tests/migration: Fail on unexpected migration states, Alex Bennée, 2019/09/24
- [PATCH v3 12/33] tests/docker: add sanitizers back to clang build, Alex Bennée, 2019/09/24
- [PATCH v3 10/33] migration/postcopy: Recognise the recovery states as 'in_postcopy', Alex Bennée, 2019/09/24
- [PATCH v3 09/33] tests/migration/postcopy: trim migration bandwidth, Alex Bennée, 2019/09/24
- [PATCH v3 27/33] docker: remove debian8-mxe definitions, Alex Bennée, 2019/09/24