Module Name: src
Committed By: christos
Date: Wed Oct 10 02:16:54 UTC 2012
Modified Files:
src/common/lib/libc/arch/arm/gen: divsi3.S
Added Files:
src/common/lib/libc/arch/arm/gen: modsi3.S umodsi3.S
Log Message:
Split out modsi3 and umodsi3 from the divsi3 file. This is so that
we don't get re-defined symbols in libc from libgcc in static linking.
Example: cc -pthread -static main-calls-pthread-create.c
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/common/lib/libc/arch/arm/gen/divsi3.S
cvs rdiff -u -r0 -r1.1 src/common/lib/libc/arch/arm/gen/modsi3.S \
src/common/lib/libc/arch/arm/gen/umodsi3.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.2 src/common/lib/libc/arch/arm/gen/divsi3.S:1.3
--- src/common/lib/libc/arch/arm/gen/divsi3.S:1.2 Sun Aug 5 00:22:01 2012
+++ src/common/lib/libc/arch/arm/gen/divsi3.S Tue Oct 9 22:16:54 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: divsi3.S,v 1.2 2012/08/05 04:22:01 matt Exp $ */
+/* $NetBSD: divsi3.S,v 1.3 2012/10/10 02:16:54 christos Exp $ */
/*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
@@ -21,22 +21,6 @@
* which makes a C call
*/
-ENTRY(__umodsi3)
- stmfd sp!, {lr}
- sub sp, sp, #4 /* align stack */
- bl .L_udivide
- add sp, sp, #4 /* unalign stack */
- mov r0, r1
- ldmfd sp!, {pc}
-
-ENTRY(__modsi3)
- stmfd sp!, {lr}
- sub sp, sp, #4 /* align stack */
- bl .L_divide
- add sp, sp, #4 /* unalign stack */
- mov r0, r1
- ldmfd sp!, {pc}
-
.L_overflow:
#if !defined(_KERNEL) && !defined(_STANDALONE)
mov r0, #8 /* SIGFPE */
Added files:
Index: src/common/lib/libc/arch/arm/gen/modsi3.S
diff -u /dev/null src/common/lib/libc/arch/arm/gen/modsi3.S:1.1
--- /dev/null Tue Oct 9 22:16:54 2012
+++ src/common/lib/libc/arch/arm/gen/modsi3.S Tue Oct 9 22:16:54 2012
@@ -0,0 +1,31 @@
+/* $NetBSD: modsi3.S,v 1.1 2012/10/10 02:16:54 christos Exp $ */
+
+/*
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <machine/asm.h>
+
+/*
+ * stack is aligned as there's a possibility of branching to .L_overflow
+ * which makes a C call
+ */
+
+ENTRY(__modsi3)
+ stmfd sp!, {lr}
+ sub sp, sp, #4 /* align stack */
+ bl PIC_SYM(__divsi3, PLT)
+ add sp, sp, #4 /* unalign stack */
+ mov r0, r1
+ ldmfd sp!, {pc}
+
Index: src/common/lib/libc/arch/arm/gen/umodsi3.S
diff -u /dev/null src/common/lib/libc/arch/arm/gen/umodsi3.S:1.1
--- /dev/null Tue Oct 9 22:16:54 2012
+++ src/common/lib/libc/arch/arm/gen/umodsi3.S Tue Oct 9 22:16:54 2012
@@ -0,0 +1,30 @@
+/* $NetBSD: umodsi3.S,v 1.1 2012/10/10 02:16:54 christos Exp $ */
+
+/*
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <machine/asm.h>
+
+/*
+ * stack is aligned as there's a possibility of branching to .L_overflow
+ * which makes a C call
+ */
+
+ENTRY(__umodsi3)
+ stmfd sp!, {lr}
+ sub sp, sp, #4 /* align stack */
+ bl PIC_SYM(__udivsi3, PLT)
+ add sp, sp, #4 /* unalign stack */
+ mov r0, r1
+ ldmfd sp!, {pc}