summaryrefslogtreecommitdiff
path: root/lib/builtins/truncsfhf2.c
AgeCommit message (Collapse)Author
2017-10-03[compiler-rt] Add back ARM EABI aliases where legal.Eli Friedman
r303188 removed all the uses of aliases for EABI functions from compiler-rt, because some of them had mismatched calling conventions. Obviously, we can't use aliases for functions which don't have the same calling convention, but that's only an issue for floating-point functions with the hardfloat ABI. In other cases, the stubs increase size and reduce performance for no benefit. This patch adds back the aliases, with appropriate checks to make sure they're only used in cases where the calling convention matches. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@314851 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-16builtins: expand out the AEABI function stubsSaleem Abdulrasool
These actually may change calling conventions. We cannot simply provide function aliases as the aliased function may have a different calling convention. Provide a forwarding function instead to permit the compiler to synthesize the calling convention adjustment thunk. Remove the `ARM_EABI_FNALIAS` macro as that is not safe to use. Resolves PR33030! git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@303188 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-07Add ARM RTABI aliases for half-precision conversionsOliver Stannard
The ARM RTABI defines these functions as __aeabi_h2f, __aeabi_f2h and __aeabi_d2h, so we need aliases for them. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@249559 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-06builtins: Use MSVC-equivalents of attributesSaleem Abdulrasool
This allows us to build the builtins using MSVC. NFC. Patch by Tee Hao Wei! git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@249375 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-14[Builtins] Implement f2h/h2f by jumping to trunc/extend.Ahmed Bougacha
Follow-up to r237161; seems like we can't use aliases, but we can do better than duplicating the bodies, especially when that body, after inlining, isn't as small as it looks. Better approaches welcome. Perhaps the best thing is just to have an #ifndef __APPLE__ over the GNUEABI names, since they're not used there. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@237323 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-12[Builtins] Implement half-precision conversions.Ahmed Bougacha
Mostly uninteresting, except: - in __extendXfYf2, when checking if the number is normal, the old code relied on the unsignedness of src_rep_t, which is a problem when sizeof(src_rep_t) < sizeof(int): the result gets promoted to int, the signedness of which breaks the comparison. I added an explicit cast; it shouldn't affect other types. - we can't pass __fp16, so src_t and src_rep_t are the same. - the gnu_*_ieee symbols are simply duplicated definitions, as aliases are problematic on mach-o (where only weak aliases are supported; that's not what we want). Differential Revision: http://reviews.llvm.org/D9693 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@237161 91177308-0d34-0410-b5e6-96231b3b80d8