xref: /netbsd-src/sys/external/bsd/compiler_rt/dist/lib/builtins/fixdfsi.c (revision d31434597b255f3fd7646698e04170d148f1de49)
1ef84fd3bSjoerg /* ===-- fixdfsi.c - Implement __fixdfsi -----------------------------------===
2ef84fd3bSjoerg  *
3ef84fd3bSjoerg  *                     The LLVM Compiler Infrastructure
4ef84fd3bSjoerg  *
5ef84fd3bSjoerg  * This file is dual licensed under the MIT and the University of Illinois Open
6ef84fd3bSjoerg  * Source Licenses. See LICENSE.TXT for details.
7ef84fd3bSjoerg  *
8ef84fd3bSjoerg  * ===----------------------------------------------------------------------===
9ef84fd3bSjoerg  */
10156cd587Sjoerg 
11156cd587Sjoerg #define DOUBLE_PRECISION
12156cd587Sjoerg #include "fp_lib.h"
13ef84fd3bSjoerg typedef si_int fixint_t;
14ef84fd3bSjoerg typedef su_int fixuint_t;
15ef84fd3bSjoerg #include "fp_fixint_impl.inc"
16156cd587Sjoerg 
17ef84fd3bSjoerg COMPILER_RT_ABI si_int
__fixdfsi(fp_t a)18f7f78b33Sjoerg __fixdfsi(fp_t a) {
19ef84fd3bSjoerg     return __fixint(a);
20156cd587Sjoerg }
213044ee7eSrin 
223044ee7eSrin #if defined(__ARM_EABI__)
23*d3143459Srin #if defined(COMPILER_RT_ARMHF_TARGET)
__aeabi_d2iz(fp_t a)243044ee7eSrin AEABI_RTABI si_int __aeabi_d2iz(fp_t a) {
253044ee7eSrin   return __fixdfsi(a);
263044ee7eSrin }
27*d3143459Srin #else
28*d3143459Srin AEABI_RTABI si_int __aeabi_d2iz(fp_t a) COMPILER_RT_ALIAS(__fixdfsi);
293044ee7eSrin #endif
30*d3143459Srin #endif
31