]> git.ipfire.org Git - thirdparty/gcc.git/blame - libgcc/config/frv/frv-abi.h
Update copyright years.
[thirdparty/gcc.git] / libgcc / config / frv / frv-abi.h
CommitLineData
36a05131 1/* Frv map GCC names to FR-V ABI.
5624e564 2 Copyright (C) 2000-2015 Free Software Foundation, Inc.
36a05131
BS
3 Contributed by Red Hat, Inc.
4
8ac7fdcb 5 This file is part of GCC.
36a05131 6
8ac7fdcb
NF
7 GCC is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation; either version 3, or (at your option) any later
10 version.
36a05131 11
8ac7fdcb
NF
12 GCC is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 for more details.
36a05131 16
8ac7fdcb
NF
17 You should have received a copy of the GNU General Public License and
18 a copy of the GCC Runtime Library Exception along with this program;
19 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
20 <http://www.gnu.org/licenses/>. */
36a05131
BS
21
22/* For each of the functions in the library that has a corresponding name in
23 the ABI, add an equivalence between the GCC name and the ABI name. This is
24 in a separate file from frv.h so that fp-bit.c can be made to include it. */
25
26#ifdef __GNUC__
27#ifdef __FRV_UNDERSCORE__
28#define RENAME_LIBRARY(OLD,NEW) \
29__asm__ (".globl\t_" #NEW "\n" \
30 "_" #NEW "=_" #OLD "\n" \
31 "\t.type\t_" #NEW ",@function\n");
32
33#else
34#define RENAME_LIBRARY(OLD,NEW) \
35__asm__ (".globl\t" #NEW "\n" \
36 #NEW "=" #OLD "\n" \
37 "\t.type\t" #NEW ",@function\n");
38#endif
39
40#define CREATE_DOUBLE_SHIFT(OLD,NEW) \
41__asm__ (".text\n" \
42 "\t.globl\t" #NEW "\n" \
43 "\t.type\t" #NEW ",@function\n" \
44 #NEW ":\n" \
45 "\tor\tgr11, gr0, gr10\n" \
34208acf
AO
46 ".L" #OLD " = " #OLD "\n" \
47 "\tbra\t.L" #OLD "\n");
36a05131
BS
48
49#ifdef L_sf_to_df
50#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__extendsfdf2,__ftod)
51#endif
52
53#ifdef L_sf_to_si
54#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__fixsfsi,__ftoi)
55#endif
56
57#ifdef L_sf_to_usi
58#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__fixunssfsi,__ftoui)
59#endif
60
61#ifdef L_df_to_si
62#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__fixdfsi,__dtoi)
63#endif
64
65#ifdef L_fixunssfsi
66#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__fixunssfsi,__ftoui)
67#endif
68
69#ifdef L_fixunsdfsi
70#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__fixunsdfsi,__dtoui)
71#endif
72
73#ifdef L_fixsfdi
74#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__fixsfdi,__ftoll)
75#endif
76
77#ifdef L_fixdfdi
78#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__fixdfdi,__dtoll)
79#endif
80
81#ifdef L_fixunssfdi
82#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__fixunssfdi,__ftoull)
83#endif
84
85#ifdef L_fixunsdfdi
86#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__fixunsdfdi,__dtoull)
87#endif
88
89#ifdef L_si_to_sf
90#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__floatsisf,__itof)
91#endif
92
93#ifdef L_di_to_sf
94#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__floatdisf,__lltof)
95#endif
96
97#ifdef L_df_to_sf
98#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__truncdfsf2,__dtof)
99#endif
100
101#ifdef L_si_to_df
102#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__floatsidf,__itod)
103#endif
104
105#ifdef L_floatdisf
106#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__floatdisf,__lltof)
107#endif
108
109#ifdef L_floatdidf
110#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__floatdidf,__lltod)
111#endif
112
113#ifdef L_addsub_df
114#define DECLARE_LIBRARY_RENAMES \
115 RENAME_LIBRARY(__adddf3,__addd)
116 RENAME_LIBRARY(__subdf3,__subd)
117#endif
118
119#ifdef L_mul_df
120#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__muldf3,__muld)
121#endif
122
123#ifdef L_div_df
124#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__divdf3,__divd)
125#endif
126
127#ifdef L_addsub_sf
128#define DECLARE_LIBRARY_RENAMES \
129 RENAME_LIBRARY(__addsf3,__addf) \
130 RENAME_LIBRARY(__subsf3,__subf)
131#endif
132
133#ifdef L_mul_sf
134#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__mulsf3,__mulf)
135#endif
136
137#ifdef L_div_sf
138#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__divsf3,__divf)
139#endif
140
141#ifdef L_ashldi3
142#define DECLARE_LIBRARY_RENAMES CREATE_DOUBLE_SHIFT (__ashldi3,__sllll)
143#endif
144
145#ifdef L_lshrdi3
146#define DECLARE_LIBRARY_RENAMES CREATE_DOUBLE_SHIFT (__lshrdi3,__srlll)
147#endif
148
149#ifdef L_ashrdi3
150#define DECLARE_LIBRARY_RENAMES CREATE_DOUBLE_SHIFT (__ashrdi3,__srall)
151#endif
152
153#ifdef L_adddi3
154#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__adddi3,__addll)
155#endif
156
157#ifdef L_subdi3
158#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__subdi3,__subll)
159#endif
160
161#ifdef L_muldi3
162#define DECLARE_LIBRARY_RENAMES \
163 RENAME_LIBRARY(__muldi3,__mulll)
164 RENAME_LIBRARY(__muldi3,__umulll)
165#endif
166
167#ifdef L_divdi3
168#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__divdi3,__divll)
169#endif
170
171#ifdef L_udivdi3
172#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__udivdi3,__udivll)
173#endif
174
175#ifdef L_moddi3
176#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__moddi3,__modll)
177#endif
178
179#ifdef L_umoddi3
180#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__umoddi3,__umodll)
181#endif
182#endif /* __GNUC__ */