__libunwind_config.h revision 303187
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# else
57#  error "Unsupported architecture."
58# endif
59#else // !_LIBUNWIND_IS_NATIVE_ONLY
60# define _LIBUNWIND_TARGET_I386 1
61# define _LIBUNWIND_TARGET_X86_64 1
62# define _LIBUNWIND_TARGET_PPC 1
63# define _LIBUNWIND_TARGET_AARCH64 1
64# define _LIBUNWIND_TARGET_ARM 1
65# define _LIBUNWIND_TARGET_OR1K 1
66# define _LIBUNWIND_CONTEXT_SIZE 128
67# define _LIBUNWIND_CURSOR_SIZE 140
68# define _LIBUNWIND_MAX_REGISTER 120
69#endif // _LIBUNWIND_IS_NATIVE_ONLY
70
71#endif // ____LIBUNWIND_CONFIG_H__
72