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}