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