**diff options**

author | Peter Maydell <peter.maydell@linaro.org> | 2014-01-07 17:19:12 +0000 |
---|---|---|

committer | Peter Maydell <peter.maydell@linaro.org> | 2014-01-08 19:07:22 +0000 |

commit | f9288a76f1819c2dbf8d2873aebab6aec0f461f5 (patch) | |

tree | 2dd23209dc6a2cf78d917e3ca6ecfebee548c6a8 /include/fpu | |

parent | dc355b764de890e1b5872d0b402dccfd9a9b5286 (diff) | |

download | qemu-arm-f9288a76f1819c2dbf8d2873aebab6aec0f461f5.tar.gz |

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 <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>

Diffstat (limited to 'include/fpu')

-rw-r--r-- | include/fpu/softfloat.h | 3 |

1 files changed, 2 insertions, 1 deletions

diff --git a/include/fpu/softfloat.h b/include/fpu/softfloat.h index 83d324aca8..806ae13780 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, }; /*---------------------------------------------------------------------------- |