[libunwind] r317423 - Add ifdefs around ELF specific parts of UnwindRegisters*.S for arm
Martin Storsjo via cfe-commits
cfe-commits at lists.llvm.org
Sat Nov 4 14:01:31 PDT 2017
Author: mstorsjo
Date: Sat Nov 4 14:01:31 2017
New Revision: 317423
URL: http://llvm.org/viewvc/llvm-project?rev=317423&view=rev
Log:
Add ifdefs around ELF specific parts of UnwindRegisters*.S for arm
This allows using dwarf exceptions on MinGW/ARM.
Differential Revision: https://reviews.llvm.org/D39534
Modified:
libunwind/trunk/docs/index.rst
libunwind/trunk/src/UnwindRegistersRestore.S
libunwind/trunk/src/UnwindRegistersSave.S
Modified: libunwind/trunk/docs/index.rst
URL: http://llvm.org/viewvc/llvm-project/libunwind/trunk/docs/index.rst?rev=317423&r1=317422&r2=317423&view=diff
==============================================================================
--- libunwind/trunk/docs/index.rst (original)
+++ libunwind/trunk/docs/index.rst Sat Nov 4 14:01:31 2017
@@ -52,7 +52,7 @@ Linux ARM Clang,
Linux i386, x86_64, ARM64 Clang, GCC DWARF CFI
Mac OS X i386, x86_64 Clang, GCC DWARF CFI
NetBSD x86_64 Clang, GCC DWARF CFI
-Windows i386, x86_64 Clang DWARF CFI
+Windows i386, x86_64, ARM Clang DWARF CFI
============ ==================== ============ ========================
The following minimum compiler versions are strongly recommended.
Modified: libunwind/trunk/src/UnwindRegistersRestore.S
URL: http://llvm.org/viewvc/llvm-project/libunwind/trunk/src/UnwindRegistersRestore.S?rev=317423&r1=317422&r2=317423&view=diff
==============================================================================
--- libunwind/trunk/src/UnwindRegistersRestore.S (original)
+++ libunwind/trunk/src/UnwindRegistersRestore.S Sat Nov 4 14:01:31 2017
@@ -391,7 +391,9 @@ DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9li
@ values pointer is in r0
@
.p2align 2
+#if defined(__ELF__)
.fpu vfpv3-d16
+#endif
DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind13Registers_arm19restoreVFPWithFLDMDEPy)
@ VFP and iwMMX instructions are only available when compiling with the flags
@ that enable them. We do not want to do that in the library (because we do not
@@ -410,7 +412,9 @@ DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9li
@ values pointer is in r0
@
.p2align 2
+#if defined(__ELF__)
.fpu vfpv3-d16
+#endif
DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind13Registers_arm19restoreVFPWithFLDMXEPy)
vldmia r0, {d0-d15} @ fldmiax is deprecated in ARMv7+ and now behaves like vldmia
JMP(lr)
@@ -422,7 +426,9 @@ DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9li
@ values pointer is in r0
@
.p2align 2
+#if defined(__ELF__)
.fpu vfpv3
+#endif
DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind13Registers_arm12restoreVFPv3EPy)
vldmia r0, {d16-d31}
JMP(lr)
@@ -436,7 +442,9 @@ DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9li
@ values pointer is in r0
@
.p2align 2
+#if defined(__ELF__)
.arch armv5te
+#endif
DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind13Registers_arm12restoreiWMMXEPy)
ldcl p1, cr0, [r0], #8 @ wldrd wR0, [r0], #8
ldcl p1, cr1, [r0], #8 @ wldrd wR1, [r0], #8
@@ -463,7 +471,9 @@ DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9li
@ values pointer is in r0
@
.p2align 2
+#if defined(__ELF__)
.arch armv5te
+#endif
DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind13Registers_arm19restoreiWMMXControlEPj)
ldc2 p1, cr8, [r0], #4 @ wldrw wCGR0, [r0], #4
ldc2 p1, cr9, [r0], #4 @ wldrw wCGR1, [r0], #4
Modified: libunwind/trunk/src/UnwindRegistersSave.S
URL: http://llvm.org/viewvc/llvm-project/libunwind/trunk/src/UnwindRegistersSave.S?rev=317423&r1=317422&r2=317423&view=diff
==============================================================================
--- libunwind/trunk/src/UnwindRegistersSave.S (original)
+++ libunwind/trunk/src/UnwindRegistersSave.S Sat Nov 4 14:01:31 2017
@@ -375,7 +375,9 @@ DEFINE_LIBUNWIND_FUNCTION(unw_getcontext
@ values pointer is in r0
@
.p2align 2
+#if defined(__ELF__)
.fpu vfpv3-d16
+#endif
DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind13Registers_arm16saveVFPWithFSTMDEPy)
vstmia r0, {d0-d15}
JMP(lr)
@@ -387,7 +389,9 @@ DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9li
@ values pointer is in r0
@
.p2align 2
+#if defined(__ELF__)
.fpu vfpv3-d16
+#endif
DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind13Registers_arm16saveVFPWithFSTMXEPy)
vstmia r0, {d0-d15} @ fstmiax is deprecated in ARMv7+ and now behaves like vstmia
JMP(lr)
@@ -399,7 +403,9 @@ DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9li
@ values pointer is in r0
@
.p2align 2
+#if defined(__ELF__)
.fpu vfpv3
+#endif
DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind13Registers_arm9saveVFPv3EPy)
@ VFP and iwMMX instructions are only available when compiling with the flags
@ that enable them. We do not want to do that in the library (because we do not
@@ -420,7 +426,9 @@ DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9li
@ values pointer is in r0
@
.p2align 2
+#if defined(__ELF__)
.arch armv5te
+#endif
DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind13Registers_arm9saveiWMMXEPy)
stcl p1, cr0, [r0], #8 @ wstrd wR0, [r0], #8
stcl p1, cr1, [r0], #8 @ wstrd wR1, [r0], #8
@@ -447,7 +455,9 @@ DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9li
@ values pointer is in r0
@
.p2align 2
+#if defined(__ELF__)
.arch armv5te
+#endif
DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind13Registers_arm16saveiWMMXControlEPj)
stc2 p1, cr8, [r0], #4 @ wstrw wCGR0, [r0], #4
stc2 p1, cr9, [r0], #4 @ wstrw wCGR1, [r0], #4
More information about the cfe-commits
mailing list