On 3/18/21 12:03 PM, Taylor Simpson wrote:
Here's an example from float_convs
from single: f32(-0x1.31f75000p-40:0xab98fba8)
Softfloat:to uint64: 0 (INEXACT )
Hexagon:to uint64: 0 (INVALID)
Ahh, so an ieee conformance issue in hexagon -- failure to defer the sign check
til
> -Original Message-
> From: Richard Henderson
> Sent: Thursday, March 18, 2021 10:36 AM
> To: Taylor Simpson ; qemu-devel@nongnu.org
> Cc: phi...@redhat.com; alex.ben...@linaro.org; laur...@vivier.eu;
> a...@rev.ng; Brian Cain
> Subject: Re: [PATCH v8 16/35] He
On 3/18/21 8:11 AM, Taylor Simpson wrote:
Actually, softfloat raises inexact instead of invalid. Is there a way to
override?
Not true:
switch (p.cls) {
case float_class_snan:
case float_class_qnan:
s->float_exception_flags = orig_flags | float_flag_invalid;
qemu-devel@nongnu.org
> >> Cc: phi...@redhat.com; alex.ben...@linaro.org; laur...@vivier.eu;
> >> a...@rev.ng; Brian Cain
> >> Subject: Re: [PATCH v8 16/35] Hexagon (target/hexagon/conv_emu.[ch])
> >> utility functions
> >>
> >> On 2/7/21 9:46
/35] Hexagon (target/hexagon/conv_emu.[ch])
utility functions
On 2/7/21 9:46 PM, Taylor Simpson wrote:
+uint64_t conv_sf_to_8u(float32 in, float_status *fp_status);
+uint32_t conv_sf_to_4u(float32 in, float_status *fp_status);
+int64_t conv_sf_to_8s(float32 in, float_status *fp_status);
+int32_t
> -Original Message-
> From: Richard Henderson
> Sent: Sunday, February 14, 2021 2:57 PM
> To: Taylor Simpson ; qemu-devel@nongnu.org
> Cc: phi...@redhat.com; alex.ben...@linaro.org; laur...@vivier.eu;
> a...@rev.ng; Brian Cain
> Subject: Re: [PATCH v8 16/35] He
On 2/7/21 9:46 PM, Taylor Simpson wrote:
> +uint64_t conv_sf_to_8u(float32 in, float_status *fp_status);
> +uint32_t conv_sf_to_4u(float32 in, float_status *fp_status);
> +int64_t conv_sf_to_8s(float32 in, float_status *fp_status);
> +int32_t conv_sf_to_4s(float32 in, float_status *fp_status);
> +
Signed-off-by: Taylor Simpson
---
target/hexagon/conv_emu.h | 31
target/hexagon/conv_emu.c | 177 ++
2 files changed, 208 insertions(+)
create mode 100644 target/hexagon/conv_emu.h
create mode 100644 target/hexagon/conv_emu.c
diff --git