#ifndef XCPT_ASM_H
#define XCPT_ASM_H

/* LEAF - declare leaf routine */
#define	LEAF(symbol)						\
			.globl	symbol;					\
			.align	2;						\
			.type	symbol, @function;		\
			.ent	symbol, 0;				\
symbol:		.frame	sp, 0, ra

/* END - mark end of function */
#define	END(function)						\
			.end	function;				\
			.size	function, .-function

/* Exception stack size */
#define	XCP_SIZE		32768

/* save location for registers */
#define	XCP_SR			0
#define	XCP_CR			4
#define	XCP_EPC			8
#define	XCP_BADDR		12
#define	XCP_ZERO		16
#define	XCP_AT			20
#define	XCP_V0			24
#define	XCP_V1			28
#define	XCP_A0			32
#define	XCP_A1			36
#define	XCP_A2			40
#define	XCP_A3			44
#define	XCP_T0			48
#define	XCP_T1			52
#define	XCP_T2			56
#define	XCP_T3			60
#define	XCP_T4			64
#define	XCP_T5			68
#define	XCP_T6			72
#define	XCP_T7			76
#define	XCP_S0			80
#define	XCP_S1			84
#define	XCP_S2			88
#define	XCP_S3			92
#define	XCP_S4			96
#define	XCP_S5			100
#define	XCP_S6			104
#define	XCP_S7			108
#define	XCP_T8			112
#define	XCP_T9			116
#define	XCP_JP			116
#define	XCP_K0			120
#define	XCP_K1			124
#define	XCP_GP			128
#define	XCP_SP			132
#define	XCP_S8			136
#define	XCP_FP			136
#define	XCP_RA			140
#define	XCP_MDLO		144
#define	XCP_MDHI		148
#define	XCP_COUNT		152
#define	XCP_COMPARE		156
#define	XCP_PREV		160
#define	XCP_CLASS		164


#endif /* XCPT_ASM_H */
