[clang-format] Add .inc extension to git-clang-format
[llvm-project.git] / libunwind / include / __libunwind_config.h
blobf69fe89e9a265c88f8d54eb6902b645942eaaaa9
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 //===----------------------------------------------------------------------===//
9 #ifndef ____LIBUNWIND_CONFIG_H__
10 #define ____LIBUNWIND_CONFIG_H__
12 #define _LIBUNWIND_VERSION 15000
14 #if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \
15 !defined(__ARM_DWARF_EH__) && !defined(__SEH__)
16 #define _LIBUNWIND_ARM_EHABI
17 #endif
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
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
205 #endif // ____LIBUNWIND_CONFIG_H__