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}

Reply via email to