blob: a9d9958be05810d07521bc5fe7674b6829fc01ae [file] [log] [blame]
Logan Chien5191fe92015-07-19 15:23:10 +00001//===------------------------- __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
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000020#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
Ed Maste41020b92016-07-20 15:19:09 +000025# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 9
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000026# elif defined(__x86_64__)
27# define _LIBUNWIND_TARGET_X86_64 1
28# define _LIBUNWIND_CONTEXT_SIZE 21
29# define _LIBUNWIND_CURSOR_SIZE 33
Ed Maste41020b92016-07-20 15:19:09 +000030# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 17
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000031# elif defined(__ppc__)
32# define _LIBUNWIND_TARGET_PPC 1
33# define _LIBUNWIND_CONTEXT_SIZE 117
34# define _LIBUNWIND_CURSOR_SIZE 128
Ed Maste41020b92016-07-20 15:19:09 +000035# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 113
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000036# elif defined(__aarch64__)
37# define _LIBUNWIND_TARGET_AARCH64 1
38# define _LIBUNWIND_CONTEXT_SIZE 66
39# define _LIBUNWIND_CURSOR_SIZE 78
Ed Maste41020b92016-07-20 15:19:09 +000040# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 96
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000041# elif defined(__arm__)
42# define _LIBUNWIND_TARGET_ARM 1
Asiri Rathnayakef33c3422016-07-07 10:55:39 +000043# if defined(__ARM_WMMX)
44# define _LIBUNWIND_CONTEXT_SIZE 60
45# define _LIBUNWIND_CURSOR_SIZE 67
46# else
47# define _LIBUNWIND_CONTEXT_SIZE 42
48# define _LIBUNWIND_CURSOR_SIZE 49
49# endif
Ed Maste41020b92016-07-20 15:19:09 +000050# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 96
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000051# elif defined(__or1k__)
52# define _LIBUNWIND_TARGET_OR1K 1
53# define _LIBUNWIND_CONTEXT_SIZE 16
54# define _LIBUNWIND_CURSOR_SIZE 28
Ed Maste41020b92016-07-20 15:19:09 +000055# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 32
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000056# 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
Ed Maste41020b92016-07-20 15:19:09 +000068# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 120
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000069#endif // _LIBUNWIND_IS_NATIVE_ONLY
70
Logan Chien5191fe92015-07-19 15:23:10 +000071#endif // ____LIBUNWIND_CONFIG_H__