summaryrefslogtreecommitdiffstats
path: root/sys/mips/include/regdef.h
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2013-05-01 05:46:54 +0000
committerimp <imp@FreeBSD.org>2013-05-01 05:46:54 +0000
commit209bc458d47591ef5e9de40d0fcef3fb1de78643 (patch)
treece7dc669af464ade5e5dce334eff5a1cf7081761 /sys/mips/include/regdef.h
parentfaa1380e8474053e5dd2f4129411639eff44f322 (diff)
downloadFreeBSD-src-209bc458d47591ef5e9de40d0fcef3fb1de78643.zip
FreeBSD-src-209bc458d47591ef5e9de40d0fcef3fb1de78643.tar.gz
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.
Diffstat (limited to 'sys/mips/include/regdef.h')
-rw-r--r--sys/mips/include/regdef.h143
1 files changed, 62 insertions, 81 deletions
diff --git a/sys/mips/include/regdef.h b/sys/mips/include/regdef.h
index 7efdd95..9d66479 100644
--- a/sys/mips/include/regdef.h
+++ b/sys/mips/include/regdef.h
@@ -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 */
OpenPOWER on IntegriCloud