Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/common/lib/libc/arch/arm/gen Thumbify (and use .cfi ops)
details: https://anonhg.NetBSD.org/src/rev/035f8f7ae192
branches: trunk
changeset: 789448:035f8f7ae192
user: matt <matt%NetBSD.org@localhost>
date: Mon Aug 19 03:54:15 2013 +0000
description:
Thumbify (and use .cfi ops)
diffstat:
common/lib/libc/arch/arm/gen/divsi3.S | 37 +++++++++++++++++++++++++++-------
1 files changed, 29 insertions(+), 8 deletions(-)
diffs (57 lines):
diff -r c86b2a23c031 -r 035f8f7ae192 common/lib/libc/arch/arm/gen/divsi3.S
--- a/common/lib/libc/arch/arm/gen/divsi3.S Mon Aug 19 03:51:04 2013 +0000
+++ b/common/lib/libc/arch/arm/gen/divsi3.S Mon Aug 19 03:54:15 2013 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: divsi3.S,v 1.6 2013/06/20 07:16:23 matt Exp $ */
+/* $NetBSD: divsi3.S,v 1.7 2013/08/19 03:54:15 matt Exp $ */
/*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
@@ -16,12 +16,6 @@
#include <machine/asm.h>
-ENTRY_NP(__aeabi_idivmod)
-ENTRY_NP(__aeabi_idiv)
-#if defined(__ARM_EABI__) && defined(PIC_SYMVER)
- .symver __aeabi_idiv,__aeabi_idiv@@GCC_3.5
- .symver __aeabi_idivmod,__aeabi_idivmod@@GCC_3.5
-#endif
ENTRY(__divsi3)
#if defined(__ARM_ARCH_EXT_IDIV__)
# if defined(__ARM_EABI__)
@@ -32,6 +26,33 @@
mls r1, r0, r1, r3 @ return modulus in r1
# endif
RET
-#else
+#elif !defined(__thumb__) || defined(_ARM_ARCH_T2)
b __divide
+#else
+#ifdef __ARM_EABI__
+ .fnstart
+ .cfi_startproc
#endif
+ push {r4, lr}
+#ifdef __ARM_EABI__
+ .cfi_def_cfa_offset 8
+ .cfi_offset 14, -4
+ .cfi_offset 4, -8
+#endif
+ bl __divide
+ pop {r4, pc}
+#ifdef __ARM_EABI__
+ .cfi_endproc
+ .fnend
+#endif
+#endif
+END(__divsi3)
+
+#if defined(__ARM_EABI__)
+STRONG_ALIAS(__aeabi_idivmod, __divsi3)
+STRONG_ALIAS(__aeabi_idiv, __divsi3)
+#if defined(PIC_SYMVER)
+ .symver __aeabi_idiv,__aeabi_idiv@@GCC_3.5
+ .symver __aeabi_idivmod,__aeabi_idivmod@@GCC_3.5
+#endif
+#endif
Home |
Main Index |
Thread Index |
Old Index