Home | History | Annotate | Download | only in arm
      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