Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. //===----------------------------------------------------------------------===//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8.  
  9. #ifndef ____LIBUNWIND_CONFIG_H__
  10. #define ____LIBUNWIND_CONFIG_H__
  11.  
  12. #define _LIBUNWIND_VERSION 15000
  13.  
  14. #if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \
  15.     !defined(__ARM_DWARF_EH__) && !defined(__SEH__)
  16. #define _LIBUNWIND_ARM_EHABI
  17. #endif
  18.  
  19. #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86       8
  20. #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86_64    32
  21. #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC       112
  22. #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64     116
  23. #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM64     95
  24. #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM       287
  25. #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K      32
  26. #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_MIPS      65
  27. #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC     31
  28. #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC64   31
  29. #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_HEXAGON   34
  30. #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_RISCV     64
  31. #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_VE        143
  32. #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_S390X     83
  33. #define _LIBUNWIND_HIGHEST_DWARF_REGISTER_LOONGARCH 64
  34.  
  35. #if defined(_LIBUNWIND_IS_NATIVE_ONLY)
  36. # if defined(__linux__)
  37. #  define _LIBUNWIND_TARGET_LINUX 1
  38. # endif
  39. # if defined(__i386__)
  40. #  define _LIBUNWIND_TARGET_I386
  41. #  define _LIBUNWIND_CONTEXT_SIZE 8
  42. #  define _LIBUNWIND_CURSOR_SIZE 15
  43. #  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86
  44. # elif defined(__x86_64__)
  45. #  define _LIBUNWIND_TARGET_X86_64 1
  46. #  if defined(_WIN64)
  47. #    define _LIBUNWIND_CONTEXT_SIZE 54
  48. #    ifdef __SEH__
  49. #      define _LIBUNWIND_CURSOR_SIZE 204
  50. #    else
  51. #      define _LIBUNWIND_CURSOR_SIZE 66
  52. #    endif
  53. #  else
  54. #    define _LIBUNWIND_CONTEXT_SIZE 21
  55. #    define _LIBUNWIND_CURSOR_SIZE 33
  56. #  endif
  57. #  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86_64
  58. # elif defined(__powerpc64__)
  59. #  define _LIBUNWIND_TARGET_PPC64 1
  60. #  define _LIBUNWIND_CONTEXT_SIZE 167
  61. #  define _LIBUNWIND_CURSOR_SIZE 179
  62. #  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64
  63. # elif defined(__powerpc__)
  64. #  define _LIBUNWIND_TARGET_PPC 1
  65. #  define _LIBUNWIND_CONTEXT_SIZE 117
  66. #  define _LIBUNWIND_CURSOR_SIZE 124
  67. #  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC
  68. # elif defined(__aarch64__)
  69. #  define _LIBUNWIND_TARGET_AARCH64 1
  70. #  define _LIBUNWIND_CONTEXT_SIZE 66
  71. #  if defined(__SEH__)
  72. #    define _LIBUNWIND_CURSOR_SIZE 164
  73. #  else
  74. #    define _LIBUNWIND_CURSOR_SIZE 78
  75. #  endif
  76. #  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM64
  77. # elif defined(__arm__)
  78. #  define _LIBUNWIND_TARGET_ARM 1
  79. #  if defined(__SEH__)
  80. #    define _LIBUNWIND_CONTEXT_SIZE 42
  81. #    define _LIBUNWIND_CURSOR_SIZE 80
  82. #  elif defined(__ARM_WMMX)
  83. #    define _LIBUNWIND_CONTEXT_SIZE 61
  84. #    define _LIBUNWIND_CURSOR_SIZE 68
  85. #  else
  86. #    define _LIBUNWIND_CONTEXT_SIZE 42
  87. #    define _LIBUNWIND_CURSOR_SIZE 49
  88. #  endif
  89. #  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM
  90. # elif defined(__or1k__)
  91. #  define _LIBUNWIND_TARGET_OR1K 1
  92. #  define _LIBUNWIND_CONTEXT_SIZE 16
  93. #  define _LIBUNWIND_CURSOR_SIZE 24
  94. #  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K
  95. # elif defined(__hexagon__)
  96. #  define _LIBUNWIND_TARGET_HEXAGON 1
  97. // Values here change when : Registers.hpp - hexagon_thread_state_t change
  98. #  define _LIBUNWIND_CONTEXT_SIZE 18
  99. #  define _LIBUNWIND_CURSOR_SIZE 24
  100. #  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_HEXAGON
  101. # elif defined(__mips__)
  102. #  if defined(_ABIO32) && _MIPS_SIM == _ABIO32
  103. #    define _LIBUNWIND_TARGET_MIPS_O32 1
  104. #    if defined(__mips_hard_float)
  105. #      define _LIBUNWIND_CONTEXT_SIZE 50
  106. #      define _LIBUNWIND_CURSOR_SIZE 57
  107. #    else
  108. #      define _LIBUNWIND_CONTEXT_SIZE 18
  109. #      define _LIBUNWIND_CURSOR_SIZE 24
  110. #    endif
  111. #  elif defined(_ABIN32) && _MIPS_SIM == _ABIN32
  112. #    define _LIBUNWIND_TARGET_MIPS_NEWABI 1
  113. #    if defined(__mips_hard_float)
  114. #      define _LIBUNWIND_CONTEXT_SIZE 67
  115. #      define _LIBUNWIND_CURSOR_SIZE 74
  116. #    else
  117. #      define _LIBUNWIND_CONTEXT_SIZE 35
  118. #      define _LIBUNWIND_CURSOR_SIZE 42
  119. #    endif
  120. #  elif defined(_ABI64) && _MIPS_SIM == _ABI64
  121. #    define _LIBUNWIND_TARGET_MIPS_NEWABI 1
  122. #    if defined(__mips_hard_float)
  123. #      define _LIBUNWIND_CONTEXT_SIZE 67
  124. #      define _LIBUNWIND_CURSOR_SIZE 79
  125. #    else
  126. #      define _LIBUNWIND_CONTEXT_SIZE 35
  127. #      define _LIBUNWIND_CURSOR_SIZE 47
  128. #    endif
  129. #  else
  130. #    error "Unsupported MIPS ABI and/or environment"
  131. #  endif
  132. #  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_MIPS
  133. #elif defined(__sparc__) && defined(__arch64__)
  134. #define _LIBUNWIND_TARGET_SPARC64 1
  135. #define _LIBUNWIND_HIGHEST_DWARF_REGISTER                                      \
  136.   _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC64
  137. #define _LIBUNWIND_CONTEXT_SIZE 33
  138. #define _LIBUNWIND_CURSOR_SIZE 45
  139. # elif defined(__sparc__)
  140.   #define _LIBUNWIND_TARGET_SPARC 1
  141.   #define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC
  142.   #define _LIBUNWIND_CONTEXT_SIZE 16
  143.   #define _LIBUNWIND_CURSOR_SIZE 23
  144. # elif defined(__riscv)
  145. #  define _LIBUNWIND_TARGET_RISCV 1
  146. #  if defined(__riscv_flen)
  147. #   define RISCV_FLEN __riscv_flen
  148. #  else
  149. #   define RISCV_FLEN 0
  150. #  endif
  151. #  define _LIBUNWIND_CONTEXT_SIZE (32 * (__riscv_xlen + RISCV_FLEN) / 64)
  152. #  if __riscv_xlen == 32
  153. #   define _LIBUNWIND_CURSOR_SIZE (_LIBUNWIND_CONTEXT_SIZE + 7)
  154. #  elif __riscv_xlen == 64
  155. #   define _LIBUNWIND_CURSOR_SIZE (_LIBUNWIND_CONTEXT_SIZE + 12)
  156. #  else
  157. #   error "Unsupported RISC-V ABI"
  158. #  endif
  159. # define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_RISCV
  160. # elif defined(__ve__)
  161. #  define _LIBUNWIND_TARGET_VE 1
  162. #  define _LIBUNWIND_CONTEXT_SIZE 67
  163. #  define _LIBUNWIND_CURSOR_SIZE 79
  164. #  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_VE
  165. # elif defined(__s390x__)
  166. #  define _LIBUNWIND_TARGET_S390X 1
  167. #  define _LIBUNWIND_CONTEXT_SIZE 34
  168. #  define _LIBUNWIND_CURSOR_SIZE 46
  169. #  define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_S390X
  170. #elif defined(__loongarch__)
  171. #define _LIBUNWIND_TARGET_LOONGARCH 1
  172. #if __loongarch_grlen == 64
  173. #define _LIBUNWIND_CONTEXT_SIZE 65
  174. #define _LIBUNWIND_CURSOR_SIZE 77
  175. #else
  176. #error "Unsupported LoongArch ABI"
  177. #endif
  178. #define _LIBUNWIND_HIGHEST_DWARF_REGISTER                                      \
  179.   _LIBUNWIND_HIGHEST_DWARF_REGISTER_LOONGARCH
  180. # else
  181. #  error "Unsupported architecture."
  182. # endif
  183. #else // !_LIBUNWIND_IS_NATIVE_ONLY
  184. # define _LIBUNWIND_TARGET_I386
  185. # define _LIBUNWIND_TARGET_X86_64 1
  186. # define _LIBUNWIND_TARGET_PPC 1
  187. # define _LIBUNWIND_TARGET_PPC64 1
  188. # define _LIBUNWIND_TARGET_AARCH64 1
  189. # define _LIBUNWIND_TARGET_ARM 1
  190. # define _LIBUNWIND_TARGET_OR1K 1
  191. # define _LIBUNWIND_TARGET_MIPS_O32 1
  192. # define _LIBUNWIND_TARGET_MIPS_NEWABI 1
  193. # define _LIBUNWIND_TARGET_SPARC 1
  194. # define _LIBUNWIND_TARGET_SPARC64 1
  195. # define _LIBUNWIND_TARGET_HEXAGON 1
  196. # define _LIBUNWIND_TARGET_RISCV 1
  197. # define _LIBUNWIND_TARGET_VE 1
  198. # define _LIBUNWIND_TARGET_S390X 1
  199. #define _LIBUNWIND_TARGET_LOONGARCH 1
  200. # define _LIBUNWIND_CONTEXT_SIZE 167
  201. # define _LIBUNWIND_CURSOR_SIZE 179
  202. # define _LIBUNWIND_HIGHEST_DWARF_REGISTER 287
  203. #endif // _LIBUNWIND_IS_NATIVE_ONLY
  204.  
  205. #endif // ____LIBUNWIND_CONFIG_H__
  206.