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