From f9288a76f1819c2dbf8d2873aebab6aec0f461f5 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Tue, 7 Jan 2014 17:19:12 +0000 Subject: softfloat: Add support for ties-away rounding IEEE754-2008 specifies a new rounding mode: "roundTiesToAway: the floating-point number nearest to the infinitely precise result shall be delivered; if the two nearest floating-point numbers bracketing an unrepresentable infinitely precise result are equally near, the one with larger magnitude shall be delivered." Implement this new mode (it is needed for ARM). The general principle is that the required code is exactly like the ties-to-even code, except that we do not need to do the "in case of exact tie clear LSB to round-to-even", because the rounding operation naturally causes the exact tie to round up in magnitude. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson --- include/fpu/softfloat.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include/fpu') diff --git a/include/fpu/softfloat.h b/include/fpu/softfloat.h index 83d324a..806ae13 100644 --- a/include/fpu/softfloat.h +++ b/include/fpu/softfloat.h @@ -152,7 +152,8 @@ enum { float_round_nearest_even = 0, float_round_down = 1, float_round_up = 2, - float_round_to_zero = 3 + float_round_to_zero = 3, + float_round_ties_away = 4, }; /*---------------------------------------------------------------------------- -- cgit v1.1