]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/projects/libunwind/include/__libunwind_config.h
MFC r345703:
[FreeBSD/FreeBSD.git] / contrib / llvm / projects / libunwind / include / __libunwind_config.h
1 //===------------------------- __libunwind_config.h -----------------------===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #ifndef ____LIBUNWIND_CONFIG_H__
11 #define ____LIBUNWIND_CONFIG_H__
12
13 #if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \
14     !defined(__ARM_DWARF_EH__)
15 #define _LIBUNWIND_ARM_EHABI 1
16 #else
17 #define _LIBUNWIND_ARM_EHABI 0
18 #endif
19
20 #if defined(_LIBUNWIND_IS_NATIVE_ONLY)
21 # if defined(__i386__)
22 #  define _LIBUNWIND_TARGET_I386 1
23 #  define _LIBUNWIND_CONTEXT_SIZE 8
24 #  define _LIBUNWIND_CURSOR_SIZE 19
25 #  define _LIBUNWIND_MAX_REGISTER 9
26 # elif defined(__x86_64__)
27 #  define _LIBUNWIND_TARGET_X86_64 1
28 #  define _LIBUNWIND_CONTEXT_SIZE 21
29 #  define _LIBUNWIND_CURSOR_SIZE 33
30 #  define _LIBUNWIND_MAX_REGISTER 17
31 # elif defined(__ppc__)
32 #  define _LIBUNWIND_TARGET_PPC 1
33 #  define _LIBUNWIND_CONTEXT_SIZE 117
34 #  define _LIBUNWIND_CURSOR_SIZE 128
35 #  define _LIBUNWIND_MAX_REGISTER 113
36 # elif defined(__aarch64__)
37 #  define _LIBUNWIND_TARGET_AARCH64 1
38 #  define _LIBUNWIND_CONTEXT_SIZE 66
39 #  define _LIBUNWIND_CURSOR_SIZE 78
40 #  define _LIBUNWIND_MAX_REGISTER 96
41 # elif defined(__arm__)
42 #  define _LIBUNWIND_TARGET_ARM 1
43 #  define _LIBUNWIND_CONTEXT_SIZE 60
44 #  define _LIBUNWIND_CURSOR_SIZE 67
45 #  define _LIBUNWIND_MAX_REGISTER 96
46 # elif defined(__or1k__)
47 #  define _LIBUNWIND_TARGET_OR1K 1
48 #  define _LIBUNWIND_CONTEXT_SIZE 16
49 #  define _LIBUNWIND_CURSOR_SIZE 28
50 #  define _LIBUNWIND_MAX_REGISTER 32
51 # elif defined(__riscv)
52 #  define _LIBUNWIND_TARGET_RISCV 1
53 #  define _LIBUNWIND_CONTEXT_SIZE 64
54 #  define _LIBUNWIND_CURSOR_SIZE 76
55 #  define _LIBUNWIND_MAX_REGISTER 96
56 # elif defined(__mips__)
57 #  if defined(_ABIO32) && _MIPS_SIM == _ABIO32
58 #    define _LIBUNWIND_TARGET_MIPS_O32 1
59 #    if defined(__mips_hard_float)
60 #      define _LIBUNWIND_CONTEXT_SIZE 50
61 #      define _LIBUNWIND_CURSOR_SIZE 61
62 #    else
63 #      define _LIBUNWIND_CONTEXT_SIZE 18
64 #      define _LIBUNWIND_CURSOR_SIZE 29
65 #    endif
66 #  elif defined(_ABIN32) && _MIPS_SIM == _ABIN32
67 #    define _LIBUNWIND_TARGET_MIPS_NEWABI 1
68 #    if defined(__mips_hard_float)
69 #      define _LIBUNWIND_CONTEXT_SIZE 67
70 #      define _LIBUNWIND_CURSOR_SIZE 78
71 #    else
72 #      define _LIBUNWIND_CONTEXT_SIZE 35
73 #      define _LIBUNWIND_CURSOR_SIZE 46
74 #    endif
75 #  elif defined(_ABI64) && _MIPS_SIM == _ABI64
76 #    define _LIBUNWIND_TARGET_MIPS_NEWABI 1
77 #    if defined(__mips_hard_float)
78 #      define _LIBUNWIND_CONTEXT_SIZE 67
79 #      define _LIBUNWIND_CURSOR_SIZE 79
80 #    else
81 #      define _LIBUNWIND_CONTEXT_SIZE 35
82 #      define _LIBUNWIND_CURSOR_SIZE 47
83 #    endif
84 #  else
85 #    error "Unsupported MIPS ABI and/or environment"
86 #  endif
87 #  define _LIBUNWIND_MAX_REGISTER 66
88 # else
89 #  error "Unsupported architecture."
90 # endif
91 #else // !_LIBUNWIND_IS_NATIVE_ONLY
92 # define _LIBUNWIND_TARGET_I386 1
93 # define _LIBUNWIND_TARGET_X86_64 1
94 # define _LIBUNWIND_TARGET_PPC 1
95 # define _LIBUNWIND_TARGET_AARCH64 1
96 # define _LIBUNWIND_TARGET_ARM 1
97 # define _LIBUNWIND_TARGET_OR1K 1
98 # define _LIBUNWIND_TARGET_MIPS_O32 1
99 # define _LIBUNWIND_TARGET_MIPS_NEWABI 1
100 # define _LIBUNWIND_CONTEXT_SIZE 128
101 # define _LIBUNWIND_CURSOR_SIZE 140
102 # define _LIBUNWIND_MAX_REGISTER 120
103 #endif // _LIBUNWIND_IS_NATIVE_ONLY
104
105 #endif // ____LIBUNWIND_CONFIG_H__