1 /* Header file for RX ABI versions of libgcc functions. 2 Copyright (C) 2009 3 Free Software Foundation, Inc. 4 Contributed by Red Hat. 5 6 This file is part of GCC. 7 8 GCC is free software; you can redistribute it and/or modify it 9 under the terms of the GNU General Public License as published 10 by the Free Software Foundation; either version 3, or (at your 11 option) any later 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 15 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 16 License for more details. 17 18 Under Section 7 of GPL version 3, you are granted additional 19 permissions described in the GCC Runtime Library Exception, version 20 3.1, as published by the Free Software Foundation. 21 22 You should have received a copy of the GNU General Public License 23 along with GCC; see the file COPYING3. If not see 24 <http://www.gnu.org/licenses/>. */ 25 26 /* Make __COM_<RX_NAME> an alias for __<GCC_NAME>. */ 27 #define RENAME_LIBRARY(GCC_NAME, RX_NAME) \ 28 __asm__ (".globl\t__COM_" #RX_NAME "\n" \ 29 ".set\t__COM_" #RX_NAME ", ___" #GCC_NAME "\n"); 30 31 32 /* The long-long aliases... */ 33 34 #ifdef L_muldi3 35 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (muldi3, MUL64) 36 #endif 37 38 #ifdef L_divdi3 39 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (divdi3, DIV64s) 40 #endif 41 42 #ifdef L_udivdi3 43 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (udivdi3, DIV64u) 44 #endif 45 46 #ifdef L_ashldi3 47 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (ashldi3, SHLL64) 48 #endif 49 50 #ifdef L_lshrdi3 51 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (lshrdi3, SHLR64) 52 #endif 53 54 #ifdef L_ashrdi3 55 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (ashrdi3, SHAR64) 56 #endif 57 58 #ifdef L_fixsfdi 59 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixsfdi, CONVf64s) 60 #endif 61 62 #ifdef L_fixunssfdi 63 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunssfdi, CONVf64u) 64 #endif 65 66 #ifdef L_floatdisf 67 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdisf, CONV64sf) 68 #endif 69 70 #ifdef L_floatundisf 71 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatundisf, CONV64uf) 72 #endif 73 74 #ifdef L_moddi3 75 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (moddi3, MOD64s) 76 #endif 77 78 #ifdef L_umoddi3 79 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (umoddi3, MOD64u) 80 #endif 81 82 83 #ifdef L_si_to_sf 84 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatsisf, CONV32sf) 85 #endif 86 87 #ifdef L_usi_to_sf 88 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatunsisf, CONV32uf) 89 #endif 90 91 92 93 #ifdef __RX_64BIT_DOUBLES__ 94 95 /* Float (32-bit) aliases... */ 96 97 #ifdef L_sf_to_si 98 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixsfsi, CONVf32s) 99 #endif 100 101 #ifdef L_fixunssfsi 102 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunssfsi, CONVf32u) 103 #endif 104 105 #ifdef L_addsub_sf 106 #define DECLARE_LIBRARY_RENAMES \ 107 RENAME_LIBRARY (addsf3, ADDf) \ 108 RENAME_LIBRARY (subsf3, SUBf) 109 #endif 110 111 #ifdef L_mul_sf 112 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (mulsf3, MULf) 113 #endif 114 115 #ifdef L_div_sf 116 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (divsf3, DIVf) 117 #endif 118 119 /* Double (64-bit) aliases... */ 120 121 #ifdef L_addsub_df 122 #define DECLARE_LIBRARY_RENAMES \ 123 RENAME_LIBRARY (adddf3, ADDd) \ 124 RENAME_LIBRARY (subdf3, SUBd) 125 #endif 126 127 #ifdef L_mul_df 128 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (muldf3, MULd) 129 #endif 130 131 #ifdef L_div_df 132 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (divdf3, DIVd) 133 #endif 134 135 #ifdef L_fixdfdi 136 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixdfdi, CONVd64s) 137 #endif 138 139 #ifdef L_fixunsdfdi 140 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunsdfdi, CONVd64u) 141 #endif 142 143 #ifdef L_floatdidf 144 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdisf, CONV64sd) 145 #endif 146 147 #ifdef L_floatundidf 148 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdisf, CONV64ud) 149 #endif 150 151 #ifdef L_df_to_si 152 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixdfsi, CONVd32s) 153 #endif 154 155 #ifdef L_fixunsdfsi 156 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunsdfsi, CONVd32u) 157 #endif 158 159 #ifdef L_si_to_df 160 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatsidf, CONV32sd) 161 #endif 162 163 #ifdef L_usi_to_df 164 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatunsidf, CONV32ud) 165 #endif 166 167 #ifdef L_sf_to_df 168 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (extendsfdf2, CONVfd) 169 #endif 170 171 #ifdef L_df_to_sf 172 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (truncdfsf2, CONVdf) 173 #endif 174 175 #ifdef L_negate_df 176 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (negdf2, NEGd) 177 #endif 178 179 /* The 64-bit comparison functions do not have aliases because libgcc2 180 does not provide them. Instead they have to be supplied in 181 rx-abi-functions.c. */ 182 183 184 #else /* 32-bit doubles. */ 185 186 187 #ifdef L_addsub_sf 188 #define DECLARE_LIBRARY_RENAMES \ 189 RENAME_LIBRARY (addsf3, ADDd) \ 190 RENAME_LIBRARY (subsf3, SUBd) \ 191 RENAME_LIBRARY (addsf3, ADDf) \ 192 RENAME_LIBRARY (subsf3, SUBf) 193 #endif 194 195 #ifdef L_mul_sf 196 #define DECLARE_LIBRARY_RENAMES \ 197 RENAME_LIBRARY (mulsf3, MULd) \ 198 RENAME_LIBRARY (mulsf3, MULf) 199 #endif 200 201 #ifdef L_div_sf 202 #define DECLARE_LIBRARY_RENAMES \ 203 RENAME_LIBRARY (divsf3, DIVd) \ 204 RENAME_LIBRARY (divsf3, DIVf) 205 #endif 206 207 #ifdef L_sf_to_si 208 #define DECLARE_LIBRARY_RENAMES \ 209 RENAME_LIBRARY (fixsfsi, CONVd32s) \ 210 RENAME_LIBRARY (fixsfsi, CONVf32s) 211 #endif 212 213 #ifdef L_fixunssfsi 214 #define DECLARE_LIBRARY_RENAMES \ 215 RENAME_LIBRARY (fixunssfsi, CONVd32u) \ 216 RENAME_LIBRARY (fixunssfsi, CONVf32u) 217 #endif 218 219 #ifdef L_si_to_sf 220 #define DECLARE_LIBRARY_RENAMES \ 221 RENAME_LIBRARY (floatsisf, CONV32sd) \ 222 RENAME_LIBRARY (floatsisf, CONV32sf) 223 #endif 224 225 #ifdef L_usi_to_sf 226 #define DECLARE_LIBRARY_RENAMES \ 227 RENAME_LIBRARY (floatunsisf, CONV32ud) \ 228 RENAME_LIBRARY (floatunsisf, CONV32uf) 229 #endif 230 231 #ifdef L_negate_sf 232 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (negsf2, NEGd) 233 #endif 234 235 #endif /* 64-bit vs 32-bit doubles. */ 236