aboutsummaryrefslogtreecommitdiff
path: root/libunwind/src/libunwind.cpp
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2017-12-12 21:43:36 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2017-12-12 21:43:36 +0000
commitdfbbbdf8cd42b10969f96d4f65ae32012eff035b (patch)
tree215a5b4be85fcf7ea6bb2197b5b30bc4785985a9 /libunwind/src/libunwind.cpp
parentb4c74c6603cd1951bffde8b188e7d785a37ab479 (diff)
downloadllvm-dfbbbdf8cd42b10969f96d4f65ae32012eff035b.zip
llvm-dfbbbdf8cd42b10969f96d4f65ae32012eff035b.tar.gz
llvm-dfbbbdf8cd42b10969f96d4f65ae32012eff035b.tar.bz2
[libunwind][MIPS]: Add support for unwinding in O32 and N64 processes.
This supports the soft-float ABI only and has been tested with both clang and gcc on FreeBSD. Reviewed By: sdardis, compnerd Differential Revision: https://reviews.llvm.org/D38110 llvm-svn: 320528
Diffstat (limited to 'libunwind/src/libunwind.cpp')
-rw-r--r--libunwind/src/libunwind.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/libunwind/src/libunwind.cpp b/libunwind/src/libunwind.cpp
index 1039a3b..0b7fb40 100644
--- a/libunwind/src/libunwind.cpp
+++ b/libunwind/src/libunwind.cpp
@@ -59,8 +59,12 @@ _LIBUNWIND_EXPORT int unw_init_local(unw_cursor_t *cursor,
# define REGISTER_KIND Registers_arm
#elif defined(__or1k__)
# define REGISTER_KIND Registers_or1k
+#elif defined(__mips__) && defined(_ABIO32) && defined(__mips_soft_float)
+# define REGISTER_KIND Registers_mips_o32
+#elif defined(__mips__) && defined(_ABI64) && defined(__mips_soft_float)
+# define REGISTER_KIND Registers_mips_n64
#elif defined(__mips__)
-# warning The MIPS architecture is not supported.
+# warning The MIPS architecture is not supported with this ABI and environment!
#else
# error Architecture not supported
#endif