1105464Sphk/* Frv map GCC names to FR-V ABI. 2105464Sphk Copyright (C) 2000, 2003, 2004 Free Software Foundation, Inc. 3105464Sphk Contributed by Red Hat, Inc. 4105464Sphk 5105464SphkThis file is part of GCC. 6105464Sphk 7105464SphkGCC is free software; you can redistribute it and/or modify 8105464Sphkit under the terms of the GNU General Public License as published by 9105464Sphkthe Free Software Foundation; either version 2, or (at your option) 10105464Sphkany later version. 11105464Sphk 12105464SphkGCC is distributed in the hope that it will be useful, 13105464Sphkbut WITHOUT ANY WARRANTY; without even the implied warranty of 14105464SphkMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15105464SphkGNU General Public License for more details. 16105464Sphk 17105464SphkYou should have received a copy of the GNU General Public License 18105464Sphkalong with GCC; see the file COPYING. If not, write to 19105464Sphkthe Free Software Foundation, 51 Franklin Street, Fifth Floor, 20105464SphkBoston, MA 02110-1301, USA. */ 21105464Sphk 22105464Sphk/* For each of the functions in the library that has a corresponding name in 23105464Sphk the ABI, add an equivalence between the GCC name and the ABI name. This is 24105464Sphk in a separate file from frv.h so that fp-bit.c can be made to include it. */ 25105464Sphk 26105464Sphk#ifdef __GNUC__ 27105464Sphk#ifdef __FRV_UNDERSCORE__ 28105464Sphk#define RENAME_LIBRARY(OLD,NEW) \ 29105464Sphk__asm__ (".globl\t_" #NEW "\n" \ 30105464Sphk "_" #NEW "=_" #OLD "\n" \ 31105464Sphk "\t.type\t_" #NEW ",@function\n"); 32105464Sphk 33105464Sphk#else 34105464Sphk#define RENAME_LIBRARY(OLD,NEW) \ 35105464Sphk__asm__ (".globl\t" #NEW "\n" \ 36105464Sphk #NEW "=" #OLD "\n" \ 37105464Sphk "\t.type\t" #NEW ",@function\n"); 38105464Sphk#endif 39105464Sphk 40105464Sphk#define CREATE_DOUBLE_SHIFT(OLD,NEW) \ 41105464Sphk__asm__ (".text\n" \ 42105464Sphk "\t.globl\t" #NEW "\n" \ 43105464Sphk "\t.type\t" #NEW ",@function\n" \ 44219029Snetchild #NEW ":\n" \ 45105464Sphk "\tor\tgr11, gr0, gr10\n" \ 46143418Sume ".L" #OLD " = " #OLD "\n" \ 47106407Sphk "\tbra\t.L" #OLD "\n"); 48106407Sphk 49106407Sphk#ifdef L_sf_to_df 50105464Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__extendsfdf2,__ftod) 51105464Sphk#endif 52219029Snetchild 53219029Snetchild#ifdef L_sf_to_si 54105464Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__fixsfsi,__ftoi) 55105464Sphk#endif 56105464Sphk 57105464Sphk#ifdef L_sf_to_usi 58105464Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__fixunssfsi,__ftoui) 59105464Sphk#endif 60105464Sphk 61105464Sphk#ifdef L_df_to_si 62105464Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__fixdfsi,__dtoi) 63105464Sphk#endif 64105464Sphk 65105464Sphk#ifdef L_fixunssfsi 66105464Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__fixunssfsi,__ftoui) 67105464Sphk#endif 68105464Sphk 69105464Sphk#ifdef L_fixunsdfsi 70105464Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__fixunsdfsi,__dtoui) 71105464Sphk#endif 72105464Sphk 73105464Sphk#ifdef L_fixsfdi 74105464Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__fixsfdi,__ftoll) 75105464Sphk#endif 76105464Sphk 77105464Sphk#ifdef L_fixdfdi 78105464Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__fixdfdi,__dtoll) 79105464Sphk#endif 80105464Sphk 81105464Sphk#ifdef L_fixunssfdi 82105464Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__fixunssfdi,__ftoull) 83105464Sphk#endif 84105464Sphk 85105464Sphk#ifdef L_fixunsdfdi 86105464Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__fixunsdfdi,__dtoull) 87105464Sphk#endif 88238198Strasz 89105464Sphk#ifdef L_si_to_sf 90105464Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__floatsisf,__itof) 91105464Sphk#endif 92105464Sphk 93105464Sphk#ifdef L_di_to_sf 94105464Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__floatdisf,__lltof) 95105464Sphk#endif 96105464Sphk 97105464Sphk#ifdef L_df_to_sf 98105464Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__truncdfsf2,__dtof) 99105464Sphk#endif 100105464Sphk 101105464Sphk#ifdef L_si_to_df 102105464Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__floatsidf,__itod) 103105464Sphk#endif 104105464Sphk 105105464Sphk#ifdef L_floatdisf 106105464Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__floatdisf,__lltof) 107105464Sphk#endif 108105464Sphk 109105464Sphk#ifdef L_floatdidf 110125755Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__floatdidf,__lltod) 111105464Sphk#endif 112105464Sphk 113115624Sphk#ifdef L_addsub_df 114112828Sphk#define DECLARE_LIBRARY_RENAMES \ 115112828Sphk RENAME_LIBRARY(__adddf3,__addd) 116112828Sphk RENAME_LIBRARY(__subdf3,__subd) 117112828Sphk#endif 118112828Sphk 119112828Sphk#ifdef L_mul_df 120112828Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__muldf3,__muld) 121112828Sphk#endif 122112828Sphk 123112828Sphk#ifdef L_div_df 124112828Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__divdf3,__divd) 125112828Sphk#endif 126112828Sphk 127112828Sphk#ifdef L_addsub_sf 128112828Sphk#define DECLARE_LIBRARY_RENAMES \ 129112828Sphk RENAME_LIBRARY(__addsf3,__addf) \ 130112828Sphk RENAME_LIBRARY(__subsf3,__subf) 131112828Sphk#endif 132112828Sphk 133112828Sphk#ifdef L_mul_sf 134125755Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__mulsf3,__mulf) 135112828Sphk#endif 136112828Sphk 137112828Sphk#ifdef L_div_sf 138112828Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__divsf3,__divf) 139115624Sphk#endif 140125590Sphk 141112828Sphk#ifdef L_ashldi3 142114720Sphk#define DECLARE_LIBRARY_RENAMES CREATE_DOUBLE_SHIFT (__ashldi3,__sllll) 143114720Sphk#endif 144114720Sphk 145114720Sphk#ifdef L_lshrdi3 146114720Sphk#define DECLARE_LIBRARY_RENAMES CREATE_DOUBLE_SHIFT (__lshrdi3,__srlll) 147115624Sphk#endif 148114720Sphk 149114720Sphk#ifdef L_ashrdi3 150114720Sphk#define DECLARE_LIBRARY_RENAMES CREATE_DOUBLE_SHIFT (__ashrdi3,__srall) 151114720Sphk#endif 152115624Sphk 153114720Sphk#ifdef L_adddi3 154114720Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__adddi3,__addll) 155112828Sphk#endif 156112828Sphk 157112828Sphk#ifdef L_subdi3 158112828Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__subdi3,__subll) 159112828Sphk#endif 160112828Sphk 161112828Sphk#ifdef L_muldi3 162112828Sphk#define DECLARE_LIBRARY_RENAMES \ 163112828Sphk RENAME_LIBRARY(__muldi3,__mulll) 164112828Sphk RENAME_LIBRARY(__muldi3,__umulll) 165112828Sphk#endif 166112828Sphk 167112828Sphk#ifdef L_divdi3 168112828Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__divdi3,__divll) 169112828Sphk#endif 170112828Sphk 171112828Sphk#ifdef L_udivdi3 172112828Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__udivdi3,__udivll) 173112828Sphk#endif 174112828Sphk 175112828Sphk#ifdef L_moddi3 176112828Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__moddi3,__modll) 177112828Sphk#endif 178112828Sphk 179112828Sphk#ifdef L_umoddi3 180112828Sphk#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY(__umoddi3,__umodll) 181112828Sphk#endif 182112828Sphk#endif /* __GNUC__ */ 183112828Sphk