From: Richard Henderson Date: Thu, 12 Nov 2020 01:36:39 +0000 (-0800) Subject: softfloat: Rearrange FloatParts64 X-Git-Tag: v6.1.0-rc0~119^2~21 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4109b9ea8ada91894dd561594dc5f2db83ebacf3;p=thirdparty%2Fqemu.git softfloat: Rearrange FloatParts64 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 Signed-off-by: Richard Henderson --- diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 2123453d409..ee609540aab 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -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