blob: eac19ecd6fefed368da6fd619a803ad1763f8d5d [file] [log] [blame]
Zonr Chang932648d2010-10-13 22:23:56 +08001/*
2 * Copyright 2010, The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
Shih-wei Liao77ed6142010-04-07 12:21:42 -070017#ifdef USE_VFP_RUNTIME
18# define DEF_GENERIC_OR_VFP_RUNTIME(func) DEF_VFP_RUNTIME(func)
19# define DEF_LLVM_OR_VFP_RUNTIME(func) DEF_VFP_RUNTIME(func)
20#else
21# undef DEF_VFP_RUNTIME
22# define DEF_VFP_RUNTIME(func)
23# define DEF_GENERIC_OR_VFP_RUNTIME(func) DEF_GENERIC_RUNTIME(func)
24# define DEF_LLVM_OR_VFP_RUNTIME(func) DEF_LLVM_RUNTIME(func)
25#endif
26
27// Sorted
28DEF_LLVM_RUNTIME(__absvdi2)
29DEF_LLVM_RUNTIME(__absvsi2)
30
31DEF_GENERIC_OR_VFP_RUNTIME(__adddf3)
32DEF_GENERIC_OR_VFP_RUNTIME(__addsf3)
33
34DEF_LLVM_RUNTIME(__addvdi3)
35DEF_LLVM_RUNTIME(__addvsi3)
Kenny Root34678ab2011-02-07 10:56:27 -080036#if !defined(__i386__) && !defined(__SSE2__)
37 DEF_LLVM_RUNTIME(__ashldi3)
38#endif
Shih-wei Liao77ed6142010-04-07 12:21:42 -070039#ifndef ANDROID // has one in bionic
40 DEF_LLVM_RUNTIME(__ashrdi3)
41#endif
42
43#ifdef USE_VFP_RUNTIME
44// DEF_GENERIC_RUNTIME(__bswapdi2)
45// DEF_GENERIC_RUNTIME(__bswapsi2)
46#endif
47
48DEF_LLVM_RUNTIME(__clzdi2)
49DEF_LLVM_RUNTIME(__clzsi2)
50DEF_LLVM_RUNTIME(__cmpdi2)
51DEF_LLVM_RUNTIME(__ctzdi2)
52DEF_LLVM_RUNTIME(__ctzsi2)
53
54#ifndef ANDROID // no complex extension
55 DEF_LLVM_RUNTIME(__divdc3)
56#endif
57
58DEF_GENERIC_OR_VFP_RUNTIME(__divdf3)
59
Kenny Root34678ab2011-02-07 10:56:27 -080060#if !defined(__i386__)
61 DEF_LLVM_RUNTIME(__divdi3)
62#endif
Shih-wei Liao77ed6142010-04-07 12:21:42 -070063
64#ifndef ANDROID // no complex extension
65 DEF_LLVM_RUNTIME(__divsc3)
66#endif
67
68DEF_GENERIC_OR_VFP_RUNTIME(__divsf3)
69
70DEF_LLVM_RUNTIME(__eprintf)
71
72DEF_GENERIC_OR_VFP_RUNTIME(__eqdf2)
73DEF_GENERIC_OR_VFP_RUNTIME(__eqsf2)
74DEF_GENERIC_OR_VFP_RUNTIME(__extendsfdf2)
75
76DEF_LLVM_RUNTIME(__ffsdi2)
77DEF_LLVM_RUNTIME(__fixdfdi)
78
79DEF_GENERIC_OR_VFP_RUNTIME(__fixdfsi)
80
81DEF_LLVM_RUNTIME(__fixsfdi)
82
83DEF_GENERIC_OR_VFP_RUNTIME(__fixsfsi)
84
85DEF_LLVM_RUNTIME(__fixunsdfdi)
86DEF_LLVM_OR_VFP_RUNTIME(__fixunsdfsi)
87DEF_LLVM_RUNTIME(__fixunssfdi)
88
89DEF_LLVM_OR_VFP_RUNTIME(__fixunssfsi)
90
Kenny Root34678ab2011-02-07 10:56:27 -080091#if !defined(__i386__)
92 DEF_LLVM_RUNTIME(__floatdidf)
93 DEF_LLVM_RUNTIME(__floatdisf)
94#endif
Shih-wei Liao77ed6142010-04-07 12:21:42 -070095
96DEF_GENERIC_OR_VFP_RUNTIME(__floatsidf)
97DEF_GENERIC_OR_VFP_RUNTIME(__floatsisf)
98
Kenny Root34678ab2011-02-07 10:56:27 -080099#if !defined(__i386__)
100 DEF_LLVM_RUNTIME(__floatundidf)
101 DEF_LLVM_RUNTIME(__floatundisf)
102#endif
Shih-wei Liao77ed6142010-04-07 12:21:42 -0700103
104DEF_GENERIC_RUNTIME(__floatunsidf)
105DEF_GENERIC_RUNTIME(__floatunsisf)
106
107DEF_VFP_RUNTIME(__floatunssidf)
108DEF_VFP_RUNTIME(__floatunssisf)
109
110DEF_GENERIC_OR_VFP_RUNTIME(__gedf2)
111DEF_GENERIC_OR_VFP_RUNTIME(__gesf2)
112DEF_VFP_RUNTIME(__gtdf2)
113DEF_VFP_RUNTIME(__gtsf2)
114
115DEF_GENERIC_OR_VFP_RUNTIME(__ledf2)
116DEF_GENERIC_OR_VFP_RUNTIME(__lesf2)
117
Kenny Root34678ab2011-02-07 10:56:27 -0800118#if !defined(__i386__) && !defined(__SSE2__)
119 DEF_LLVM_RUNTIME(__lshrdi3)
120#endif
Shih-wei Liao77ed6142010-04-07 12:21:42 -0700121
122DEF_VFP_RUNTIME(__ltdf2)
123DEF_VFP_RUNTIME(__ltsf2)
124
Kenny Root34678ab2011-02-07 10:56:27 -0800125#if !defined(__i386__)
126 DEF_LLVM_RUNTIME(__moddi3)
127#endif
Shih-wei Liao77ed6142010-04-07 12:21:42 -0700128
129#ifndef ANDROID // no complex extension
130 DEF_LLVM_RUNTIME(__muldc3)
131#endif
132
133DEF_GENERIC_OR_VFP_RUNTIME(__muldf3)
Kenny Root34678ab2011-02-07 10:56:27 -0800134#if !defined(__i386__)
135 DEF_LLVM_RUNTIME(__muldi3)
136 DEF_LLVM_RUNTIME(__muldsi3)
137#endif
Shih-wei Liao210eb402010-08-26 08:55:40 -0700138
Shih-wei Liao77ed6142010-04-07 12:21:42 -0700139#ifndef ANDROID // no complex extension
140 DEF_LLVM_RUNTIME(__mulsc3)
141#endif
142
143DEF_GENERIC_OR_VFP_RUNTIME(__mulsf3)
144
145DEF_LLVM_RUNTIME(__mulvdi3)
146DEF_LLVM_RUNTIME(__mulvsi3)
147
148DEF_VFP_RUNTIME(__nedf2)
149
150DEF_GENERIC_OR_VFP_RUNTIME(__negdf2)
151
152DEF_LLVM_RUNTIME(__negdi2)
153
154DEF_GENERIC_OR_VFP_RUNTIME(__negsf2)
155
156DEF_LLVM_RUNTIME(__negvdi2)
157DEF_LLVM_RUNTIME(__negvsi2)
158
159DEF_VFP_RUNTIME(__nesf2)
160
161DEF_LLVM_RUNTIME(__paritydi2)
162DEF_LLVM_RUNTIME(__paritysi2)
163DEF_LLVM_RUNTIME(__popcountdi2)
164DEF_LLVM_RUNTIME(__popcountsi2)
165DEF_LLVM_RUNTIME(__powidf2)
166DEF_LLVM_RUNTIME(__powisf2)
167
168DEF_GENERIC_OR_VFP_RUNTIME(__subdf3)
169DEF_GENERIC_OR_VFP_RUNTIME(__subsf3)
170
171DEF_LLVM_RUNTIME(__subvdi3)
172DEF_LLVM_RUNTIME(__subvsi3)
173
174DEF_GENERIC_OR_VFP_RUNTIME(__truncdfsf2)
175
176DEF_LLVM_RUNTIME(__ucmpdi2)
Kenny Root34678ab2011-02-07 10:56:27 -0800177#if !defined(__i386__)
178 DEF_LLVM_RUNTIME(__udivdi3)
179#endif
Shih-wei Liao77ed6142010-04-07 12:21:42 -0700180DEF_LLVM_RUNTIME(__udivmoddi4)
Shih-wei Liao210eb402010-08-26 08:55:40 -0700181DEF_LLVM_RUNTIME(__udivsi3)
Kenny Root34678ab2011-02-07 10:56:27 -0800182#if !defined(__i386__)
183 DEF_LLVM_RUNTIME(__umoddi3)
184#endif
Shih-wei Liao77ed6142010-04-07 12:21:42 -0700185
186DEF_GENERIC_OR_VFP_RUNTIME(__unorddf2)
187DEF_GENERIC_OR_VFP_RUNTIME(__unordsf2)
188
Shih-wei Liao77ed6142010-04-07 12:21:42 -0700189#undef DEF_GENERIC_RUNTIME
190#undef DEF_LLVM_RUNTIME
191#undef DEF_VFP_RUNTIME
Shih-wei Liaoabd1e3d2010-04-28 01:47:00 -0700192#undef DEF_BCC_RUNTIME