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



details:   https://anonhg.NetBSD.org/src/rev/c86b2a23c031
branches:  trunk
changeset: 789447:c86b2a23c031
user:      matt <matt%NetBSD.org@localhost>
date:      Mon Aug 19 03:51:04 2013 +0000

description:
thumbify
add .cfi ops (for thumb)

diffstat:

 common/lib/libc/arch/arm/gen/udivsi3.S |  31 ++++++++++++++++++++++++++-----
 1 files changed, 26 insertions(+), 5 deletions(-)

diffs (51 lines):

diff -r 02e0f1c726a9 -r c86b2a23c031 common/lib/libc/arch/arm/gen/udivsi3.S
--- a/common/lib/libc/arch/arm/gen/udivsi3.S    Mon Aug 19 03:47:06 2013 +0000
+++ b/common/lib/libc/arch/arm/gen/udivsi3.S    Mon Aug 19 03:51:04 2013 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: udivsi3.S,v 1.2 2013/06/20 07:16:23 matt Exp $ */
+/*     $NetBSD: udivsi3.S,v 1.3 2013/08/19 03:51:04 matt Exp $ */
 
 /*
  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
@@ -16,9 +16,6 @@
 
 #include <machine/asm.h>
 
-
-ENTRY_NP(__aeabi_uidivmod)
-ENTRY_NP(__aeabi_uidiv)
 ENTRY(__udivsi3)
 #if defined(__ARM_ARCH_EXT_IDIV__)
 # if defined(__ARM_EABI__)
@@ -29,6 +26,30 @@
        mls     r1, r0, r1, r3  @ return modulus in r1
 # endif
        RET
-#else
+#elif !defined(__thumb__) || defined(_ARM_ARCH_T2)
        b       __udivide
+#else
+#ifdef __ARM_EABI__
+       .fnstart
+       .cfi_startproc
 #endif
+       push    {r4, lr}
+#ifdef __ARM_EABI__
+       .save   {r4, lr}
+       .cfi_def_cfa_offset 8
+       .cfi_offset 14, -4
+       .cfi_offset 4, -8
+#endif
+       bl      __udivide
+       pop     {r4, pc}
+#ifdef __ARM_EABI__
+       .cfi_endproc
+       .fnend
+#endif
+#endif
+END(__udivsi3)
+
+#ifdef __ARM_EABI__
+STRONG_ALIAS(__aeabi_uidivmod, __udivsi3)
+STRONG_ALIAS(__aeabi_uidiv, __udivsi3)
+#endif



Home | Main Index | Thread Index | Old Index