Module Name: src Committed By: matt Date: Mon Aug 19 03:54:15 UTC 2013
Modified Files: src/common/lib/libc/arch/arm/gen: divsi3.S Log Message: Thumbify (and use .cfi ops) To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/common/lib/libc/arch/arm/gen/divsi3.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/common/lib/libc/arch/arm/gen/divsi3.S diff -u src/common/lib/libc/arch/arm/gen/divsi3.S:1.6 src/common/lib/libc/arch/arm/gen/divsi3.S:1.7 --- src/common/lib/libc/arch/arm/gen/divsi3.S:1.6 Thu Jun 20 07:16:23 2013 +++ src/common/lib/libc/arch/arm/gen/divsi3.S Mon Aug 19 03:54:15 2013 @@ -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 @@ ENTRY(__divsi3) 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