libunwind: limit stack usage in unwind cursor

Obtained from FreeBSD SVN r302475

Differential Revision:	https://reviews.llvm.org/D22570

llvm-svn: 276128
This commit is contained in:
Ed Maste 2016-07-20 15:19:09 +00:00
parent 70ce0a9f74
commit 41020b94a3
2 changed files with 8 additions and 1 deletions

View File

@ -22,18 +22,22 @@
# define _LIBUNWIND_TARGET_I386 1 # define _LIBUNWIND_TARGET_I386 1
# define _LIBUNWIND_CONTEXT_SIZE 8 # define _LIBUNWIND_CONTEXT_SIZE 8
# define _LIBUNWIND_CURSOR_SIZE 19 # define _LIBUNWIND_CURSOR_SIZE 19
# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 9
# elif defined(__x86_64__) # elif defined(__x86_64__)
# define _LIBUNWIND_TARGET_X86_64 1 # define _LIBUNWIND_TARGET_X86_64 1
# define _LIBUNWIND_CONTEXT_SIZE 21 # define _LIBUNWIND_CONTEXT_SIZE 21
# define _LIBUNWIND_CURSOR_SIZE 33 # define _LIBUNWIND_CURSOR_SIZE 33
# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 17
# elif defined(__ppc__) # elif defined(__ppc__)
# define _LIBUNWIND_TARGET_PPC 1 # define _LIBUNWIND_TARGET_PPC 1
# define _LIBUNWIND_CONTEXT_SIZE 117 # define _LIBUNWIND_CONTEXT_SIZE 117
# define _LIBUNWIND_CURSOR_SIZE 128 # define _LIBUNWIND_CURSOR_SIZE 128
# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 113
# elif defined(__aarch64__) # elif defined(__aarch64__)
# define _LIBUNWIND_TARGET_AARCH64 1 # define _LIBUNWIND_TARGET_AARCH64 1
# define _LIBUNWIND_CONTEXT_SIZE 66 # define _LIBUNWIND_CONTEXT_SIZE 66
# define _LIBUNWIND_CURSOR_SIZE 78 # define _LIBUNWIND_CURSOR_SIZE 78
# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 96
# elif defined(__arm__) # elif defined(__arm__)
# define _LIBUNWIND_TARGET_ARM 1 # define _LIBUNWIND_TARGET_ARM 1
# if defined(__ARM_WMMX) # if defined(__ARM_WMMX)
@ -43,10 +47,12 @@
# define _LIBUNWIND_CONTEXT_SIZE 42 # define _LIBUNWIND_CONTEXT_SIZE 42
# define _LIBUNWIND_CURSOR_SIZE 49 # define _LIBUNWIND_CURSOR_SIZE 49
# endif # endif
# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 96
# elif defined(__or1k__) # elif defined(__or1k__)
# define _LIBUNWIND_TARGET_OR1K 1 # define _LIBUNWIND_TARGET_OR1K 1
# define _LIBUNWIND_CONTEXT_SIZE 16 # define _LIBUNWIND_CONTEXT_SIZE 16
# define _LIBUNWIND_CURSOR_SIZE 28 # define _LIBUNWIND_CURSOR_SIZE 28
# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 32
# else # else
# error "Unsupported architecture." # error "Unsupported architecture."
# endif # endif
@ -59,6 +65,7 @@
# define _LIBUNWIND_TARGET_OR1K 1 # define _LIBUNWIND_TARGET_OR1K 1
# define _LIBUNWIND_CONTEXT_SIZE 128 # define _LIBUNWIND_CONTEXT_SIZE 128
# define _LIBUNWIND_CURSOR_SIZE 140 # define _LIBUNWIND_CURSOR_SIZE 140
# define _LIBUNWIND_HIGHEST_DWARF_REGISTER 120
#endif // _LIBUNWIND_IS_NATIVE_ONLY #endif // _LIBUNWIND_IS_NATIVE_ONLY
#endif // ____LIBUNWIND_CONFIG_H__ #endif // ____LIBUNWIND_CONFIG_H__

View File

@ -62,7 +62,7 @@ public:
}; };
enum { enum {
kMaxRegisterNumber = 120 kMaxRegisterNumber = _LIBUNWIND_HIGHEST_DWARF_REGISTER
}; };
enum RegisterSavedWhere { enum RegisterSavedWhere {
kRegisterUnused, kRegisterUnused,