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