]> git.proxmox.com Git - mirror_qemu.git/commitdiff
softfloat: Rearrange FloatParts64
authorRichard Henderson <richard.henderson@linaro.org>
Thu, 12 Nov 2020 01:36:39 +0000 (17:36 -0800)
committerRichard Henderson <richard.henderson@linaro.org>
Sun, 16 May 2021 12:13:51 +0000 (07:13 -0500)
Shuffle the fraction to the end, otherwise sort by size.
Add frac_hi and frac_lo members to alias frac.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
fpu/softfloat.c

index 2123453d40949542b82bfab7531241f49bcdf3ac..ee609540aabffa1ce243c1b8a537eef5a270eecc 100644 (file)
@@ -511,10 +511,20 @@ static inline __attribute__((unused)) bool is_qnan(FloatClass c)
  */
 
 typedef struct {
-    uint64_t frac;
-    int32_t  exp;
     FloatClass cls;
     bool sign;
+    int32_t exp;
+    union {
+        /* Routines that know the structure may reference the singular name. */
+        uint64_t frac;
+        /*
+         * Routines expanded with multiple structures reference "hi" and "lo"
+         * depending on the operation.  In FloatParts64, "hi" and "lo" are
+         * both the same word and aliased here.
+         */
+        uint64_t frac_hi;
+        uint64_t frac_lo;
+    };
 } FloatParts64;
 
 #define DECOMPOSED_BINARY_POINT    63