CVS commit: src/sys/arch/powerpc/include
Module Name:src Committed By: matt Date: Fri Aug 23 06:18:14 UTC 2013 Modified Files: src/sys/arch/powerpc/include: intr.h softint.h Log Message: Fix kern_softint.c errors (tested with WALNUT EV64260) To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/sys/arch/powerpc/include/intr.h cvs rdiff -u -r1.1 -r1.2 src/sys/arch/powerpc/include/softint.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/powerpc/include/intr.h diff -u src/sys/arch/powerpc/include/intr.h:1.10 src/sys/arch/powerpc/include/intr.h:1.11 --- src/sys/arch/powerpc/include/intr.h:1.10 Sat Jan 14 19:35:58 2012 +++ src/sys/arch/powerpc/include/intr.h Fri Aug 23 06:18:14 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: intr.h,v 1.10 2012/01/14 19:35:58 phx Exp $ */ +/* $NetBSD: intr.h,v 1.11 2013/08/23 06:18:14 matt Exp $ */ /*- * Copyright (c) 2007 Michael Lorenz @@ -28,11 +28,11 @@ #ifndef _LOCORE #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: intr.h,v 1.10 2012/01/14 19:35:58 phx Exp $); +__KERNEL_RCSID(0, $NetBSD: intr.h,v 1.11 2013/08/23 06:18:14 matt Exp $); #endif -#ifndef POWERPC_INTR_MACHDEP_H -#define POWERPC_INTR_MACHDEP_H +#ifndef _POWERPC_INTR_MACHDEP_H_ +#define _POWERPC_INTR_MACHDEP_H_ #define __HAVE_FAST_SOFTINTS 1 @@ -71,6 +71,8 @@ void splx(int); #if !defined(_MODULE) +#include powerpc/softint.h + void genppc_cpu_configure(void); /* @@ -136,4 +138,4 @@ splraiseipl(ipl_cookie_t icookie) #endif /* _LOCORE */ -#endif /* POWERPC_INTR_MACHDEP_H */ +#endif /* _POWERPC_INTR_MACHDEP_H_ */ Index: src/sys/arch/powerpc/include/softint.h diff -u src/sys/arch/powerpc/include/softint.h:1.1 src/sys/arch/powerpc/include/softint.h:1.2 --- src/sys/arch/powerpc/include/softint.h:1.1 Tue Jun 14 22:36:12 2011 +++ src/sys/arch/powerpc/include/softint.h Fri Aug 23 06:18:14 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: softint.h,v 1.1 2011/06/14 22:36:12 matt Exp $ */ +/* $NetBSD: softint.h,v 1.2 2013/08/23 06:18:14 matt Exp $ */ /*- * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc. * All rights reserved. @@ -34,14 +34,14 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#ifdef __INTR_PRIVATE #ifndef _POWERPC_SOFTINT_H_ #define _POWERPC_SOFTINT_H_ -#include sys/intr.h +//#include sys/intr.h #ifdef __HAVE_FAST_SOFTINTS +#ifdef __INTR_PRIVATE #ifdef __HAVE_PREEMPTION #define IPL_PREEMPT_SOFTMASK (1 IPL_NONE) #else @@ -66,6 +66,8 @@ |(SOFTINT_CLOCK (4*IPL_SOFTCLOCK ))) #define IPL2SOFTINT(ipl) ((IPL2SOFTINT_MAP (4 * (ipl))) 0x0f) +#endif /* __INTR_PRIVATE */ + #ifdef _KERNEL void powerpc_softint(struct cpu_info *, int, vaddr_t); void powerpc_softint_init_md(lwp_t *, u_int, uintptr_t *); @@ -74,4 +76,3 @@ void powerpc_softint_trigger(uintptr_t); #endif /* __HAVE_FAST_SOFTINTS */ #endif /* !_POWERPC_SOFTINT_H_ */ -#endif /* __INTR_PRIVATE */
CVS commit: src/sys/arch/powerpc
Module Name:src Committed By: matt Date: Fri Aug 23 06:19:46 UTC 2013 Modified Files: src/sys/arch/powerpc/booke: spe.c trap.c src/sys/arch/powerpc/ibm4xx: trap.c src/sys/arch/powerpc/include: proc.h src/sys/arch/powerpc/powerpc: fpu.c Log Message: Get rid of MDLWP_USED{FPU,VEC} To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/sys/arch/powerpc/booke/spe.c cvs rdiff -u -r1.22 -r1.23 src/sys/arch/powerpc/booke/trap.c cvs rdiff -u -r1.65 -r1.66 src/sys/arch/powerpc/ibm4xx/trap.c cvs rdiff -u -r1.12 -r1.13 src/sys/arch/powerpc/include/proc.h cvs rdiff -u -r1.33 -r1.34 src/sys/arch/powerpc/powerpc/fpu.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/powerpc/booke/spe.c diff -u src/sys/arch/powerpc/booke/spe.c:1.6 src/sys/arch/powerpc/booke/spe.c:1.7 --- src/sys/arch/powerpc/booke/spe.c:1.6 Wed Dec 26 19:05:04 2012 +++ src/sys/arch/powerpc/booke/spe.c Fri Aug 23 06:19:46 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: spe.c,v 1.6 2012/12/26 19:05:04 matt Exp $ */ +/* $NetBSD: spe.c,v 1.7 2013/08/23 06:19:46 matt Exp $ */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: spe.c,v 1.6 2012/12/26 19:05:04 matt Exp $); +__KERNEL_RCSID(0, $NetBSD: spe.c,v 1.7 2013/08/23 06:19:46 matt Exp $); #include opt_altivec.h @@ -63,13 +63,13 @@ const pcu_ops_t vec_ops = { bool vec_used_p(lwp_t *l) { - return (l-l_md.md_flags MDLWP_USEDVEC) != 0; + return pcu_used_p(vec_ops); } void vec_mark_used(lwp_t *l) { - l-l_md.md_flags |= MDLWP_USEDVEC; + pcu_discard(vec_ops, true); } void @@ -103,9 +103,8 @@ vec_state_load(lwp_t *l, u_int flags) __asm volatile (isync); /* - * Note that vector has now been used. + * Set PSL_SPV so vectors will be enabled on return to user. */ - l-l_md.md_flags |= MDLWP_USEDVEC; l-l_md.md_utf-tf_srr1 |= PSL_SPV; } Index: src/sys/arch/powerpc/booke/trap.c diff -u src/sys/arch/powerpc/booke/trap.c:1.22 src/sys/arch/powerpc/booke/trap.c:1.23 --- src/sys/arch/powerpc/booke/trap.c:1.22 Thu Aug 2 14:07:47 2012 +++ src/sys/arch/powerpc/booke/trap.c Fri Aug 23 06:19:46 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: trap.c,v 1.22 2012/08/02 14:07:47 matt Exp $ */ +/* $NetBSD: trap.c,v 1.23 2013/08/23 06:19:46 matt Exp $ */ /*- * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc. * All rights reserved. @@ -38,7 +38,7 @@ #include sys/cdefs.h -__KERNEL_RCSID(1, $NetBSD: trap.c,v 1.22 2012/08/02 14:07:47 matt Exp $); +__KERNEL_RCSID(1, $NetBSD: trap.c,v 1.23 2013/08/23 06:19:46 matt Exp $); #include sys/param.h #include sys/systm.h @@ -480,9 +480,9 @@ pgm_exception(struct trapframe *tf, ksig if (tf-tf_esr ESR_PIL) { struct pcb * const pcb = lwp_getpcb(curlwp); - if (__predict_false(!(curlwp-l_md.md_flags MDLWP_USEDFPU))) { + if (__predict_false(!fpu_used_p(curlwp))) { memset(pcb-pcb_fpu, 0, sizeof(pcb-pcb_fpu)); - curlwp-l_md.md_flags |= MDLWP_USEDFPU; + fpu_mark_used(curlwp); } if (fpu_emulate(tf, pcb-pcb_fpu, ksi)) { if (ksi-ksi_signo == 0) { Index: src/sys/arch/powerpc/ibm4xx/trap.c diff -u src/sys/arch/powerpc/ibm4xx/trap.c:1.65 src/sys/arch/powerpc/ibm4xx/trap.c:1.66 --- src/sys/arch/powerpc/ibm4xx/trap.c:1.65 Mon Jul 23 04:13:06 2012 +++ src/sys/arch/powerpc/ibm4xx/trap.c Fri Aug 23 06:19:46 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: trap.c,v 1.65 2012/07/23 04:13:06 matt Exp $ */ +/* $NetBSD: trap.c,v 1.66 2013/08/23 06:19:46 matt Exp $ */ /* * Copyright 2001 Wasabi Systems, Inc. @@ -67,7 +67,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: trap.c,v 1.65 2012/07/23 04:13:06 matt Exp $); +__KERNEL_RCSID(0, $NetBSD: trap.c,v 1.66 2013/08/23 06:19:46 matt Exp $); #include opt_altivec.h #include opt_ddb.h @@ -298,9 +298,9 @@ trap(struct trapframe *tf) curcpu()-ci_data.cpu_ntrap++; pcb = lwp_getpcb(l); - if (!(l-l_md.md_flags MDLWP_USEDFPU)) { + if (__predict_false(!fpu_used_p(l))) { memset(pcb-pcb_fpu, 0, sizeof(pcb-pcb_fpu)); - l-l_md.md_flags |= MDLWP_USEDFPU; + fpu_mark_used(l); } if (fpu_emulate(tf, pcb-pcb_fpu, ksi)) { Index: src/sys/arch/powerpc/include/proc.h diff -u src/sys/arch/powerpc/include/proc.h:1.12 src/sys/arch/powerpc/include/proc.h:1.13 --- src/sys/arch/powerpc/include/proc.h:1.12 Sun Jun 5 16:52:25 2011 +++ src/sys/arch/powerpc/include/proc.h Fri Aug 23 06:19:46 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: proc.h,v 1.12 2011/06/05 16:52:25 matt Exp $ */ +/* $NetBSD: proc.h,v 1.13 2013/08/23 06:19:46 matt Exp $ */ /*- * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -42,8 +42,6 @@ struct mdlwp { volatile int md_astpending; struct trapframe *md_utf; /* user trampframe */ }; -#define MDLWP_USEDFPU __BIT(PCU_FPU) /* this thread has used the FPU */ -#define MDLWP_USEDVEC __BIT(PCU_VEC) /* this thread has used the VEC */ struct trapframe; Index:
CVS commit: src/sys/arch/powerpc/oea
Module Name:src Committed By: matt Date: Fri Aug 23 06:21:33 UTC 2013 Modified Files: src/sys/arch/powerpc/oea: altivec.c Log Message: Get rid of MDLWP_USED{FPU,VEC} To generate a diff of this commit: cvs rdiff -u -r1.27 -r1.28 src/sys/arch/powerpc/oea/altivec.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/powerpc/oea/altivec.c diff -u src/sys/arch/powerpc/oea/altivec.c:1.27 src/sys/arch/powerpc/oea/altivec.c:1.28 --- src/sys/arch/powerpc/oea/altivec.c:1.27 Thu Aug 22 19:50:54 2013 +++ src/sys/arch/powerpc/oea/altivec.c Fri Aug 23 06:21:33 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: altivec.c,v 1.27 2013/08/22 19:50:54 drochner Exp $ */ +/* $NetBSD: altivec.c,v 1.28 2013/08/23 06:21:33 matt Exp $ */ /* * Copyright (C) 1996 Wolfgang Solfrank. @@ -32,7 +32,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: altivec.c,v 1.27 2013/08/22 19:50:54 drochner Exp $); +__KERNEL_RCSID(0, $NetBSD: altivec.c,v 1.28 2013/08/23 06:21:33 matt Exp $); #include opt_multiprocessor.h @@ -63,13 +63,13 @@ const pcu_ops_t vec_ops = { bool vec_used_p(lwp_t *l) { - return (l-l_md.md_flags MDLWP_USEDVEC) != 0; + return pcu_used_p(vec_ops); } void vec_mark_used(lwp_t *l) { - l-l_md.md_flags |= MDLWP_USEDVEC; + return pcu_discard(vec_ops, true); } void @@ -109,7 +109,7 @@ vec_state_load(lwp_t *l, u_int flags) /* * Mark vector registers as modified. */ - l-l_md.md_flags |= MDLWP_USEDVEC|PSL_VEC; + l-l_md.md_flags |= PSL_VEC; l-l_md.md_utf-tf_srr1 |= PSL_VEC; }
CVS commit: src/sys/arch/powerpc/powerpc
Module Name:src Committed By: matt Date: Fri Aug 23 06:22:32 UTC 2013 Modified Files: src/sys/arch/powerpc/powerpc: locore_subr.S Log Message: Simplify since we know curlwp is in %r13 To generate a diff of this commit: cvs rdiff -u -r1.49 -r1.50 src/sys/arch/powerpc/powerpc/locore_subr.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/powerpc/powerpc/locore_subr.S diff -u src/sys/arch/powerpc/powerpc/locore_subr.S:1.49 src/sys/arch/powerpc/powerpc/locore_subr.S:1.50 --- src/sys/arch/powerpc/powerpc/locore_subr.S:1.49 Wed Aug 1 20:35:52 2012 +++ src/sys/arch/powerpc/powerpc/locore_subr.S Fri Aug 23 06:22:32 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: locore_subr.S,v 1.49 2012/08/01 20:35:52 matt Exp $ */ +/* $NetBSD: locore_subr.S,v 1.50 2013/08/23 06:22:32 matt Exp $ */ /* * Copyright (c) 2001 Wasabi Systems, Inc. @@ -360,11 +360,7 @@ _ENTRY(softint_fast_dispatch) streg %r31, CFRAME_R31(%sp) GET_CPUINFO(%r7) -#ifdef PPC_BOOKE - mfsprg2 %r30 -#else - ldptr %r30, CI_CURLWP(%r7) -#endif /* PPC_BOOKE */ + mr %r30, %r13 /* curlwp is now in r13 */ #if defined (PPC_OEA) || defined (PPC_OEA64_BRIDGE) mfsr %r10,USER_SR /* save USER_SR for copyin/copyout */
CVS commit: src/sys/arch/powerpc/powerpc
Module Name:src Committed By: matt Date: Fri Aug 23 06:24:21 UTC 2013 Modified Files: src/sys/arch/powerpc/powerpc: trap_subr.S Log Message: Avoid a few instructions since we know CURLWP is in %r13 To generate a diff of this commit: cvs rdiff -u -r1.76 -r1.77 src/sys/arch/powerpc/powerpc/trap_subr.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/powerpc/powerpc/trap_subr.S diff -u src/sys/arch/powerpc/powerpc/trap_subr.S:1.76 src/sys/arch/powerpc/powerpc/trap_subr.S:1.77 --- src/sys/arch/powerpc/powerpc/trap_subr.S:1.76 Thu Apr 11 17:13:15 2013 +++ src/sys/arch/powerpc/powerpc/trap_subr.S Fri Aug 23 06:24:21 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: trap_subr.S,v 1.76 2013/04/11 17:13:15 macallan Exp $ */ +/* $NetBSD: trap_subr.S,v 1.77 2013/08/23 06:24:21 matt Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -1068,13 +1068,7 @@ s_sctrap: isync addi %r3,%r1,FRAME_TF /* Call the appropriate syscall handler: */ -#if 0 - GET_CPUINFO(%r4) - ldptr %r4,CI_CURLWP(%r4) - ldptr %r4,L_PROC(%r4) -#else ldptr %r4,L_PROC(%r13) -#endif ldptr %r4,P_MD_SYSCALL(%r4) mtctr %r4 bctrl
CVS commit: src/sys/net/npf
Module Name:src Committed By: rmind Date: Fri Aug 23 10:37:03 UTC 2013 Modified Files: src/sys/net/npf: npf_inet.c Log Message: - npf_cache_ip: re-fetch IPv6 header since nbufs might have been reallocated. - npf_cache_all: clear NBUF_DATAREF_RESET since npf_cache_ip() handles it. To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/net/npf/npf_inet.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/net/npf/npf_inet.c diff -u src/sys/net/npf/npf_inet.c:1.22 src/sys/net/npf/npf_inet.c:1.23 --- src/sys/net/npf/npf_inet.c:1.22 Sun Jun 2 02:20:04 2013 +++ src/sys/net/npf/npf_inet.c Fri Aug 23 10:37:03 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: npf_inet.c,v 1.22 2013/06/02 02:20:04 rmind Exp $ */ +/* $NetBSD: npf_inet.c,v 1.23 2013/08/23 10:37:03 rmind Exp $ */ /*- * Copyright (c) 2009-2012 The NetBSD Foundation, Inc. @@ -39,7 +39,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: npf_inet.c,v 1.22 2013/06/02 02:20:04 rmind Exp $); +__KERNEL_RCSID(0, $NetBSD: npf_inet.c,v 1.23 2013/08/23 10:37:03 rmind Exp $); #include sys/param.h #include sys/types.h @@ -391,8 +391,12 @@ npf_cache_ip(npf_cache_t *npc, nbuf_t *n npc-npc_hlen += hlen; } - /* Restore the offset. */ + /* + * Re-fetch the header pointers (nbufs might have been + * reallocated). Restore the original offset (if any). + */ nbuf_reset(nbuf); + ip6 = nbuf_dataptr(nbuf); if (off) { nbuf_advance(nbuf, off, 0); } @@ -437,6 +441,7 @@ again: */ flags = npf_cache_ip(npc, nbuf); if ((flags NPC_IP46) == 0 || (flags NPC_IPFRAG) != 0) { + nbuf_unset_flag(nbuf, NBUF_DATAREF_RESET); npc-npc_info |= flags; return flags; }
CVS commit: src/sys/arch/arm/arm32
Module Name:src Committed By: matt Date: Fri Aug 23 14:39:50 UTC 2013 Modified Files: src/sys/arch/arm/arm32: sys_machdep.c Log Message: Make use of vfp_used_p condition on FPU_VFP To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/arch/arm/arm32/sys_machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/arm32/sys_machdep.c diff -u src/sys/arch/arm/arm32/sys_machdep.c:1.18 src/sys/arch/arm/arm32/sys_machdep.c:1.19 --- src/sys/arch/arm/arm32/sys_machdep.c:1.18 Fri Aug 23 05:22:01 2013 +++ src/sys/arch/arm/arm32/sys_machdep.c Fri Aug 23 14:39:50 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: sys_machdep.c,v 1.18 2013/08/23 05:22:01 matt Exp $ */ +/* $NetBSD: sys_machdep.c,v 1.19 2013/08/23 14:39:50 matt Exp $ */ /* * Copyright (c) 1995-1997 Mark Brinicombe. @@ -41,7 +41,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: sys_machdep.c,v 1.18 2013/08/23 05:22:01 matt Exp $); +__KERNEL_RCSID(0, $NetBSD: sys_machdep.c,v 1.19 2013/08/23 14:39:50 matt Exp $); #include sys/param.h #include sys/systm.h @@ -123,7 +123,11 @@ static int arm32_fpu_used(struct lwp *l, const void *uap, register_t *retval) { /* No args */ +#ifdef FPU_VFP retval[0] = vfp_used_p(); +#else + retval[0] = false; +#endif return 0; }
CVS commit: src/lib/libc/gen
Module Name:src Committed By: matt Date: Fri Aug 23 16:01:35 UTC 2013 Added Files: src/lib/libc/gen: floatunsidf_ieee754.c floatunsisf_ieee754.c Log Message: Add __floatunsi{sd}f for IEEE754. Unlike the quad versions, these don't use floating point. To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/lib/libc/gen/floatunsidf_ieee754.c \ src/lib/libc/gen/floatunsisf_ieee754.c 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/gen/floatunsidf_ieee754.c diff -u /dev/null src/lib/libc/gen/floatunsidf_ieee754.c:1.1 --- /dev/null Fri Aug 23 16:01:35 2013 +++ src/lib/libc/gen/floatunsidf_ieee754.c Fri Aug 23 16:01:35 2013 @@ -0,0 +1,67 @@ +/* $NetBSD: floatunsidf_ieee754.c,v 1.1 2013/08/23 16:01:35 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; 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 sys/cdefs.h +#if defined(LIBC_SCCS) !defined(lint) +__RCSID($NetBSD: floatunsidf_ieee754.c,v 1.1 2013/08/23 16:01:35 matt Exp $); +#endif /* LIBC_SCCS and not lint */ + +#if defined(SOFTFLOAT) || defined(__ARM_EABI__) +#include softfloat/softfloat-for-gcc.h +#endif + +#include machine/ieee.h + +double __floatunsidf(uint32_t); + +/* + * Convert (unsigned) int to double. + */ +double +__floatunsidf(uint32_t x) +{ + union ieee_double_u u; + + if (x == 0) + return 0.0; + if (x == 1) + return 1.0; + + u_int l = __builtin_clz(x); + x = (l + 1); /* clear implicit bit */ + + u.dblu_sign = 0; + u.dblu_exp = DBL_EXP_BIAS + 31 - l; + u.dblu_frach = x (32 - DBL_FRACHBITS); + u.dblu_fracl = x (32 - DBL_FRACHBITS); + + return u.dblu_d; +} Index: src/lib/libc/gen/floatunsisf_ieee754.c diff -u /dev/null src/lib/libc/gen/floatunsisf_ieee754.c:1.1 --- /dev/null Fri Aug 23 16:01:35 2013 +++ src/lib/libc/gen/floatunsisf_ieee754.c Fri Aug 23 16:01:35 2013 @@ -0,0 +1,66 @@ +/* $NetBSD: floatunsisf_ieee754.c,v 1.1 2013/08/23 16:01:35 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; 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. + */ +
CVS commit: src/sys/dev/pci
Module Name:src Committed By: christos Date: Fri Aug 23 16:49:53 UTC 2013 Modified Files: src/sys/dev/pci: if_iwn.c pcidevs Log Message: PR/48150: Noriyuki Koizumi: Add support for Intel Centrino Advanced-N 6235 Wi-Fi controller To generate a diff of this commit: cvs rdiff -u -r1.67 -r1.68 src/sys/dev/pci/if_iwn.c cvs rdiff -u -r1.1159 -r1.1160 src/sys/dev/pci/pcidevs Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/pci/if_iwn.c diff -u src/sys/dev/pci/if_iwn.c:1.67 src/sys/dev/pci/if_iwn.c:1.68 --- src/sys/dev/pci/if_iwn.c:1.67 Sun Jul 28 07:46:24 2013 +++ src/sys/dev/pci/if_iwn.c Fri Aug 23 12:49:53 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: if_iwn.c,v 1.67 2013/07/28 11:46:24 prlw1 Exp $ */ +/* $NetBSD: if_iwn.c,v 1.68 2013/08/23 16:49:53 christos Exp $ */ /* $OpenBSD: if_iwn.c,v 1.119 2013/05/29 23:16:52 yuo Exp $ */ /*- @@ -22,7 +22,7 @@ * adapters. */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: if_iwn.c,v 1.67 2013/07/28 11:46:24 prlw1 Exp $); +__KERNEL_RCSID(0, $NetBSD: if_iwn.c,v 1.68 2013/08/23 16:49:53 christos Exp $); #define IWN_USE_RBUF /* Use local storage for RX */ #undef IWN_HWCRYPTO /* XXX does not even compile yet */ @@ -102,6 +102,7 @@ static const pci_product_id_t iwn_device PCI_PRODUCT_INTEL_WIFI_LINK_6005_2X2_2, PCI_PRODUCT_INTEL_WIFI_LINK_6230_1, PCI_PRODUCT_INTEL_WIFI_LINK_6230_2, + PCI_PRODUCT_INTEL_WIFI_LINK_6235, }; /* @@ -731,7 +732,8 @@ iwn5000_attach(struct iwn_softc *sc, pci if (pid == PCI_PRODUCT_INTEL_WIFI_LINK_1030_1 || pid == PCI_PRODUCT_INTEL_WIFI_LINK_1030_2 || pid == PCI_PRODUCT_INTEL_WIFI_LINK_6230_1 || - pid == PCI_PRODUCT_INTEL_WIFI_LINK_6230_2) { + pid == PCI_PRODUCT_INTEL_WIFI_LINK_6230_2 || + pid == PCI_PRODUCT_INTEL_WIFI_LINK_6235) { sc-fwname = iwlwifi-6000g2b-6.ucode; ops-config_bt_coex = iwn_config_bt_coex_adv1; } Index: src/sys/dev/pci/pcidevs diff -u src/sys/dev/pci/pcidevs:1.1159 src/sys/dev/pci/pcidevs:1.1160 --- src/sys/dev/pci/pcidevs:1.1159 Wed Jul 17 15:49:11 2013 +++ src/sys/dev/pci/pcidevs Fri Aug 23 12:49:53 2013 @@ -1,4 +1,4 @@ -$NetBSD: pcidevs,v 1.1159 2013/07/17 19:49:11 soren Exp $ +$NetBSD: pcidevs,v 1.1160 2013/08/23 16:49:53 christos Exp $ /* * Copyright (c) 1995, 1996 Christopher G. Demetriou @@ -2544,6 +2544,7 @@ product INTEL GDT_RAID1 0x0600 GDT RAID product INTEL GDT_RAID2 0x061f GDT RAID product INTEL WIFI_LINK_2230_1 0x0887 Centrino Wireless-N 2230 product INTEL WIFI_LINK_2230_2 0x0888 Centrino Wireless-N 2230 +product INTEL WIFI_LINK_6235 0x088e Centrino Advanced-N 6235 product INTEL 80960RM 0x0962 i960 RM PCI-PCI product INTEL 80960RN 0x0964 i960 RN PCI-PCI product INTEL HASWELL_HOST_DRAM 0x0c00 Haswell Host Bridge, DRAM
CVS commit: src/lib/libc/quad
Module Name:src Committed By: matt Date: Fri Aug 23 17:41:03 UTC 2013 Added Files: src/lib/libc/quad: floatdisf_ieee754.c floatundisf_ieee754.c Log Message: Add IEEE 754 versions of __float{,}disf which use no floating point. To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/lib/libc/quad/floatdisf_ieee754.c \ src/lib/libc/quad/floatundisf_ieee754.c 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/quad/floatdisf_ieee754.c diff -u /dev/null src/lib/libc/quad/floatdisf_ieee754.c:1.1 --- /dev/null Fri Aug 23 17:41:03 2013 +++ src/lib/libc/quad/floatdisf_ieee754.c Fri Aug 23 17:41:03 2013 @@ -0,0 +1,89 @@ +/* $NetBSD: floatdisf_ieee754.c,v 1.1 2013/08/23 17:41:03 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; 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 sys/cdefs.h +#if defined(LIBC_SCCS) !defined(lint) +__RCSID($NetBSD: floatdisf_ieee754.c,v 1.1 2013/08/23 17:41:03 matt Exp $); +#endif /* LIBC_SCCS and not lint */ + +#if defined(SOFTFLOAT) || defined(__ARM_EABI__) +#include softfloat/softfloat-for-gcc.h +#endif + +#include limits.h +#include machine/ieee.h +#include quad.h + +float __floatdisf(quad_t); + +/* + * Convert signed quad to float. + */ +float +__floatdisf(quad_t x) +{ + union ieee_single_u ux = { .sngu_f = 0.0 }; + + if (x == 0) + return 0.0; + if (x == 1) + return 1.0; + + if (x 0) { + if (x == QUAD_MIN) + return -0x1.0p63; + ux.sngu_sign = 1; + x = -x; + } +#if defined(_LP64) || defined(__mips_n32) + u_int l = __builtin_clzll(x); + x = (l + 1); /* clear implicit bit */ + + ux.sngu_frac = (u_quad_t)x (64 - SNG_FRACBITS); +#else + union uu u = { .q = x }; + uint32_t frac; + if (u.ul[H] == 0) { + u_int l = __builtin_clz(u.ul[L]); + frac = u.ul[L] (l + 1); /* clear implicit bit */ + l += 32; + } else { + u_int l = __builtin_clz(u.ul[H]); + frac = u.ul[H] (l + 1); /* clear implicit bit */ + frac |= u.ul[L] (32 - (l + 1)); + } + + ux.sngu_frac = frac (32 - SNG_FRACBITS); +#endif + ux.sngu_exp = SNG_EXP_BIAS + 63 - l; + + return ux.sngu_f; +} Index: src/lib/libc/quad/floatundisf_ieee754.c diff -u /dev/null src/lib/libc/quad/floatundisf_ieee754.c:1.1 --- /dev/null Fri Aug 23 17:41:03 2013 +++ src/lib/libc/quad/floatundisf_ieee754.c Fri Aug 23 17:41:03 2013 @@ -0,0 +1,82 @@ +/* $NetBSD: floatundisf_ieee754.c,v 1.1 2013/08/23 17:41:03 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
CVS commit: src/sys/arch/arm/vfp
Module Name:src Committed By: matt Date: Fri Aug 23 18:11:47 UTC 2013 Modified Files: src/sys/arch/arm/vfp: vfp_init.c Log Message: Deal with lack of VFP. To generate a diff of this commit: cvs rdiff -u -r1.25 -r1.26 src/sys/arch/arm/vfp/vfp_init.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/vfp/vfp_init.c diff -u src/sys/arch/arm/vfp/vfp_init.c:1.25 src/sys/arch/arm/vfp/vfp_init.c:1.26 --- src/sys/arch/arm/vfp/vfp_init.c:1.25 Fri Aug 23 05:22:01 2013 +++ src/sys/arch/arm/vfp/vfp_init.c Fri Aug 23 18:11:47 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: vfp_init.c,v 1.25 2013/08/23 05:22:01 matt Exp $ */ +/* $NetBSD: vfp_init.c,v 1.26 2013/08/23 18:11:47 matt Exp $ */ /* * Copyright (c) 2008 ARM Ltd @@ -189,12 +189,12 @@ vfp_fpscr_handler(u_int address, u_int i */ if (pcb-pcb_vfp.vfp_fpexc VFP_FPEXC_EN) return 1; -#endif if (__predict_false(!vfp_used_p())) { pcb-pcb_vfp.vfp_fpscr = (VFP_FPSCR_DN | VFP_FPSCR_FZ); /* Runfast */ } +#endif /* * We know know the pcb has the saved copy.
CVS commit: src/lib/libc/quad
Module Name:src Committed By: matt Date: Sat Aug 24 00:51:48 UTC 2013 Modified Files: src/lib/libc/quad: Makefile.inc floatdisf_ieee754.c floatundisf_ieee754.c Added Files: src/lib/libc/quad: fixdfdi_ieee754.c fixsfdi_ieee754.c fixunsdfdi_ieee754.c fixunssfdi_ieee754.c floatdidf_ieee754.c floatundidf_ieee754.c Log Message: Add IEEE 754 versions of fixdfdi.c fixsfdi.c fixunsdfdi.c fixunssfdi.c floatdidf.c floatdisf.c floatundidf.c floatundisf.c These don't FP so are well suited to softfloat implementation. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/lib/libc/quad/Makefile.inc cvs rdiff -u -r0 -r1.1 src/lib/libc/quad/fixdfdi_ieee754.c \ src/lib/libc/quad/fixsfdi_ieee754.c \ src/lib/libc/quad/fixunsdfdi_ieee754.c \ src/lib/libc/quad/fixunssfdi_ieee754.c \ src/lib/libc/quad/floatdidf_ieee754.c \ src/lib/libc/quad/floatundidf_ieee754.c cvs rdiff -u -r1.1 -r1.2 src/lib/libc/quad/floatdisf_ieee754.c \ src/lib/libc/quad/floatundisf_ieee754.c 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/quad/Makefile.inc diff -u src/lib/libc/quad/Makefile.inc:1.16 src/lib/libc/quad/Makefile.inc:1.17 --- src/lib/libc/quad/Makefile.inc:1.16 Tue Apr 30 01:43:01 2013 +++ src/lib/libc/quad/Makefile.inc Sat Aug 24 00:51:48 2013 @@ -1,13 +1,15 @@ -# $NetBSD: Makefile.inc,v 1.16 2013/04/30 01:43:01 matt Exp $ +# $NetBSD: Makefile.inc,v 1.17 2013/08/24 00:51:48 matt Exp $ # @(#)Makefile.inc 8.1 (Berkeley) 6/4/93 # Quad support SRCS.quad= cmpdi2.c ucmpdi2.c SRCS.quad+= divdi3.c moddi3.c +.if empty(LIBC_MACHINE_ARCH:Mearm*) SRCS.quad+= fixdfdi.c fixsfdi.c SRCS.quad+= fixunsdfdi.c fixunssfdi.c SRCS.quad+= floatdidf.c floatdisf.c -SRCS.quad+= floatundisf.c floatundidf.c +SRCS.quad+= floatundidf.c floatundisf.c +.endif SRCS.quad+= muldi3.c SRCS.quad+= negdi2.c SRCS.quad+= qdivrem.c @@ -17,8 +19,12 @@ SRCS.quad+= udivdi3.c umoddi3.c SRCS.quad+= ashldi3.S ashrdi3.S lshrdi3.S .elif (${MACHINE_ARCH} == m68000) SRCS.quad+= ashldi3.S lshrdi3.S -.elif (!empty{LIBC_MACHINE_ARCH:Mearm*}) +.elif !empty(LIBC_MACHINE_ARCH:Mearm*) SRCS.quad+= ashldi3.c ashrdi3.c lshrdi3.c lshldi3.c +SRCS.quad+= floatdidf_ieee754.c floatdisf_ieee754.c +SRCS.quad+= floatundidf_ieee754.c floatundisf_ieee754.c +SRCS.quad+= fixdfdi_ieee754.c fixsfdi_ieee754.c +SRCS.quad+= fixunsdfdi_ieee754.c fixunssfdi_ieee754.c .else SRCS.quad+= ashldi3.c ashrdi3.c lshrdi3.c .endif Index: src/lib/libc/quad/floatdisf_ieee754.c diff -u src/lib/libc/quad/floatdisf_ieee754.c:1.1 src/lib/libc/quad/floatdisf_ieee754.c:1.2 --- src/lib/libc/quad/floatdisf_ieee754.c:1.1 Fri Aug 23 17:41:03 2013 +++ src/lib/libc/quad/floatdisf_ieee754.c Sat Aug 24 00:51:48 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: floatdisf_ieee754.c,v 1.1 2013/08/23 17:41:03 matt Exp $ */ +/* $NetBSD: floatdisf_ieee754.c,v 1.2 2013/08/24 00:51:48 matt Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ #include sys/cdefs.h #if defined(LIBC_SCCS) !defined(lint) -__RCSID($NetBSD: floatdisf_ieee754.c,v 1.1 2013/08/23 17:41:03 matt Exp $); +__RCSID($NetBSD: floatdisf_ieee754.c,v 1.2 2013/08/24 00:51:48 matt Exp $); #endif /* LIBC_SCCS and not lint */ #if defined(SOFTFLOAT) || defined(__ARM_EABI__) @@ -69,14 +69,15 @@ __floatdisf(quad_t x) ux.sngu_frac = (u_quad_t)x (64 - SNG_FRACBITS); #else - union uu u = { .q = x }; + union uu u = { .uq = x }; uint32_t frac; + u_int l; if (u.ul[H] == 0) { - u_int l = __builtin_clz(u.ul[L]); + l = __builtin_clz(u.ul[L]); frac = u.ul[L] (l + 1); /* clear implicit bit */ l += 32; } else { - u_int l = __builtin_clz(u.ul[H]); + l = __builtin_clz(u.ul[H]); frac = u.ul[H] (l + 1); /* clear implicit bit */ frac |= u.ul[L] (32 - (l + 1)); } Index: src/lib/libc/quad/floatundisf_ieee754.c diff -u src/lib/libc/quad/floatundisf_ieee754.c:1.1 src/lib/libc/quad/floatundisf_ieee754.c:1.2 --- src/lib/libc/quad/floatundisf_ieee754.c:1.1 Fri Aug 23 17:41:03 2013 +++ src/lib/libc/quad/floatundisf_ieee754.c Sat Aug 24 00:51:48 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: floatundisf_ieee754.c,v 1.1 2013/08/23 17:41:03 matt Exp $ */ +/* $NetBSD: floatundisf_ieee754.c,v 1.2 2013/08/24 00:51:48 matt Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ #include sys/cdefs.h #if defined(LIBC_SCCS) !defined(lint) -__RCSID($NetBSD: floatundisf_ieee754.c,v 1.1 2013/08/23 17:41:03 matt Exp $); +__RCSID($NetBSD: floatundisf_ieee754.c,v 1.2 2013/08/24 00:51:48 matt Exp $); #endif /* LIBC_SCCS and not lint */ #if defined(SOFTFLOAT) || defined(__ARM_EABI__) @@ -64,12 +64,13 @@ __floatundisf(u_quad_t x) #else union uu u = { .uq = x }; uint32_t frac; + u_int l; if (u.ul[H] == 0) { - u_int l = __builtin_clz(u.ul[L]); + l = __builtin_clz(u.ul[L]); frac = u.ul[L] (l + 1); /*