diff options
author | Jonathan Corbet <corbet@lwn.net> | 2019-06-14 14:18:53 -0600 |
---|---|---|
committer | Jonathan Corbet <corbet@lwn.net> | 2019-06-14 14:18:53 -0600 |
commit | 8afecfb0ec961e37e61b2d19c4fa71617a9482de (patch) | |
tree | c43ea51a47b1e76b762caa4c1b0c356249e5e874 /arch/nds32/math-emu/fd2ui.c | |
parent | Documentation: Remove duplicate x86 index entry (diff) | |
parent | Linux 5.2-rc4 (diff) | |
download | linux-dev-8afecfb0ec961e37e61b2d19c4fa71617a9482de.tar.xz linux-dev-8afecfb0ec961e37e61b2d19c4fa71617a9482de.zip |
Merge tag 'v5.2-rc4' into mauro
We need to pick up post-rc1 changes to various document files so they don't
get lost in Mauro's massive RST conversion push.
Diffstat (limited to 'arch/nds32/math-emu/fd2ui.c')
-rw-r--r-- | arch/nds32/math-emu/fd2ui.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/arch/nds32/math-emu/fd2ui.c b/arch/nds32/math-emu/fd2ui.c new file mode 100644 index 000000000000..a0423b699aa4 --- /dev/null +++ b/arch/nds32/math-emu/fd2ui.c @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: GPL-2.0 +// Copyright (C) 2005-2019 Andes Technology Corporation +#include <linux/uaccess.h> + +#include <asm/sfp-machine.h> +#include <math-emu/soft-fp.h> +#include <math-emu/double.h> + +void fd2ui(void *ft, void *fa) +{ + unsigned int r; + + FP_DECL_D(A); + FP_DECL_EX; + + FP_UNPACK_DP(A, fa); + + if (A_c == FP_CLS_INF) { + *(unsigned int *)ft = (A_s == 0) ? 0xffffffff : 0x00000000; + __FPU_FPCSR |= FP_EX_INVALID; + } else if (A_c == FP_CLS_NAN) { + *(unsigned int *)ft = 0xffffffff; + __FPU_FPCSR |= FP_EX_INVALID; + } else { + FP_TO_INT_ROUND_D(r, A, 32, 0); + __FPU_FPCSR |= FP_CUR_EXCEPTIONS; + *(unsigned int *)ft = r; + } + +} |