1 //===-- lib/extendhfsf2.c - half -> single conversion -------------*- C -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is dual licensed under the MIT and the University of Illinois Open 6 // Source Licenses. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 // 10 11 #define SRC_HALF 12 #define DST_SINGLE 13 #include "fp_extend_impl.inc" 14 15 // Use a forwarding definition and noinline to implement a poor man's alias, 16 // as there isn't a good cross-platform way of defining one. __extendhfsf2(uint16_t a)17COMPILER_RT_ABI NOINLINE float __extendhfsf2(uint16_t a) { 18 return __extendXfYf2__(a); 19 } 20 __gnu_h2f_ieee(uint16_t a)21COMPILER_RT_ABI float __gnu_h2f_ieee(uint16_t a) { 22 return __extendhfsf2(a); 23 } 24 25 #if defined(__ARM_EABI__) 26 #if defined(COMPILER_RT_ARMHF_TARGET) __aeabi_h2f(uint16_t a)27AEABI_RTABI float __aeabi_h2f(uint16_t a) { 28 return __extendhfsf2(a); 29 } 30 #else 31 AEABI_RTABI float __aeabi_h2f(uint16_t a) COMPILER_RT_ALIAS(__extendhfsf2); 32 #endif 33 #endif 34