1 //===-- vfp_alias.S - Override generic runtimes with VFP version ----------===// 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 #include "../assembly.h" 11 12 #include "adddf3vfp.S" 13 #include "addsf3vfp.S" 14 #include "divdf3vfp.S" 15 #include "divsf3vfp.S" 16 #include "eqdf2vfp.S" 17 #include "eqsf2vfp.S" 18 #include "extendsfdf2vfp.S" 19 #include "fixdfsivfp.S" 20 #include "fixsfsivfp.S" 21 #include "fixunsdfsivfp.S" 22 #include "fixunssfsivfp.S" 23 #include "floatsidfvfp.S" 24 #include "floatsisfvfp.S" 25 #include "floatunssidfvfp.S" 26 #include "floatunssisfvfp.S" 27 #include "gedf2vfp.S" 28 #include "gesf2vfp.S" 29 #include "gtdf2vfp.S" 30 #include "gtsf2vfp.S" 31 #include "ledf2vfp.S" 32 #include "lesf2vfp.S" 33 #include "ltdf2vfp.S" 34 #include "ltsf2vfp.S" 35 #include "muldf3vfp.S" 36 #include "mulsf3vfp.S" 37 #include "nedf2vfp.S" 38 #include "negdf2vfp.S" 39 #include "negsf2vfp.S" 40 #include "nesf2vfp.S" 41 #include "subdf3vfp.S" 42 #include "subsf3vfp.S" 43 #include "truncdfsf2vfp.S" 44 #include "unorddf2vfp.S" 45 #include "unordsf2vfp.S" 46 47 #define DEFINE_VFP_FUNCTION_ALIAS(name) \ 48 DEFINE_COMPILERRT_FUNCTION_ALIAS(name, name ## vfp) 49 50 #define DEFINE_VFP_AND_AEABI_ALIAS(aeabi_name, name) \ 51 DEFINE_VFP_FUNCTION_ALIAS(name) \ 52 DEFINE_AEABI_FUNCTION_ALIAS(aeabi_name, name) 53 54 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dadd, __adddf3) 55 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fadd, __addsf3) 56 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_ddiv, __divdf3) 57 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fdiv, __divsf3) 58 DEFINE_VFP_FUNCTION_ALIAS(__eqdf2) 59 DEFINE_VFP_FUNCTION_ALIAS(__eqsf2) 60 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_f2d, __extendsfdf2) 61 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_d2iz, __fixdfsi) 62 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_f2iz, __fixsfsi) 63 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_d2uiz, __fixunsdfsi) 64 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_f2uiz, __fixunssfsi) 65 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_i2d, __floatsidf) 66 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_i2f, __floatsisf) 67 DEFINE_VFP_FUNCTION_ALIAS(__gedf2) 68 DEFINE_VFP_FUNCTION_ALIAS(__gesf2) 69 DEFINE_VFP_FUNCTION_ALIAS(__gtdf2) 70 DEFINE_VFP_FUNCTION_ALIAS(__gtsf2) 71 DEFINE_VFP_FUNCTION_ALIAS(__ledf2) 72 DEFINE_VFP_FUNCTION_ALIAS(__lesf2) 73 DEFINE_VFP_FUNCTION_ALIAS(__ltdf2) 74 DEFINE_VFP_FUNCTION_ALIAS(__ltsf2) 75 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dmul, __muldf3) 76 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fmul, __mulsf3) 77 DEFINE_VFP_FUNCTION_ALIAS(__nedf2) 78 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dneg, __negdf2) 79 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fneg, __negsf2) 80 DEFINE_VFP_FUNCTION_ALIAS(__nesf2) 81 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dsub, __subdf3) 82 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fsub, __subsf3) 83 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_d2f, __truncdfsf2) 84 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dcmpun, __unorddf2) 85 DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fcmpun, __unordsf2) 86 87 // Alias __floatunsidf to __floatunssidfvfp 88 DEFINE_COMPILERRT_FUNCTION_ALIAS(__floatunsidf, __floatunssidfvfp) 89 DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_ui2d, __floatunsidf) 90 91 // Alias __floatunsisf to __floatunsisfvfp 92 DEFINE_COMPILERRT_FUNCTION_ALIAS(__floatunsisf, __floatunssisfvfp) 93 DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_ui2f, __floatunsisf) 94