111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* $OpenBSD: regdef.h,v 1.3 2005/08/07 07:29:44 miod Exp $ */ 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 1992, 1993 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * The Regents of the University of California. All rights reserved. 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * This code is derived from software contributed to Berkeley by 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Ralph Campbell. This file is derived from the MIPS RISC 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Architecture book by Gerry Kane. 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Redistribution and use in source and binary forms, with or without 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * modification, are permitted provided that the following conditions 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * are met: 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1. Redistributions of source code must retain the above copyright 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * notice, this list of conditions and the following disclaimer. 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 2. Redistributions in binary form must reproduce the above copyright 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * notice, this list of conditions and the following disclaimer in the 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * documentation and/or other materials provided with the distribution. 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 3. Neither the name of the University nor the names of its contributors 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * may be used to endorse or promote products derived from this software 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * without specific prior written permission. 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * SUCH DAMAGE. 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * @(#)regdef.h 8.1 (Berkeley) 6/10/93 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */ 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _MIPS_REGDEF_H_ 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _MIPS_REGDEF_H_ 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define zero $0 /* always zero */ 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AT $at /* assembler temp */ 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define v0 $2 /* return value */ 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define v1 $3 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define a0 $4 /* argument registers */ 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define a1 $5 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define a2 $6 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define a3 $7 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined(__mips_n32) || defined(__mips_n64) 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define a4 $8 /* expanded register arguments */ 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define a5 $9 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define a6 $10 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define a7 $11 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ta0 $8 /* alias */ 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ta1 $9 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ta2 $10 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ta3 $11 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define t0 $12 /* temp registers (not saved across subroutine calls) */ 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define t1 $13 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define t2 $14 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define t3 $15 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define t0 $8 /* temp registers (not saved across subroutine calls) */ 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define t1 $9 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define t2 $10 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define t3 $11 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define t4 $12 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define t5 $13 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define t6 $14 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define t7 $15 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ta0 $12 /* alias */ 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ta1 $13 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ta2 $14 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ta3 $15 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define s0 $16 /* saved across subroutine calls (callee saved) */ 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define s1 $17 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define s2 $18 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define s3 $19 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define s4 $20 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define s5 $21 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define s6 $22 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define s7 $23 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define t8 $24 /* two more temp registers */ 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define t9 $25 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define k0 $26 /* kernel temporary */ 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define k1 $27 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define gp $28 /* global pointer */ 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define sp $29 /* stack pointer */ 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define s8 $30 /* one more callee saved */ 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ra $31 /* return address */ 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /* !_MIPS_REGDEF_H_ */ 93