c6x-abi.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. /* Header file for C6X ABI versions of libgcc functions.
  2. Copyright (C) 2011-2022 Free Software Foundation, Inc.
  3. Contributed by Bernd Schmidt <bernds@codesourcery.com>
  4. This file is part of GCC.
  5. GCC is free software; you can redistribute it and/or modify it
  6. under the terms of the GNU General Public License as published
  7. by the Free Software Foundation; either version 3, or (at your
  8. option) any later version.
  9. GCC is distributed in the hope that it will be useful, but WITHOUT
  10. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  11. or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
  12. License for more details.
  13. Under Section 7 of GPL version 3, you are granted additional
  14. permissions described in the GCC Runtime Library Exception, version
  15. 3.1, as published by the Free Software Foundation.
  16. You should have received a copy of the GNU General Public License
  17. along with GCC; see the file COPYING3. If not see
  18. <http://www.gnu.org/licenses/>. */
  19. /* Make __c6xabi_AEABI_NAME an alias for __GCC_NAME. */
  20. #define RENAME_LIBRARY(GCC_NAME, AEABI_NAME) \
  21. __asm__ (".globl\t__c6xabi_" #AEABI_NAME "\n" \
  22. ".set\t__c6xabi_" #AEABI_NAME \
  23. ", __gnu_" #GCC_NAME "\n");
  24. /* Rename helper functions to the names specified in the C6000 ELF ABI. */
  25. #ifdef L_divsi3
  26. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (divsi3, divi)
  27. #endif
  28. #ifdef L_divdi3
  29. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (divdi3, divlli)
  30. #endif
  31. #ifdef L_udivsi3
  32. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (udivsi3, divu)
  33. #endif
  34. #ifdef L_udivdi3
  35. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (udivdi3, divull)
  36. #endif
  37. #ifdef L_udivmoddi4
  38. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (udivmoddi4, divremull)
  39. #endif
  40. #ifdef L_modsi3
  41. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (modsi3, remi)
  42. #endif
  43. #ifdef L_moddi3
  44. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (moddi3, remlli)
  45. #endif
  46. #ifdef L_umodsi3
  47. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (umodsi3, remu)
  48. #endif
  49. #ifdef L_umoddi3
  50. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (umoddi3, remull)
  51. #endif
  52. #ifdef L_negdi2
  53. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (negdi2, negll)
  54. #endif
  55. #ifdef L_muldi3
  56. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (muldi3, mpyll)
  57. #endif
  58. #ifdef L_ashrdi3
  59. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (ashrdi3, llshr)
  60. #endif
  61. #ifdef L_lshrdi3
  62. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (lshrdi3, llshru)
  63. #endif
  64. #ifdef L_ashldi3
  65. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (ashldi3, llshl)
  66. #endif
  67. /* The following are excluded from softfp due to softfp_exclude_libgcc2,
  68. so we rename them here rather than in sfp-machine.h. */
  69. #ifdef L_fixdfdi
  70. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixdfdi, fixdlli)
  71. #endif
  72. #ifdef L_fixunsdfsi
  73. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunsdfsi, fixdu)
  74. #endif
  75. #ifdef L_fixunsdfdi
  76. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunsdfdi, fixdull)
  77. #endif
  78. #ifdef L_fixsfdi
  79. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixsfdi, fixflli)
  80. #endif
  81. #ifdef L_fixunssfsi
  82. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunssfsi, fixfu)
  83. #endif
  84. #ifdef L_fixunssfdi
  85. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunssfdi, fixfull)
  86. #endif
  87. #ifdef L_floatdidf
  88. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdidf, fltllid)
  89. #endif
  90. #ifdef L_floatundidf
  91. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatundidf, fltulld)
  92. #endif
  93. #ifdef L_floatdisf
  94. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdisf, fltllif)
  95. #endif
  96. #ifdef L_floatundisf
  97. #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatundisf, fltullf)
  98. #endif
  99. #define LIBGCC2_GNU_PREFIX