1  /* Header file for PRU ABI versions of libgcc functions.
       2     Copyright (C) 2011-2023 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