blob: 5e3cf274242750145d7309cf17d178ddf9bf4a11 [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
Martin Storsjod9e89092017-10-28 20:19:49 +000018#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86 8
19#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86_64 32
20#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC 112
21#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM64 95
Martin Storsjo6a3ed9b2017-11-02 08:16:16 +000022#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM 287
Martin Storsjod9e89092017-10-28 20:19:49 +000023#define _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K 31
24
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000025#if defined(_LIBUNWIND_IS_NATIVE_ONLY)
26# if defined(__i386__)
Ranjeet Singh58080112017-03-31 15:28:06 +000027# define _LIBUNWIND_TARGET_I386
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000028# define _LIBUNWIND_CONTEXT_SIZE 8
Martin Storsjoc18d5c02017-10-30 19:06:34 +000029# define _LIBUNWIND_CURSOR_SIZE 15
Martin Storsjod9e89092017-10-28 20:19:49 +000030# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000031# elif defined(__x86_64__)
32# define _LIBUNWIND_TARGET_X86_64 1
Martin Storsjo66bb841f2017-10-27 08:11:36 +000033# if defined(_WIN64)
34# define _LIBUNWIND_CONTEXT_SIZE 54
35# define _LIBUNWIND_CURSOR_SIZE 66
Martin Storsjo66bb841f2017-10-27 08:11:36 +000036# else
37# define _LIBUNWIND_CONTEXT_SIZE 21
38# define _LIBUNWIND_CURSOR_SIZE 33
Martin Storsjo66bb841f2017-10-27 08:11:36 +000039# endif
Martin Storsjod9e89092017-10-28 20:19:49 +000040# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86_64
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000041# elif defined(__ppc__)
42# define _LIBUNWIND_TARGET_PPC 1
43# define _LIBUNWIND_CONTEXT_SIZE 117
Martin Storsjoc18d5c02017-10-30 19:06:34 +000044# define _LIBUNWIND_CURSOR_SIZE 124
Martin Storsjod9e89092017-10-28 20:19:49 +000045# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000046# elif defined(__aarch64__)
47# define _LIBUNWIND_TARGET_AARCH64 1
48# define _LIBUNWIND_CONTEXT_SIZE 66
49# define _LIBUNWIND_CURSOR_SIZE 78
Martin Storsjod9e89092017-10-28 20:19:49 +000050# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM64
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000051# elif defined(__arm__)
52# define _LIBUNWIND_TARGET_ARM 1
Asiri Rathnayakef33c3422016-07-07 10:55:39 +000053# if defined(__ARM_WMMX)
Martin Storsjodd45ea12017-10-25 08:07:19 +000054# define _LIBUNWIND_CONTEXT_SIZE 61
55# define _LIBUNWIND_CURSOR_SIZE 68
Asiri Rathnayakef33c3422016-07-07 10:55:39 +000056# else
57# define _LIBUNWIND_CONTEXT_SIZE 42
58# define _LIBUNWIND_CURSOR_SIZE 49
59# endif
Martin Storsjod9e89092017-10-28 20:19:49 +000060# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000061# elif defined(__or1k__)
62# define _LIBUNWIND_TARGET_OR1K 1
63# define _LIBUNWIND_CONTEXT_SIZE 16
Martin Storsjoc18d5c02017-10-30 19:06:34 +000064# define _LIBUNWIND_CURSOR_SIZE 24
Martin Storsjod9e89092017-10-28 20:19:49 +000065# define _LIBUNWIND_HIGHEST_DWARF_REGISTER _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000066# else
67# error "Unsupported architecture."
68# endif
69#else // !_LIBUNWIND_IS_NATIVE_ONLY
Ranjeet Singh58080112017-03-31 15:28:06 +000070# define _LIBUNWIND_TARGET_I386
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000071# define _LIBUNWIND_TARGET_X86_64 1
72# define _LIBUNWIND_TARGET_PPC 1
73# define _LIBUNWIND_TARGET_AARCH64 1
74# define _LIBUNWIND_TARGET_ARM 1
75# define _LIBUNWIND_TARGET_OR1K 1
76# define _LIBUNWIND_CONTEXT_SIZE 128
77# define _LIBUNWIND_CURSOR_SIZE 140
Martin Storsjo6a3ed9b2017-11-02 08:16:16 +000078# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 287
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000079#endif // _LIBUNWIND_IS_NATIVE_ONLY
80
Logan Chien5191fe92015-07-19 15:23:10 +000081#endif // ____LIBUNWIND_CONFIG_H__