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
54DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dadd, __adddf3)
55DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fadd, __addsf3)
56DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_ddiv, __divdf3)
57DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fdiv, __divsf3)
58DEFINE_VFP_FUNCTION_ALIAS(__eqdf2)
59DEFINE_VFP_FUNCTION_ALIAS(__eqsf2)
60DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_f2d, __extendsfdf2)
61DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_d2iz, __fixdfsi)
62DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_f2iz, __fixsfsi)
63DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_d2uiz, __fixunsdfsi)
64DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_f2uiz, __fixunssfsi)
65DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_i2d, __floatsidf)
66DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_i2f, __floatsisf)
67DEFINE_VFP_FUNCTION_ALIAS(__gedf2)
68DEFINE_VFP_FUNCTION_ALIAS(__gesf2)
69DEFINE_VFP_FUNCTION_ALIAS(__gtdf2)
70DEFINE_VFP_FUNCTION_ALIAS(__gtsf2)
71DEFINE_VFP_FUNCTION_ALIAS(__ledf2)
72DEFINE_VFP_FUNCTION_ALIAS(__lesf2)
73DEFINE_VFP_FUNCTION_ALIAS(__ltdf2)
74DEFINE_VFP_FUNCTION_ALIAS(__ltsf2)
75DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dmul, __muldf3)
76DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fmul, __mulsf3)
77DEFINE_VFP_FUNCTION_ALIAS(__nedf2)
78DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dneg, __negdf2)
79DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fneg, __negsf2)
80DEFINE_VFP_FUNCTION_ALIAS(__nesf2)
81DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dsub, __subdf3)
82DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fsub, __subsf3)
83DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_d2f, __truncdfsf2)
84DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dcmpun, __unorddf2)
85DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fcmpun, __unordsf2)
86
87// Alias __floatunsidf to __floatunssidfvfp
88DEFINE_COMPILERRT_FUNCTION_ALIAS(__floatunsidf, __floatunssidfvfp)
89DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_ui2d, __floatunsidf)
90
91// Alias __floatunsisf to __floatunsisfvfp
92DEFINE_COMPILERRT_FUNCTION_ALIAS(__floatunsisf, __floatunssisfvfp)
93DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_ui2f, __floatunsisf)
94