CVS commit: src/lib/libc/arch/m68k/hardfloat
Module Name:src Committed By: matt Date: Fri Jul 19 22:32:04 UTC 2013 Modified Files: src/lib/libc/arch/m68k/hardfloat: floatunsisf.S Log Message: Don't use the fs* variants, just use the f* ones. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/lib/libc/arch/m68k/hardfloat/floatunsisf.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/lib/libc/arch/m68k/hardfloat/floatunsisf.S diff -u src/lib/libc/arch/m68k/hardfloat/floatunsisf.S:1.1 src/lib/libc/arch/m68k/hardfloat/floatunsisf.S:1.2 --- src/lib/libc/arch/m68k/hardfloat/floatunsisf.S:1.1 Thu Jul 18 21:25:11 2013 +++ src/lib/libc/arch/m68k/hardfloat/floatunsisf.S Fri Jul 19 22:32:04 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: floatunsisf.S,v 1.1 2013/07/18 21:25:11 matt Exp $ */ +/* $NetBSD: floatunsisf.S,v 1.2 2013/07/19 22:32:04 matt Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ #include machine/asm.h #if defined(LIBC_SCCS) !defined(lint) -RCSID($NetBSD: floatunsisf.S,v 1.1 2013/07/18 21:25:11 matt Exp $) +RCSID($NetBSD: floatunsisf.S,v 1.2 2013/07/19 22:32:04 matt Exp $) #endif /* LIBC_SCCS and not lint */ #ifdef __mcoldfire__ @@ -45,19 +45,19 @@ L2G: .double 0r2147483648.0 ENTRY(__floatunsisf) movl 4(%sp),%d0 jpl 1f - fsmovel %d0,%fp0 + fmovel %d0,%fp0 #ifndef __SVR4_ABI__ fmoves %fp0,%d0 #endif rts 1: bclr #31,%d0 - fsmovel %d0,%fp0 + fmovel %d0,%fp0 #ifdef __mcoldfire__ LEA_LCL(L2G,%a0) - fsaddd (%a0),%fp0 + faddd (%a0),%fp0 #else - fsaddd #0r2147483648.0,%fp0 + faddd #0r2147483648.0,%fp0 #endif #ifndef __SVR4_ABI__ fmoves %fp0,%d0
CVS commit: src/lib/libc/arch/m68k/hardfloat
Module Name:src Committed By: matt Date: Thu Jul 18 12:05:30 UTC 2013 Added Files: src/lib/libc/arch/m68k/hardfloat: ledf2.S lesf2.S ltdf2.S ltsf2.S nedf2.S nesf2.S unorddf2.S unordsf2.S Log Message: Add more softfloat compatible functions To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/lib/libc/arch/m68k/hardfloat/ledf2.S \ src/lib/libc/arch/m68k/hardfloat/lesf2.S \ src/lib/libc/arch/m68k/hardfloat/ltdf2.S \ src/lib/libc/arch/m68k/hardfloat/ltsf2.S \ src/lib/libc/arch/m68k/hardfloat/nedf2.S \ src/lib/libc/arch/m68k/hardfloat/nesf2.S \ src/lib/libc/arch/m68k/hardfloat/unorddf2.S \ src/lib/libc/arch/m68k/hardfloat/unordsf2.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Added files: Index: src/lib/libc/arch/m68k/hardfloat/ledf2.S diff -u /dev/null src/lib/libc/arch/m68k/hardfloat/ledf2.S:1.1 --- /dev/null Thu Jul 18 12:05:30 2013 +++ src/lib/libc/arch/m68k/hardfloat/ledf2.S Thu Jul 18 12:05:30 2013 @@ -0,0 +1,55 @@ +/* $NetBSD: ledf2.S,v 1.1 2013/07/18 12:05:30 matt Exp $ */ + +/*- + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * the Systems Programming Group of the University of Utah Computer + * Science Department. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + *may be used to endorse or promote products derived from this software + *without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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 + +#if defined(LIBC_SCCS) !defined(lint) +RCSID($NetBSD: ledf2.S,v 1.1 2013/07/18 12:05:30 matt Exp $) +#endif /* LIBC_SCCS and not lint */ + +STRONG_ALIAS(__gtdf2,__ledf2) + +/* libgcc1.c says a b */ +/* libgcc1.c says 1 - (a = b) */ +ENTRY(__ledf2) + fmoved 4(%sp),%fp0 + fcmpd 12(%sp),%fp0 + fbgt Lbgt + movql #1,%d0 + rts +Lbgt: + clrl %d0 + rts +END(__ledf2) Index: src/lib/libc/arch/m68k/hardfloat/lesf2.S diff -u /dev/null src/lib/libc/arch/m68k/hardfloat/lesf2.S:1.1 --- /dev/null Thu Jul 18 12:05:30 2013 +++ src/lib/libc/arch/m68k/hardfloat/lesf2.S Thu Jul 18 12:05:30 2013 @@ -0,0 +1,55 @@ +/* $NetBSD: lesf2.S,v 1.1 2013/07/18 12:05:30 matt Exp $ */ + +/*- + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * the Systems Programming Group of the University of Utah Computer + * Science Department. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + *may be used to endorse or promote products derived from this software + *without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES
CVS commit: src/lib/libc/arch/m68k/hardfloat
Module Name:src Committed By: matt Date: Thu Jul 18 21:25:11 UTC 2013 Added Files: src/lib/libc/arch/m68k/hardfloat: fixunssfsi.S floatunsidf.S floatunsisf.S Log Message: Add for softfloat compatibility To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/lib/libc/arch/m68k/hardfloat/fixunssfsi.S \ src/lib/libc/arch/m68k/hardfloat/floatunsidf.S \ src/lib/libc/arch/m68k/hardfloat/floatunsisf.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Added files: Index: src/lib/libc/arch/m68k/hardfloat/fixunssfsi.S diff -u /dev/null src/lib/libc/arch/m68k/hardfloat/fixunssfsi.S:1.1 --- /dev/null Thu Jul 18 21:25:11 2013 +++ src/lib/libc/arch/m68k/hardfloat/fixunssfsi.S Thu Jul 18 21:25:11 2013 @@ -0,0 +1,75 @@ +/* $NetBSD: fixunssfsi.S,v 1.1 2013/07/18 21:25:11 matt Exp $ */ + +/*- + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * the Systems Programming Group of the University of Utah Computer + * Science Department. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + *may be used to endorse or promote products derived from this software + *without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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 + +#if defined(LIBC_SCCS) !defined(lint) +#if 0 + RCSID(from: @(#)fixunssfsi.s 5.1 (Berkeley) 6/7/90) +#else + RCSID($NetBSD: fixunssfsi.S,v 1.1 2013/07/18 21:25:11 matt Exp $) +#endif +#endif /* LIBC_SCCS and not lint */ + +#ifdef __mcoldfire__ + .section .rodata,a + .p2align 4 +L2G: .double 0r2147483648.0 +#endif + +/* single - unsigned */ +ENTRY(__fixunssfsi) + fintrzs 4(%sp),%fp0 +#ifdef __mcoldfire__ + LEA_LCL(L2G,%a0) + fmoved (%a0),%fp1 + fcmpd %fp1,%fp0 +#else + fmoved #0r2147483648.0,%fp1 + fcmpx %fp1,%fp0 +#endif + fbge Lwaybig + fmovel %fp0,%d0 + rts +Lwaybig: +#ifdef __mcoldfire__ + fsubd %fp1,%fp0 +#else + fsubx %fp1,%fp0 +#endif + fmovel %fp0,%d0 + bset #31,%d0 + rts +END(__fixunssfsi) Index: src/lib/libc/arch/m68k/hardfloat/floatunsidf.S diff -u /dev/null src/lib/libc/arch/m68k/hardfloat/floatunsidf.S:1.1 --- /dev/null Thu Jul 18 21:25:11 2013 +++ src/lib/libc/arch/m68k/hardfloat/floatunsidf.S Thu Jul 18 21:25:11 2013 @@ -0,0 +1,70 @@ +/* $NetBSD: floatunsidf.S,v 1.1 2013/07/18 21:25:11 matt Exp $ */ + +/*- + * Copyright (c) 2013 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Matt Thomas of 3am Software Foundry. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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;
CVS commit: src/lib/libc/arch/m68k/hardfloat
Module Name:src Committed By: matt Date: Thu Jul 18 21:29:31 UTC 2013 Added Files: src/lib/libc/arch/m68k/hardfloat: Makefile.inc Log Message: Add the Makefile To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/lib/libc/arch/m68k/hardfloat/Makefile.inc Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Added files: Index: src/lib/libc/arch/m68k/hardfloat/Makefile.inc diff -u /dev/null src/lib/libc/arch/m68k/hardfloat/Makefile.inc:1.1 --- /dev/null Thu Jul 18 21:29:31 2013 +++ src/lib/libc/arch/m68k/hardfloat/Makefile.inc Thu Jul 18 21:29:31 2013 @@ -0,0 +1,16 @@ +# $NetBSD: Makefile.inc,v 1.1 2013/07/18 21:29:31 matt Exp $ + +SRCS+= modf.S +SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \ + fpsetround.c fpsetsticky.c +# +# These allow softfloat programs to use the FPU. +# +SRCS+= adddf3.S addsf3.S cmpdf2.S cmpsf2.S divdf3.S divsf3.S \ + extendsfdf2.S fixdfsi.S fixunsdfsi.S fixunssfsi.S floatsidf.S \ + muldf3.S mulsf3.S subdf3.S subsf3.S truncdfsf2.S + +SRCS+= floatunsidf.S floatunsisf.S + +SRCS+= lesf2.S ltsf2.S nesf2.S unordsf2.S +SRCS+= ledf2.S ltdf2.S nedf2.S unorddf2.S
CVS commit: src/lib/libc/arch/m68k/hardfloat
Module Name:src Committed By: matt Date: Thu Jul 18 21:29:08 UTC 2013 Modified Files: src/lib/libc/arch/m68k/hardfloat: cmpdf2.S cmpsf2.S fixunsdfsi.S modf.S Log Message: Update to compile on coldfire. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/lib/libc/arch/m68k/hardfloat/cmpdf2.S \ src/lib/libc/arch/m68k/hardfloat/cmpsf2.S \ src/lib/libc/arch/m68k/hardfloat/fixunsdfsi.S \ src/lib/libc/arch/m68k/hardfloat/modf.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/lib/libc/arch/m68k/hardfloat/cmpdf2.S diff -u src/lib/libc/arch/m68k/hardfloat/cmpdf2.S:1.1 src/lib/libc/arch/m68k/hardfloat/cmpdf2.S:1.2 --- src/lib/libc/arch/m68k/hardfloat/cmpdf2.S:1.1 Wed Jul 17 06:39:06 2013 +++ src/lib/libc/arch/m68k/hardfloat/cmpdf2.S Thu Jul 18 21:29:08 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: cmpdf2.S,v 1.1 2013/07/17 06:39:06 matt Exp $ */ +/* $NetBSD: cmpdf2.S,v 1.2 2013/07/18 21:29:08 matt Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -39,7 +39,7 @@ #if 0 RCSID(from: @(#)cmpdf2.s 5.1 (Berkeley) 6/7/90) #else - RCSID($NetBSD: cmpdf2.S,v 1.1 2013/07/17 06:39:06 matt Exp $) + RCSID($NetBSD: cmpdf2.S,v 1.2 2013/07/18 21:29:08 matt Exp $) #endif #endif /* LIBC_SCCS and not lint */ @@ -49,11 +49,21 @@ ENTRY(__cmpdf2) fmoved 4(%sp),%fp0 fcmpd 12(%sp),%fp0 - fbgt Lagtb + fbgt Lbgt +#ifdef __mcoldfire__ + fbeq Lbeq + movql #-1,%d0 +#else fslt %d0 extbl %d0 +#endif rts -Lagtb: +Lbgt: moveq #1,%d0 rts +#ifdef __mcoldfire__ +Lbeq: + clrl %d0 + rts +#endif END(__cmpdf2) Index: src/lib/libc/arch/m68k/hardfloat/cmpsf2.S diff -u src/lib/libc/arch/m68k/hardfloat/cmpsf2.S:1.1 src/lib/libc/arch/m68k/hardfloat/cmpsf2.S:1.2 --- src/lib/libc/arch/m68k/hardfloat/cmpsf2.S:1.1 Wed Jul 17 06:39:06 2013 +++ src/lib/libc/arch/m68k/hardfloat/cmpsf2.S Thu Jul 18 21:29:08 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: cmpsf2.S,v 1.1 2013/07/17 06:39:06 matt Exp $ */ +/* $NetBSD: cmpsf2.S,v 1.2 2013/07/18 21:29:08 matt Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -39,7 +39,7 @@ #if 0 RCSID(from: @(#)cmpsf2.s 5.1 (Berkeley) 6/7/90) #else - RCSID($NetBSD: cmpsf2.S,v 1.1 2013/07/17 06:39:06 matt Exp $) + RCSID($NetBSD: cmpsf2.S,v 1.2 2013/07/18 21:29:08 matt Exp $) #endif #endif /* LIBC_SCCS and not lint */ @@ -49,11 +49,21 @@ ENTRY(__cmpsf2) fmoves 4(%sp),%fp0 fcmps 8(%sp),%fp0 - fbgt Lagtb + fbgt Lbgt +#ifdef __mcoldfire__ + fbeq Lbeq + movql #-1,%d0 +#else fslt %d0 extbl %d0 +#endif rts -Lagtb: +Lbgt: moveq #1,%d0 rts +#ifdef __mcoldfire__ +Lbeq: + clrl %d0 + rts +#endif END(__cmpsf2) Index: src/lib/libc/arch/m68k/hardfloat/fixunsdfsi.S diff -u src/lib/libc/arch/m68k/hardfloat/fixunsdfsi.S:1.1 src/lib/libc/arch/m68k/hardfloat/fixunsdfsi.S:1.2 --- src/lib/libc/arch/m68k/hardfloat/fixunsdfsi.S:1.1 Wed Jul 17 06:39:06 2013 +++ src/lib/libc/arch/m68k/hardfloat/fixunsdfsi.S Thu Jul 18 21:29:08 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: fixunsdfsi.S,v 1.1 2013/07/17 06:39:06 matt Exp $ */ +/* $NetBSD: fixunsdfsi.S,v 1.2 2013/07/18 21:29:08 matt Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -39,19 +39,36 @@ #if 0 RCSID(from: @(#)fixunsdfsi.s 5.1 (Berkeley) 6/7/90) #else - RCSID($NetBSD: fixunsdfsi.S,v 1.1 2013/07/17 06:39:06 matt Exp $) + RCSID($NetBSD: fixunsdfsi.S,v 1.2 2013/07/18 21:29:08 matt Exp $) #endif #endif /* LIBC_SCCS and not lint */ +#ifdef __mcoldfire__ + .section .rodata,a + .p2align 4 +L2G: .double 0r2147483648.0 +#endif + /* (unsigned) double */ ENTRY(__fixunsdfsi) fintrzd 4(%sp),%fp0 - fcmpd #0r2147483648.0,%fp0 +#ifdef __mcoldfire__ + LEA_LCL(L2G,%a0) + fmoved (%a0),%fp1 + fcmpd %fp1,%fp0 +#else + fmoved #0r2147483648.0,%fp1 + fcmpx %fp1,%fp0 +#endif fbge Lwaybig fmovel %fp0,%d0 rts Lwaybig: - fsubd #0r2147483648.0,%fp0 +#ifdef __mcoldfire__ + fsubd %fp1,%fp0 +#else + fsubx %fp1,%fp0 +#endif fmovel %fp0,%d0 bset #31,%d0 rts Index: src/lib/libc/arch/m68k/hardfloat/modf.S diff -u src/lib/libc/arch/m68k/hardfloat/modf.S:1.1 src/lib/libc/arch/m68k/hardfloat/modf.S:1.2 --- src/lib/libc/arch/m68k/hardfloat/modf.S:1.1 Wed Jul 17 06:39:06 2013 +++ src/lib/libc/arch/m68k/hardfloat/modf.S Thu Jul 18 21:29:08 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: modf.S,v 1.1 2013/07/17 06:39:06 matt Exp $ */ +/* $NetBSD: modf.S,v 1.2 2013/07/18 21:29:08 matt Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -39,7 +39,7 @@ #if 0 RCSID(from: @(#)modf.s 5.1 (Berkeley) 5/12/90) #else - RCSID($NetBSD: modf.S,v 1.1 2013/07/17 06:39:06 matt Exp $) + RCSID($NetBSD: modf.S,v 1.2 2013/07/18 21:29:08 matt Exp $) #endif #endif /* LIBC_SCCS and not lint */ @@ -50,9 +50,17 @@ ENTRY(modf) fmoved 4(%sp),%fp0 movel 12(%sp),%a0 +#ifdef __mcoldfire__ + fintrzd %fp0,%fp1 +#else fintrzx %fp0,%fp1 +#endif fmoved %fp1,(%a0)