target/hexagon: Remove Float
This structure, with bitfields, is incorrect for big-endian. Use the existing float32_getexp_raw which uses extract32. Reviewed-by: Brian Cain <brian.cain@oss.qualcomm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
795d6a2c49
commit
fefc9702e6
@ -53,16 +53,6 @@ typedef union {
|
|||||||
};
|
};
|
||||||
} Double;
|
} 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)
|
static uint64_t float64_getmant(float64 f64)
|
||||||
{
|
{
|
||||||
Double a = { .i = f64 };
|
Double a = { .i = f64 };
|
||||||
@ -92,12 +82,12 @@ int32_t float64_getexp(float64 f64)
|
|||||||
|
|
||||||
int32_t float32_getexp(float32 f32)
|
int32_t float32_getexp(float32 f32)
|
||||||
{
|
{
|
||||||
Float a = { .i = f32 };
|
int exp = float32_getexp_raw(f32);
|
||||||
if (float32_is_normal(f32)) {
|
if (float32_is_normal(f32)) {
|
||||||
return a.exp;
|
return exp;
|
||||||
}
|
}
|
||||||
if (float32_is_denormal(f32)) {
|
if (float32_is_denormal(f32)) {
|
||||||
return a.exp + 1;
|
return exp + 1;
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user