aboutsummaryrefslogtreecommitdiff
path: root/fpu
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2011-01-14 20:39:18 +0100
committerAurelien Jarno <aurelien@aurel32.net>2011-01-14 20:39:18 +0100
commit6f3300ad2b5a1e7090720993d9fcb9f550259e12 (patch)
tree722a152d19451b6280bdd05cb3309284ababf6f8 /fpu
parent3bd4be3ada596bbed81fe955c963bb6a64335011 (diff)
downloadqemu-6f3300ad2b5a1e7090720993d9fcb9f550259e12.zip
qemu-6f3300ad2b5a1e7090720993d9fcb9f550259e12.tar.gz
qemu-6f3300ad2b5a1e7090720993d9fcb9f550259e12.tar.bz2
softfloat: Add float32_is_zero_or_denormal() function
Add a utility function to softfloat to test whether a float32 is zero or denormal. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Diffstat (limited to 'fpu')
-rw-r--r--fpu/softfloat.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/fpu/softfloat.h b/fpu/softfloat.h
index a6d0f16..4a5345c 100644
--- a/fpu/softfloat.h
+++ b/fpu/softfloat.h
@@ -336,6 +336,11 @@ INLINE int float32_is_any_nan(float32 a)
return ((float32_val(a) & ~(1 << 31)) > 0x7f800000UL);
}
+INLINE int float32_is_zero_or_denormal(float32 a)
+{
+ return (float32_val(a) & 0x7f800000) == 0;
+}
+
#define float32_zero make_float32(0)
#define float32_one make_float32(0x3f800000)
#define float32_ln2 make_float32(0x3f317218)