1 /* Header file for C6X ABI versions of libgcc functions. 2 Copyright (C) 2011-2020 Free Software Foundation, Inc. 3 Contributed by Bernd Schmidt <bernds@codesourcery.com> 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 __c6xabi_AEABI_NAME an alias for __GCC_NAME. */ 26 #define RENAME_LIBRARY(GCC_NAME, AEABI_NAME) \ 27 __asm__ (".globl\t__c6xabi_" #AEABI_NAME "\n" \ 28 ".set\t__c6xabi_" #AEABI_NAME \ 29 ", __gnu_" #GCC_NAME "\n"); 30 31 /* Rename helper functions to the names specified in the C6000 ELF ABI. */ 32 #ifdef L_divsi3 33 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (divsi3, divi) 34 #endif 35 #ifdef L_divdi3 36 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (divdi3, divlli) 37 #endif 38 #ifdef L_udivsi3 39 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (udivsi3, divu) 40 #endif 41 #ifdef L_udivdi3 42 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (udivdi3, divull) 43 #endif 44 #ifdef L_udivmoddi4 45 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (udivmoddi4, divremull) 46 #endif 47 #ifdef L_modsi3 48 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (modsi3, remi) 49 #endif 50 #ifdef L_moddi3 51 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (moddi3, remlli) 52 #endif 53 #ifdef L_umodsi3 54 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (umodsi3, remu) 55 #endif 56 #ifdef L_umoddi3 57 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (umoddi3, remull) 58 #endif 59 #ifdef L_negdi2 60 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (negdi2, negll) 61 #endif 62 #ifdef L_muldi3 63 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (muldi3, mpyll) 64 #endif 65 #ifdef L_ashrdi3 66 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (ashrdi3, llshr) 67 #endif 68 #ifdef L_lshrdi3 69 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (lshrdi3, llshru) 70 #endif 71 #ifdef L_ashldi3 72 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (ashldi3, llshl) 73 #endif 74 75 /* The following are excluded from softfp due to softfp_exclude_libgcc2, 76 so we rename them here rather than in sfp-machine.h. */ 77 #ifdef L_fixdfdi 78 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixdfdi, fixdlli) 79 #endif 80 #ifdef L_fixunsdfsi 81 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunsdfsi, fixdu) 82 #endif 83 #ifdef L_fixunsdfdi 84 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunsdfdi, fixdull) 85 #endif 86 #ifdef L_fixsfdi 87 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixsfdi, fixflli) 88 #endif 89 #ifdef L_fixunssfsi 90 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunssfsi, fixfu) 91 #endif 92 #ifdef L_fixunssfdi 93 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunssfdi, fixfull) 94 #endif 95 #ifdef L_floatdidf 96 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdidf, fltllid) 97 #endif 98 #ifdef L_floatundidf 99 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatundidf, fltulld) 100 #endif 101 #ifdef L_floatdisf 102 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdisf, fltllif) 103 #endif 104 #ifdef L_floatundisf 105 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatundisf, fltullf) 106 #endif 107 108 #define LIBGCC2_GNU_PREFIX 109