[PATCH] D12005: libunwind: Enable zero-cost exceptions on non-Apple arm64 platforms

Ed Maste via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 12 18:24:09 PDT 2015


emaste created this revision.
emaste added a subscriber: llvm-commits.
Herald added subscribers: rengolin, aemerson.

Use the canonical __aarch64__ predefined macro for 64-bit ARM. Apple-specific cases are left as __arm64__. Also add an #error for unsupported architectures to catch this sort of case in the future.

http://reviews.llvm.org/D12005

Files:
  src/config.h
  src/libunwind.cpp

Index: src/libunwind.cpp
===================================================================
--- src/libunwind.cpp
+++ src/libunwind.cpp
@@ -58,12 +58,14 @@
 #elif defined(__ppc__)
   new ((void *)cursor) UnwindCursor<LocalAddressSpace, Registers_ppc>(
                                  context, LocalAddressSpace::sThisAddressSpace);
-#elif defined(__arm64__)
+#elif defined(__arm64__) || defined(__aarch64__)
   new ((void *)cursor) UnwindCursor<LocalAddressSpace, Registers_arm64>(
                                  context, LocalAddressSpace::sThisAddressSpace);
 #elif _LIBUNWIND_ARM_EHABI
   new ((void *)cursor) UnwindCursor<LocalAddressSpace, Registers_arm>(
                                  context, LocalAddressSpace::sThisAddressSpace);
+#else
+#error Architecture not supported
 #endif
   AbstractUnwindCursor *co = (AbstractUnwindCursor *)cursor;
   co->setInfoBasedOnIPRegister();
Index: src/config.h
===================================================================
--- src/config.h
+++ src/config.h
@@ -72,7 +72,8 @@
 
   #define _LIBUNWIND_BUILD_ZERO_COST_APIS (defined(__i386__) || \
                                            defined(__x86_64__) || \
-                                           defined(__arm__))
+                                           defined(__arm__) || \
+                                           defined(__aarch64__))
   #define _LIBUNWIND_BUILD_SJLJ_APIS      0
   #define _LIBUNWIND_SUPPORT_FRAME_APIS   (defined(__i386__) || \
                                            defined(__x86_64__))


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12005.32024.patch
Type: text/x-patch
Size: 1545 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150813/1f301a6b/attachment.bin>


More information about the llvm-commits mailing list