Module Name: src Committed By: matt Date: Mon Aug 19 03:47:06 UTC 2013
Modified Files: src/common/lib/libc/arch/arm/gen: divide.S Log Message: This is ARM only To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/common/lib/libc/arch/arm/gen/divide.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/divide.S diff -u src/common/lib/libc/arch/arm/gen/divide.S:1.3 src/common/lib/libc/arch/arm/gen/divide.S:1.4 --- src/common/lib/libc/arch/arm/gen/divide.S:1.3 Thu Jun 20 07:16:23 2013 +++ src/common/lib/libc/arch/arm/gen/divide.S Mon Aug 19 03:47:06 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: divide.S,v 1.3 2013/06/20 07:16:23 matt Exp $ */ +/* $NetBSD: divide.S,v 1.4 2013/08/19 03:47:06 matt Exp $ */ /* * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND @@ -23,25 +23,7 @@ * which makes a C call */ -.L_overflow: -#if !defined(_KERNEL) && !defined(_STANDALONE) -#ifdef __ARM_EABI__ - mov r0, r1 /* return quotient */ - b PLT_SYM(__aeabi_idiv0) -#else - mov r0, #8 /* SIGFPE */ - bl PLT_SYM(_C_LABEL(raise)) /* raise it */ - mov r0, #0 - RET -#endif -#else - /* XXX should cause a fatal error */ - mvn r0, #0 - RET -#endif - - .globl __udivide -__udivide: /* r0 = r0 / r1; r1 = r0 % r1 */ +_ARM_ENTRY(__udivide) /* r0 = r0 / r1; r1 = r0 % r1 */ eor r0, r1, r0 eor r1, r0, r1 eor r0, r1, r0 @@ -61,9 +43,9 @@ __udivide: /* r0 = r0 / r1; r1 = r0 % mov r0, r1 mov r1, #0 RET +END(__udivide) - .globl __divide -__divide: /* r0 = r0 / r1; r1 = r0 % r1 */ +_ARM_ENTRY(__divide) /* r0 = r0 / r1; r1 = r0 % r1 */ eor r0, r1, r0 eor r1, r0, r1 eor r0, r1, r0 @@ -377,4 +359,23 @@ __divide: /* r0 = r0 / r1; r1 = r0 % mov r0, r3 RET +.L_overflow: +#if !defined(_KERNEL) && !defined(_STANDALONE) +#ifdef __ARM_EABI__ + mov r0, r1 /* return quotient */ + b PLT_SYM(__aeabi_idiv0) +#else + mov r0, #8 /* SIGFPE */ + bl PLT_SYM(_C_LABEL(raise)) /* raise it */ + mov r0, #0 + RET +#endif +#else + /* XXX should cause a fatal error */ + mvn r0, #0 + RET +#endif + +END(__divide) + #endif /* __ARM_ARCH_EXT_IDIV__ */