summaryrefslogtreecommitdiff
path: root/target-arm
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2011-05-19 14:46:18 +0100
committerAurelien Jarno <aurelien@aurel32.net>2011-05-23 22:39:36 +0200
commitd7ad84554e82b9312bc4fa6b0c0d738e5ef5ac56 (patch)
tree2ef460bb4d8f3515c4e9ae912940bd8ace4cf078 /target-arm
parent24927e7a46baa1407c73a794eead16a1f501d857 (diff)
downloadqemu-d7ad84554e82b9312bc4fa6b0c0d738e5ef5ac56.tar.gz
qemu-d7ad84554e82b9312bc4fa6b0c0d738e5ef5ac56.tar.bz2
qemu-d7ad84554e82b9312bc4fa6b0c0d738e5ef5ac56.zip
target-arm: Signal Underflow when denormal flushed to zero on output
On ARM the architecture mandates that when an output denormal is flushed to zero we must set the FPSCR UFC (underflow) bit, so map softfloat's float_flag_output_denormal accordingly. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Diffstat (limited to 'target-arm')
-rw-r--r--target-arm/helper.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target-arm/helper.c b/target-arm/helper.c
index f07252768a..05b3ccca2d 100644
--- a/target-arm/helper.c
+++ b/target-arm/helper.c
@@ -2355,7 +2355,7 @@ static inline int vfp_exceptbits_from_host(int host_bits)
target_bits |= 2;
if (host_bits & float_flag_overflow)
target_bits |= 4;
- if (host_bits & float_flag_underflow)
+ if (host_bits & (float_flag_underflow | float_flag_output_denormal))
target_bits |= 8;
if (host_bits & float_flag_inexact)
target_bits |= 0x10;