blob: 92494b9fc3089888ec1e79ab0a42053ce2309da3 [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__)
Ranjeet Singh58080112017-03-31 15:28:06 +000015#define _LIBUNWIND_ARM_EHABI
Logan Chien5191fe92015-07-19 15:23:10 +000016#endif
17
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000018#if defined(_LIBUNWIND_IS_NATIVE_ONLY)
19# if defined(__i386__)
Ranjeet Singh58080112017-03-31 15:28:06 +000020# define _LIBUNWIND_TARGET_I386
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000021# define _LIBUNWIND_CONTEXT_SIZE 8
22# define _LIBUNWIND_CURSOR_SIZE 19
Martin Storsjo62dd9d22017-10-27 07:59:01 +000023# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 8
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000024# elif defined(__x86_64__)
25# define _LIBUNWIND_TARGET_X86_64 1
Martin Storsjo66bb841f2017-10-27 08:11:36 +000026# if defined(_WIN64)
27# define _LIBUNWIND_CONTEXT_SIZE 54
28# define _LIBUNWIND_CURSOR_SIZE 66
29# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 32
30# else
31# define _LIBUNWIND_CONTEXT_SIZE 21
32# define _LIBUNWIND_CURSOR_SIZE 33
33# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 16
34# endif
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000035# elif defined(__ppc__)
36# define _LIBUNWIND_TARGET_PPC 1
37# define _LIBUNWIND_CONTEXT_SIZE 117
38# define _LIBUNWIND_CURSOR_SIZE 128
Martin Storsjo62dd9d22017-10-27 07:59:01 +000039# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 112
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000040# elif defined(__aarch64__)
41# define _LIBUNWIND_TARGET_AARCH64 1
42# define _LIBUNWIND_CONTEXT_SIZE 66
43# define _LIBUNWIND_CURSOR_SIZE 78
Martin Storsjo62dd9d22017-10-27 07:59:01 +000044# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 95
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000045# elif defined(__arm__)
46# define _LIBUNWIND_TARGET_ARM 1
Asiri Rathnayakef33c3422016-07-07 10:55:39 +000047# if defined(__ARM_WMMX)
Martin Storsjodd45ea12017-10-25 08:07:19 +000048# define _LIBUNWIND_CONTEXT_SIZE 61
49# define _LIBUNWIND_CURSOR_SIZE 68
Asiri Rathnayakef33c3422016-07-07 10:55:39 +000050# else
51# define _LIBUNWIND_CONTEXT_SIZE 42
52# define _LIBUNWIND_CURSOR_SIZE 49
53# endif
Martin Storsjo62dd9d22017-10-27 07:59:01 +000054# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 95
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000055# elif defined(__or1k__)
56# define _LIBUNWIND_TARGET_OR1K 1
57# define _LIBUNWIND_CONTEXT_SIZE 16
58# define _LIBUNWIND_CURSOR_SIZE 28
Martin Storsjo62dd9d22017-10-27 07:59:01 +000059# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 31
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000060# else
61# error "Unsupported architecture."
62# endif
63#else // !_LIBUNWIND_IS_NATIVE_ONLY
Ranjeet Singh58080112017-03-31 15:28:06 +000064# define _LIBUNWIND_TARGET_I386
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000065# define _LIBUNWIND_TARGET_X86_64 1
66# define _LIBUNWIND_TARGET_PPC 1
67# define _LIBUNWIND_TARGET_AARCH64 1
68# define _LIBUNWIND_TARGET_ARM 1
69# define _LIBUNWIND_TARGET_OR1K 1
70# define _LIBUNWIND_CONTEXT_SIZE 128
71# define _LIBUNWIND_CURSOR_SIZE 140
Martin Storsjo62dd9d22017-10-27 07:59:01 +000072# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 119
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000073#endif // _LIBUNWIND_IS_NATIVE_ONLY
74
Logan Chien5191fe92015-07-19 15:23:10 +000075#endif // ____LIBUNWIND_CONFIG_H__