summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/projects/libunwind/include
diff options
context:
space:
mode:
authoremaste <emaste@FreeBSD.org>2016-07-25 19:37:10 +0000
committeremaste <emaste@FreeBSD.org>2016-07-25 19:37:10 +0000
commite6b691aaee2126afb5fdf66a030dcf2ae89cd56c (patch)
tree42146730892320cb48322c393bdf74bcf6f484ac /contrib/llvm/projects/libunwind/include
parent1d1efb9de7257e365eb7ceef9058327b57f8e5e7 (diff)
downloadFreeBSD-src-e6b691aaee2126afb5fdf66a030dcf2ae89cd56c.zip
FreeBSD-src-e6b691aaee2126afb5fdf66a030dcf2ae89cd56c.tar.gz
Merge LLVM libunwind fixes
r302475: libunwind: limit stack usage in unwind cursor This may be reworked upstream but in the interim should address the stack usage issue reported in the PR. r303061: libunwind: Properly align _Unwind_Exception. _Unwind_Exception is required to be double word aligned. GCC has interpreted this to mean "use the maximum useful alignment for the target" so follow that lead. PR: 206384 (r302475) Obtained from: LLVM review D22543 (r303061) Approved by: re (gjb)
Diffstat (limited to 'contrib/llvm/projects/libunwind/include')
-rw-r--r--contrib/llvm/projects/libunwind/include/__libunwind_config.h8
-rw-r--r--contrib/llvm/projects/libunwind/include/unwind.h2
2 files changed, 9 insertions, 1 deletions
diff --git a/contrib/llvm/projects/libunwind/include/__libunwind_config.h b/contrib/llvm/projects/libunwind/include/__libunwind_config.h
index 9b87bcb..fe3fbeb 100644
--- a/contrib/llvm/projects/libunwind/include/__libunwind_config.h
+++ b/contrib/llvm/projects/libunwind/include/__libunwind_config.h
@@ -22,30 +22,37 @@
# define _LIBUNWIND_TARGET_I386 1
# define _LIBUNWIND_CONTEXT_SIZE 8
# define _LIBUNWIND_CURSOR_SIZE 19
+# define _LIBUNWIND_MAX_REGISTER 9
# elif defined(__x86_64__)
# define _LIBUNWIND_TARGET_X86_64 1
# define _LIBUNWIND_CONTEXT_SIZE 21
# define _LIBUNWIND_CURSOR_SIZE 33
+# define _LIBUNWIND_MAX_REGISTER 17
# elif defined(__ppc__)
# define _LIBUNWIND_TARGET_PPC 1
# define _LIBUNWIND_CONTEXT_SIZE 117
# define _LIBUNWIND_CURSOR_SIZE 128
+# define _LIBUNWIND_MAX_REGISTER 113
# elif defined(__aarch64__)
# define _LIBUNWIND_TARGET_AARCH64 1
# define _LIBUNWIND_CONTEXT_SIZE 66
# define _LIBUNWIND_CURSOR_SIZE 78
+# define _LIBUNWIND_MAX_REGISTER 96
# elif defined(__arm__)
# define _LIBUNWIND_TARGET_ARM 1
# define _LIBUNWIND_CONTEXT_SIZE 60
# define _LIBUNWIND_CURSOR_SIZE 67
+# define _LIBUNWIND_MAX_REGISTER 96
# elif defined(__or1k__)
# define _LIBUNWIND_TARGET_OR1K 1
# define _LIBUNWIND_CONTEXT_SIZE 16
# define _LIBUNWIND_CURSOR_SIZE 28
+# define _LIBUNWIND_MAX_REGISTER 32
# elif defined(__riscv__)
# define _LIBUNWIND_TARGET_RISCV 1
# define _LIBUNWIND_CONTEXT_SIZE 128 /* XXX */
# define _LIBUNWIND_CURSOR_SIZE 140 /* XXX */
+# define _LIBUNWIND_MAX_REGISTER 96
# else
# error "Unsupported architecture."
# endif
@@ -58,6 +65,7 @@
# define _LIBUNWIND_TARGET_OR1K 1
# define _LIBUNWIND_CONTEXT_SIZE 128
# define _LIBUNWIND_CURSOR_SIZE 140
+# define _LIBUNWIND_MAX_REGISTER 120
#endif // _LIBUNWIND_IS_NATIVE_ONLY
#endif // ____LIBUNWIND_CONFIG_H__
diff --git a/contrib/llvm/projects/libunwind/include/unwind.h b/contrib/llvm/projects/libunwind/include/unwind.h
index 94880bf..1fc3c5c 100644
--- a/contrib/llvm/projects/libunwind/include/unwind.h
+++ b/contrib/llvm/projects/libunwind/include/unwind.h
@@ -128,7 +128,7 @@ struct _Unwind_Exception {
// added for binary compatibility.
uint32_t reserved[3];
#endif
-};
+} __attribute__((__aligned__));
typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn)
(int version,
OpenPOWER on IntegriCloud