[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [qemu-s390x] [Qemu-devel] [PATCH v1 08/15] s390x/tcg: Handle SET FPC
From: |
Richard Henderson |
Subject: |
Re: [qemu-s390x] [Qemu-devel] [PATCH v1 08/15] s390x/tcg: Handle SET FPC AND LOAD FPC 3-bit BFP rounding modes |
Date: |
Tue, 12 Feb 2019 11:07:44 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 |
On 2/12/19 3:03 AM, David Hildenbrand wrote:
> We already forward the 3 bits correctly in the translation functions. We
> also have to handle them properly and check for specification
> exceptions.
>
> Setting an invalid rounding mode (BFP only, all DFP rounding modes)
> results in a specification exception. Setting unassigned bits in the
> fpc, results in a specification exception.
>
> This fixes LOAD FPC (AND SIGNAL), SET FPC (AND SIGNAL). Also for,
> SET BFP ROUNDING MODE, 3-bit rounding mode is now explicitly checked.
>
> Notes:
> 1. Use "float_round_to_zero" for now to handle "Round to prepare for
> shorter precision". Looking at the PoP "Summary of Rounding and Range
> Actions" for BFP. They differ when it comes to tiny values.
> 2. TCG_CALL_NO_WG is required for sfpc handler, as we now inject
> exceptions.
>
> We won't be modeling abscence of the "floating-point extension facility"
> for now, not necessary as most take the facility for granted without
> checking.
>
> z14 PoP, 9-23, "LOAD FPC"
> When the floating-point extension facility is
> installed, bits 29-31 of the second operand must
> specify a valid BFP rounding mode and bits 6-7,
> 14-15, 24, and 28 must be zero; otherwise, a
> specification exception is recognized.
Reviewed-by: Richard Henderson <address@hidden>
> + /*
> + * FIXME: we actually want something like round_to_odd, but that does not
> + * support all data types yet.
> + */
> + float_round_to_zero,
Yes, you want round_to_odd. I suppose that's not valid for float128 right now?
r~
- [qemu-s390x] [PATCH v1 01/15] s390x/tcg: Fix TEST DATA CLASS instructions, (continued)
- [qemu-s390x] [PATCH v1 01/15] s390x/tcg: Fix TEST DATA CLASS instructions, David Hildenbrand, 2019/02/12
- [qemu-s390x] [PATCH v1 03/15] s390x/tcg: Factor out conversion of softfloat exceptions, David Hildenbrand, 2019/02/12
- [qemu-s390x] [PATCH v1 07/15] s390x/tcg: Fix simulated-IEEE exceptions, David Hildenbrand, 2019/02/12
- [qemu-s390x] [PATCH v1 09/15] s390x/tcg: Check for exceptions in SET BFP ROUNDING MODE, David Hildenbrand, 2019/02/12
- [qemu-s390x] [PATCH v1 08/15] s390x/tcg: Handle SET FPC AND LOAD FPC 3-bit BFP rounding modes, David Hildenbrand, 2019/02/12
- Re: [qemu-s390x] [Qemu-devel] [PATCH v1 08/15] s390x/tcg: Handle SET FPC AND LOAD FPC 3-bit BFP rounding modes,
Richard Henderson <=
[qemu-s390x] [PATCH v1 02/15] s390x/tcg: Fix rounding from float128 to uint64_t/uin32_t, David Hildenbrand, 2019/02/12
[qemu-s390x] [PATCH v1 10/15] s390x/tcg: Refactor saving/restoring the bfp rounding mode, David Hildenbrand, 2019/02/12
[qemu-s390x] [PATCH v1 11/15] s390x/tcg: Prepare for IEEE-inexact-exception control (XxC), David Hildenbrand, 2019/02/12