svn commit: r250134 - head/sys/mips/include

Juli Mallett jmallett at FreeBSD.org
Wed May 1 05:55:58 UTC 2013


Warner,

May I ask why you're bringing in the 4.4BSD version and not the NetBSD
version, which already contained the appropriate ABI gunk?  Do we
really need to duplicate their work improving the file since 4.4BSD?

Thanks,
Juli.

On Tue, Apr 30, 2013 at 10:46 PM, Warner Losh <imp at freebsd.org> wrote:
> Author: imp
> Date: Wed May  1 05:46:54 2013
> New Revision: 250134
> URL: http://svnweb.freebsd.org/changeset/base/250134
>
> Log:
>   Import virgin regdef.h from 4.4 Lite 2's sys/pmax/include/regdef.h,
>   expand the %sccs.include.redist.c% directive with the standard
>   3-clause license, and add $FreeBSD$ to keep the commit script happy.
>
>   # This may break some mips stuff, which will be fixed in the next commit.
>
> Modified:
>   head/sys/mips/include/regdef.h
>
> Modified: head/sys/mips/include/regdef.h
> ==============================================================================
> --- head/sys/mips/include/regdef.h      Wed May  1 05:14:59 2013        (r250133)
> +++ head/sys/mips/include/regdef.h      Wed May  1 05:46:54 2013        (r250134)
> @@ -1,86 +1,67 @@
> -/*-
> - * Copyright (c) 2001, Juniper Networks, Inc.
> - * All rights reserved.
> - * Truman Joe, February 2001.
> +/*
> + * Copyright (c) 1992, 1993
> + *      The Regents of the University of California.  All rights reserved.
>   *
> - * regdef.h -- MIPS register definitions.
> + * This code is derived from software contributed to Berkeley by
> + * Ralph Campbell. This file is derived from the MIPS RISC
> + * Architecture book by Gerry Kane.
>   *
> - *     JNPR: regdef.h,v 1.3 2006/08/07 05:38:57 katta
> - * $FreeBSD$
> - */
> -
> -#ifndef _MACHINE_REGDEF_H_
> -#define        _MACHINE_REGDEF_H_
> -
> -#include <machine/cdefs.h>             /* For API selection */
> -
> -#if defined(__ASSEMBLER__)
> -/* General purpose CPU register names */
> -#define        zero    $0      /* wired zero */
> -#define        AT      $at     /* assembler temp */
> -#define        v0      $2      /* return value */
> -#define        v1      $3
> -#define        a0      $4      /* argument registers */
> -#define        a1      $5
> -#define        a2      $6
> -#define        a3      $7
> -#if defined(__mips_n32) || defined(__mips_n64)
> -#define        a4      $8
> -#define        a5      $9
> -#define        a6      $10
> -#define        a7      $11
> -#define        t0      $12     /* Temp regs, not saved accross subroutine calls */
> -#define        t1      $13
> -#define        t2      $14
> -#define        t3      $15
> -#else
> -#define        t0      $8      /* caller saved */
> -#define        t1      $9
> -#define        t2      $10
> -#define        t3      $11
> -#define        t4      $12     /* caller saved - 32 bit env arg reg 64 bit */
> -#define        t5      $13
> -#define        t6      $14
> -#define        t7      $15
> -#endif
> -#define        s0      $16     /* callee saved */
> -#define        s1      $17
> -#define        s2      $18
> -#define        s3      $19
> -#define        s4      $20
> -#define        s5      $21
> -#define        s6      $22
> -#define        s7      $23
> -#define        t8      $24     /* code generator */
> -#define        t9      $25
> -#define        k0      $26     /* kernel temporary */
> -#define        k1      $27
> -#define        gp      $28     /* global pointer */
> -#define        sp      $29     /* stack pointer */
> -#define        fp      $30     /* frame pointer */
> -#define        s8      $30     /* callee saved */
> -#define        ra      $31     /* return address */
> -
> -/*
> - * These are temp registers whose names can be used in either the old
> - * or new ABI, although they map to different physical registers.  In
> - * the old ABI, they map to t4-t7, and in the new ABI, they map to a4-a7.
> + * 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.
> + * 4. 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.
>   *
> - * Because they overlap with the last 4 arg regs in the new ABI, ta0-ta3
> - * should be used only when we need more than t0-t3.
> + * 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.
> + *      @(#)regdef.h    8.1 (Berkeley) 06/10/93
> + * $FreeBSD$
>   */
> -#if defined(__mips_n32) || defined(__mips_n64)
> -#define        ta0     $8
> -#define        ta1     $9
> -#define        ta2     $10
> -#define        ta3     $11
> -#else
> -#define        ta0     $12
> -#define        ta1     $13
> -#define        ta2     $14
> -#define        ta3     $15
> -#endif /* __mips_n32 || __mips_n64 */
> -
> -#endif /* __ASSEMBLER__ */
>
> -#endif /* !_MACHINE_REGDEF_H_ */
> +#define zero    $0      /* always zero */
> +#define AT      $at     /* assembler temp */
> +#define v0      $2      /* return value */
> +#define v1      $3
> +#define a0      $4      /* argument registers */
> +#define a1      $5
> +#define a2      $6
> +#define a3      $7
> +#define t0      $8      /* temp registers (not saved across subroutine calls) */
> +#define t1      $9
> +#define t2      $10
> +#define t3      $11
> +#define t4      $12
> +#define t5      $13
> +#define t6      $14
> +#define t7      $15
> +#define s0      $16     /* saved across subroutine calls (callee saved) */
> +#define s1      $17
> +#define s2      $18
> +#define s3      $19
> +#define s4      $20
> +#define s5      $21
> +#define s6      $22
> +#define s7      $23
> +#define t8      $24     /* two more temp registers */
> +#define t9      $25
> +#define k0      $26     /* kernel temporary */
> +#define k1      $27
> +#define gp      $28     /* global pointer */
> +#define sp      $29     /* stack pointer */
> +#define s8      $30     /* one more callee saved */
> +#define ra      $31     /* return address */


More information about the svn-src-head mailing list