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