qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 14/17] target/hexagon: Remove Float


From: Brian Cain
Subject: Re: [PATCH 14/17] target/hexagon: Remove Float
Date: Tue, 10 Dec 2024 15:54:06 -0600
User-agent: Mozilla Thunderbird


On 12/8/2024 4:48 PM, Richard Henderson wrote:
This structure, with bitfields, is incorrect for big-endian.
Use the existing float32_getexp_raw which uses extract32.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
  target/hexagon/fma_emu.c | 16 +++-------------
  1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/target/hexagon/fma_emu.c b/target/hexagon/fma_emu.c
index bce3bd4dfb..c359eecffd 100644
--- a/target/hexagon/fma_emu.c
+++ b/target/hexagon/fma_emu.c
@@ -53,16 +53,6 @@ typedef union {
      };
  } Double;
-typedef union {
-    float f;
-    uint32_t i;
-    struct {
-        uint32_t mant:23;
-        uint32_t exp:8;
-        uint32_t sign:1;
-    };
-} Float;
-
  static uint64_t float64_getmant(float64 f64)
  {
      Double a = { .i = f64 };
@@ -92,12 +82,12 @@ int32_t float64_getexp(float64 f64)
int32_t float32_getexp(float32 f32)
  {
-    Float a = { .i = f32 };
+    int exp = float32_getexp_raw(f32);
      if (float32_is_normal(f32)) {
-        return a.exp;
+        return exp;
      }
      if (float32_is_denormal(f32)) {
-        return a.exp + 1;
+        return exp + 1;
      }
      return -1;
  }
Reviewed-by: Brian Cain <brian.cain@oss.qualcomm.com>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]