]> git.ipfire.org Git - thirdparty/glibc.git/blame - soft-fp/truncdfsf2.c
time: Allow later version licensing.
[thirdparty/glibc.git] / soft-fp / truncdfsf2.c
CommitLineData
d876f532
UD
1/* Software floating-point emulation.
2 Truncate IEEE double into IEEE single
dff8da6b 3 Copyright (C) 1997-2024 Free Software Foundation, Inc.
d876f532 4 This file is part of the GNU C Library.
d876f532
UD
5
6 The GNU C Library is free software; you can redistribute it and/or
41bdb6e2
AJ
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
d876f532 10
638a783c
RM
11 In addition to the permissions in the GNU Lesser General Public
12 License, the Free Software Foundation gives you unlimited
13 permission to link the compiled version of this file into
14 combinations with other programs, and to distribute those
15 combinations without any restriction coming from the use of this
16 file. (The Lesser General Public License restrictions do apply in
17 other respects; for example, they cover modification of the file,
18 and distribution when not linked into a combine executable.)
19
d876f532
UD
20 The GNU C Library is distributed in the hope that it will be useful,
21 but WITHOUT ANY WARRANTY; without even the implied warranty of
22 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
41bdb6e2 23 Lesser General Public License for more details.
d876f532 24
41bdb6e2 25 You should have received a copy of the GNU Lesser General Public
59ba27a6 26 License along with the GNU C Library; if not, see
5a82c748 27 <https://www.gnu.org/licenses/>. */
d876f532
UD
28
29#include "soft-fp.h"
30#include "single.h"
31#include "double.h"
32
1e145589 33SFtype
51ca9e29 34__truncdfsf2 (DFtype a)
d876f532
UD
35{
36 FP_DECL_EX;
51ca9e29
JM
37 FP_DECL_D (A);
38 FP_DECL_S (R);
fe0b1e85 39 SFtype r;
d876f532
UD
40
41 FP_INIT_ROUNDMODE;
51ca9e29 42 FP_UNPACK_SEMIRAW_D (A, a);
d876f532 43#if _FP_W_TYPE_SIZE < _FP_FRACBITS_D
51ca9e29 44 FP_TRUNC (S, D, 1, 2, R, A);
d876f532 45#else
51ca9e29 46 FP_TRUNC (S, D, 1, 1, R, A);
d876f532 47#endif
51ca9e29 48 FP_PACK_SEMIRAW_S (r, R);
d876f532
UD
49 FP_HANDLE_EXCEPTIONS;
50
51 return r;
52}