]> git.ipfire.org Git - thirdparty/gcc.git/blob - libgcc/config/c6x/c6x-abi.h
Update copyright years.
[thirdparty/gcc.git] / libgcc / config / c6x / c6x-abi.h
1 /* Header file for C6X ABI versions of libgcc functions.
2 Copyright (C) 2011-2024 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