diff packages/hal/mips/arch/current/include/mips.inc @ 0:3111d98ba7b3 ecos-v1_1-release

Initial commit of eCos version 1.1
author jlarmour
date Tue, 11 May 1999 11:16:07 +0000
parents
children 443894e2e912
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/arch/current/include/mips.inc
@@ -0,0 +1,113 @@
+##=============================================================================
+##
+##	mips.inc
+##
+##	MIPS assembler header file
+##
+##=============================================================================
+#####COPYRIGHTBEGIN####
+#
+# -------------------------------------------
+# The contents of this file are subject to the Cygnus eCos Public License
+# Version 1.0 (the "License"); you may not use this file except in
+# compliance with the License.  You may obtain a copy of the License at
+# http://sourceware.cygnus.com/ecos
+# 
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the
+# License for the specific language governing rights and limitations under
+# the License.
+# 
+# The Original Code is eCos - Embedded Cygnus Operating System, released
+# September 30, 1998.
+# 
+# The Initial Developer of the Original Code is Cygnus.  Portions created
+# by Cygnus are Copyright (C) 1998 Cygnus Solutions.  All Rights Reserved.
+# -------------------------------------------
+#
+#####COPYRIGHTEND####
+##=============================================================================
+#######DESCRIPTIONBEGIN####
+##
+## Author(s): 	nickg
+## Contributors:	nickg
+## Date:	1997-10-16
+## Purpose:	MIPS definitions.
+## Description:	This file contains various definitions and macros that are
+##              useful for writing assembly code for the MIPS CPU family.
+## Usage:
+##		#include <cyg/hal/mips.inc>
+##		...
+##		
+##
+######DESCRIPTIONEND####
+##
+##=============================================================================
+
+##-----------------------------------------------------------------------------
+## Standard MIPS register names:
+
+#define zero	$0
+#define z0	$0
+#define v0	$2
+#define v1	$3
+#define a0	$4
+#define a1	$5
+#define a2	$6
+#define a3	$7
+#define t0	$8
+#define t1	$9
+#define t2	$10
+#define t3	$11
+#define t4	$12
+#define t5	$13
+#define t6	$14
+#define t7	$15
+#define s0	$16
+#define s1	$17
+#define s2	$18
+#define s3	$19
+#define s4	$20
+#define s5	$21
+#define s6	$22
+#define s7	$23
+#define t8	$24
+#define t9	$25
+#define k0	$26	/* kernel private register 0 */
+#define k1	$27	/* kernel private register 1 */
+#define gp	$28	/* global data pointer */
+#define sp 	$29	/* stack-pointer */
+#define fp	$30	/* frame-pointer */
+#define ra	$31	/* return address */
+#define pc	$pc	/* pc, used on mips16 */
+
+#define config	$3	// Configuration register	
+#define cache	$7	// Cache control
+#define badvr	$8	// Bad virtual address		
+#define sr	$12	// Status register	
+#define cause	$13	// Exception cause
+#define	epc	$14	// Exception pc value
+#define prid	$15	// processor ID	
+
+##-----------------------------------------------------------------------------
+## MIPS saved state
+	
+#define	mipsreg_regs	0
+#define	mipsreg_hi	(4*32)
+#define	mipsreg_lo	(mipsreg_hi+4)
+#define	mipsreg_vector	(mipsreg_lo+4)
+#define	mipsreg_pc	(mipsreg_vector+4)
+#define	mipsreg_sr	(mipsreg_pc+4)
+#define	mipsreg_cache	(mipsreg_sr+4)
+#define	mipsreg_cause	(mipsreg_cache+4)
+#define	mipsreg_badvr	(mipsreg_cause+4)
+#define	mipsreg_prid	(mipsreg_badvr+4)
+#define	mipsreg_config	(mipsreg_prid+4)
+#define	mipsreg_size	(mipsreg_config+4)
+
+#define mips_exception_decrement	(mipsreg_size*2)	
+
+#define mips_stack_frame_size		24	// 3 (64 bit) args worth
+
+#------------------------------------------------------------------------------
+# end of mips.inc