⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fpip.h

📁 可以自由开发的MIPS仿真器模型(.exe),指令执行动画显示.通过修改graphics和对应的元件和互联文件(.dit)可以自己画流水线,其中.dit文件使用简单的硬件描述语言编写.而mipsit是
💻 H
字号:
/*
**	fpip.h - header file for floating point exception handler
**
**	Copyright 1990 Integrated Device Technology, Inc.
**	All Rights Reserved
**
*/

/*
**
**			USER SPECIFIC DEFINITIONS
**
*/

/*
**		     CP1 => FLOATING POINT REGISTERS			 
*/
#ifndef __FPIP_H__
#define  __FPIP_H__

#define FP_IRR		$0		/* implementation/revision register */
#define FP_CSR		$31		/* control/status register          */

#define fNaN		0x7fbfffff	/* single precision Not a Number    */
#define dNaN		0x7ff7ffffffffffff   /* double precision            */
#define wNaN		0x7fffffff	     /* word			    */
		
/*
**     	FLOATING POINT EXCEPTION CAUSES in Control/Status Register 	
**		shifted right to positions 0..5
*/

#define	INEXACT 	0x1
#define	UNDERFLOW 	0x2
#define OVERFLOW	0x4 
#define ZERODIV		0x8 
#define INVALID		0x10
#define UNIMPLEMENTED   0x20

/*
**     	FLOATING POINT EXCEPTION BITS in Control/Status Register 	
*/

#define	ExINEXACT 	0x1000
#define	ExUNDERFLOW 	0x2000
#define ExOVERFLOW	0x4000
#define ExZERODIV	0x8000 
#define ExINVALID	0x10000
#define ExUNIMPL	0x20000
#define AllExceptions   0x3F000		/* all Exceptions in fp csr   */

/*
**     	FLOATING POINT TRAP ENABLE BITS in Control/Status Register 	
*/

#define	TrINEXACT 	0x80
#define	TrUNDERFLOW 	0x100
#define TrOVERFLOW	0x200 
#define TrZERODIV	0x400 
#define TrINVALID	0x800
#define EnableAll       0xF80	/* all Traps in fp csr              */

/*
**	FLOATING POINT STICKY BITS in Control/Status Register
*/

#define	StINEXACT 	0x4
#define	StUNDERFLOW 	0x8
#define StOVERFLOW	0x10 
#define StZERODIV	0x20 
#define StINVALID	0x40
#define AllSticky       0x7C		/* all Sticky bits in fp csr        */

/*
**	ROUNDING MODE bits in Control/Status Register
*/

#define fpRN		0x0		/* Rounds result to nearest value   */
#define fpRZ		0x1		/* Rounds result toward zero	    */
#define fpRP		0x2		/* Rounds result to + INFINITY      */
#define fpRM		0x3		/* Rounds result to - INFINITY      */
	
/*
**	Offset in Signal Handler Table for Exceptions
*/

#define INEXACTsig	0x0
#define UNDERFLsig	0x1
#define OVERFLsig	0x2
#define ZERODIVsig	0x3
#define INVALIDsig	0x4
#define UNIMPLsig	0x5

#ifdef CLANGUAGE
typedef struct exc_regs{
	unsigned int	CAUSE_Reg;
	unsigned int	STATUS_Reg;
	unsigned int	EPC_Reg;
	unsigned int	FPCSR_Reg;
	unsigned int	sav_FPCSR;
       }keep_regs;
#endif CLANGUAGE
#endif /*  __FPIP_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -