blob: 0be7bf19dc1884e33b0a425595efe295f244f505 [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
Ed Maste41020b92016-07-20 15:19:09 +000023# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 9
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000024# elif defined(__x86_64__)
25# define _LIBUNWIND_TARGET_X86_64 1
26# define _LIBUNWIND_CONTEXT_SIZE 21
27# define _LIBUNWIND_CURSOR_SIZE 33
Ed Maste41020b92016-07-20 15:19:09 +000028# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 17
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000029# elif defined(__ppc__)
30# define _LIBUNWIND_TARGET_PPC 1
31# define _LIBUNWIND_CONTEXT_SIZE 117
32# define _LIBUNWIND_CURSOR_SIZE 128
Ed Maste41020b92016-07-20 15:19:09 +000033# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 113
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000034# elif defined(__aarch64__)
35# define _LIBUNWIND_TARGET_AARCH64 1
36# define _LIBUNWIND_CONTEXT_SIZE 66
37# define _LIBUNWIND_CURSOR_SIZE 78
Ed Maste41020b92016-07-20 15:19:09 +000038# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 96
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000039# elif defined(__arm__)
40# define _LIBUNWIND_TARGET_ARM 1
Asiri Rathnayakef33c3422016-07-07 10:55:39 +000041# if defined(__ARM_WMMX)
Martin Storsjodd45ea12017-10-25 08:07:19 +000042# define _LIBUNWIND_CONTEXT_SIZE 61
43# define _LIBUNWIND_CURSOR_SIZE 68
Asiri Rathnayakef33c3422016-07-07 10:55:39 +000044# else
45# define _LIBUNWIND_CONTEXT_SIZE 42
46# define _LIBUNWIND_CURSOR_SIZE 49
47# endif
Ed Maste41020b92016-07-20 15:19:09 +000048# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 96
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000049# elif defined(__or1k__)
50# define _LIBUNWIND_TARGET_OR1K 1
51# define _LIBUNWIND_CONTEXT_SIZE 16
52# define _LIBUNWIND_CURSOR_SIZE 28
Ed Maste41020b92016-07-20 15:19:09 +000053# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 32
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000054# else
55# error "Unsupported architecture."
56# endif
57#else // !_LIBUNWIND_IS_NATIVE_ONLY
Ranjeet Singh58080112017-03-31 15:28:06 +000058# define _LIBUNWIND_TARGET_I386
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000059# define _LIBUNWIND_TARGET_X86_64 1
60# define _LIBUNWIND_TARGET_PPC 1
61# define _LIBUNWIND_TARGET_AARCH64 1
62# define _LIBUNWIND_TARGET_ARM 1
63# define _LIBUNWIND_TARGET_OR1K 1
64# define _LIBUNWIND_CONTEXT_SIZE 128
65# define _LIBUNWIND_CURSOR_SIZE 140
Ed Maste41020b92016-07-20 15:19:09 +000066# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 120
Asiri Rathnayake54387ee2016-05-25 12:36:34 +000067#endif // _LIBUNWIND_IS_NATIVE_ONLY
68
Logan Chien5191fe92015-07-19 15:23:10 +000069#endif // ____LIBUNWIND_CONFIG_H__