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

📄 archdefs.h

📁 MIPS YAMON, a famous monitor inc. source, make file and PDF manuals.
💻 H
📖 第 1 页 / 共 5 页
字号:
#define PrefWBInval		25#define PrefNudge		25/* ************************************************************************* *             C P U   R E G I S T E R   D E F I N I T I O N S           * ************************************************************************* *//* ************************************************************************* *                  S O F T W A R E   G P R   N A M E S                  * ************************************************************************* */#if defined(__ASSEMBLER__)#define zero			 $0#define AT			 $1#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#define k1			$27#define gp			$28#define sp			$29#define fp			$30#define ra			$31#endif/* * The following registers are used by the AVP environment and * are not part of the normal software definitions. */#ifdef MIPSAVPENV#define repc			$25			/* Expected exception PC */#define tid			$30			/* Current test case address */#endif/* ************************************************************************* *                  H A R D W A R E   G P R   N A M E S                  * ************************************************************************* * * In the AVP environment, several of the `r' names are removed from the * name space because they are used by the kernel for special purposes. * Removing them causes assembly rather than runtime errors for tests that * use the `r' names. * *	- r25 (repc) is used as the expected PC on an exception *	- r26-r27 (k0, k1) are used in the exception handler *	- r30 (tid) is used as the current test address */#if defined(__ASSEMBLER__)#define r0			 $0#define r1			 $1#define r2			 $2#define r3			 $3#define r4			 $4#define r5			 $5#define r6			 $6#define r7			 $7#define r8			 $8#define r9			 $9#define r10			$10#define r11			$11#define r12			$12#define r13			$13#define r14			$14#define r15			$15#define r16			$16#define r17			$17#define r18			$18#define r19			$19#define r20			$20#define r21			$21#define r22			$22#define r23			$23#define r24			$24#ifdef MIPSAVPENV#define r25			r25_unknown#define r26			r26_unknown#define r27			r27_unknown#else#define r25			$25#define r26			$26#define r27			$27#endif#define r28			$28#define r29			$29#ifdef MIPSAVPENV#define r30			r30_unknown#else#define r30			$30#endif#define r31			$31#endif /* defined(__ASSEMBLER__) *//* ************************************************************************* *                H A R D W A R E   G P R   I N D I C E S                * ************************************************************************* * * These definitions provide the index (number) of the GPR, as opposed * to the assembler register name ($n). */#define R_r0			 0#define R_r1			 1#define R_r2			 2#define R_r3			 3#define R_r4			 4#define R_r5			 5#define R_r6			 6#define R_r7			 7#define R_r8			 8#define R_r9			 9#define R_r10			10#define R_r11			11#define R_r12			12#define R_r13			13#define R_r14			14#define R_r15			15#define R_r16			16#define R_r17			17#define R_r18			18#define R_r19			19#define R_r20			20#define R_r21			21#define R_r22			22#define R_r23			23#define R_r24			24#define R_r25			25#define R_r26			26#define R_r27			27#define R_r28			28#define R_r29			29#define R_r30			30#define R_r31			31#define R_hi			32			/* Hi register */#define R_lo			33			/* Lo register *//* ************************************************************************* *                S O F T W A R E   G P R   I N D I C E S                * ************************************************************************* * * These definitions provide the index (number) of the GPR, as opposed * to the assembler register name ($n). */#define R_zero			 0#define R_AT			 1#define R_v0			 2#define R_v1			 3#define R_a0			 4#define R_a1			 5#define R_a2			 6#define R_a3			 7#define R_t0			 8#define R_t1			 9#define R_t2			10#define R_t3			11#define R_t4			12#define R_t5			13#define R_t6			14#define R_t7			15#define R_s0			16#define R_s1			17#define R_s2			18#define R_s3			19#define R_s4			20#define R_s5			21#define R_s6			22#define R_s7			23#define R_t8			24#define R_t9			25#define R_k0			26#define R_k1			27#define R_gp			28#define R_sp			29#define R_fp			30#define R_s8			30#define R_ra			31/* ************************************************************************* *                  S O F T W A R E   G P R   M A S K S                  * ************************************************************************* * * These definitions provide the bit mask corresponding to the GPR number */#define M_AT			 (1<<1)#define M_v0			 (1<<2)#define M_v1			 (1<<3)#define M_a0			 (1<<4)#define M_a1			 (1<<5)#define M_a2			 (1<<6)#define M_a3			 (1<<7)#define M_t0			 (1<<8)#define M_t1			 (1<<9)#define M_t2			(1<<10)#define M_t3			(1<<11)#define M_t4			(1<<12)#define M_t5			(1<<13)#define M_t6			(1<<14)#define M_t7			(1<<15)#define M_s0			(1<<16)#define M_s1			(1<<17)#define M_s2			(1<<18)#define M_s3			(1<<19)#define M_s4			(1<<20)#define M_s5			(1<<21)#define M_s6			(1<<22)#define M_s7			(1<<23)#define M_t8			(1<<24)#define M_t9			(1<<25)#define M_k0			(1<<26)#define M_k1			(1<<27)#define M_gp			(1<<28)#define M_sp			(1<<29)#define M_fp			(1<<30)#define M_ra			(1<<31)/* ************************************************************************* *             C P 0   R E G I S T E R   D E F I N I T I O N S           * ************************************************************************* * Each register has the following definitions: * *	C0_rrr		The register number (as a $n value) *	R_C0_rrr	The register index (as an integer corresponding *			to the register number) *	R_C0_Selrrr	The register select (as an integer corresponding *			to the register select) * * Each field in a register has the following definitions: * *	S_rrrfff	The shift count required to right-justify *			the field.  This corresponds to the bit *			number of the right-most bit in the field. *	M_rrrfff	The Mask required to isolate the field. * * Register diagrams included below as comments correspond to the * MIPS32 and MIPS64 architecture specifications.  Refer to other * sources for register diagrams for older architectures. *//* ************************************************************************ *                 I N D E X   R E G I S T E R   ( 0 )                  * ************************************************************************ * 	 *  3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 *  1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * |P|                         0                       |   Index   | Index * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ */#define C0_Index		$0#define R_C0_Index		0#define R_C0_SelIndex		0#define C0_INX			C0_Index		/* OBSOLETE - DO NOT USE IN NEW CODE */#define S_IndexP		31			/* Probe failure (R)*/#define M_IndexP		(0x1 << S_IndexP)#define S_IndexIndex		0			/* TLB index (R/W)*/#define M_IndexIndex		(0x3f << S_IndexIndex)#define M_Index0Fields		0x7fffffc0#define M_IndexRFields		0x80000000/* ************************************************************************ *                R A N D O M   R E G I S T E R   ( 1 )                 * ************************************************************************ * 	 *  3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 *  1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * |                            0                      |   Index   | Random * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ */#define C0_Random		$1#define R_C0_Random		1#define R_C0_SelRandom		0#define C0_RAND			$1			/* OBSOLETE - DO NOT USE IN NEW CODE */#define S_RandomIndex		0			/* TLB random index (R)*/#define M_RandomIndex		(0x3f << S_RandomIndex)#define M_Random0Fields		0xffffffc0#define M_RandomRFields		0x0000003f/* ************************************************************************ *              E N T R Y L O 0   R E G I S T E R   ( 2 )               * ************************************************************************ * 	 *  6 6 6 6 5 // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 *  3 2 1 0 9 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 * +-+-+-+-+-+//+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * | Fill (0) //|R|X|                     PFN                       |  C  |D|V|G| EntryLo0 * |          //|I|I|                                               |     | | | | * +-+-+-+-+-+//+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ */#define C0_EntryLo0		$2#define R_C0_EntryLo0		2#define R_C0_SelEntryLo0	0#define C0_TLBLO_0		C0_EntryLo0		/* OBSOLETE - DO NOT USE IN NEW CODE */#if defined(MIPS_SmartMIPS_ASE)/* * SmartMIPS MMU has RI and XI bits for further access qualification. * Non-SmartMIPS MMUs have bits 31 and 30 as reserved/zero bits. */#define S_EntryLoRI		31		    /* Read Inhibit (R/W) */#define M_EntryLoRI		(0x1 << S_EntryLoRI)#define S_EntryLoXI		30		    /* Execute Inhibit (R/W) */#define M_EntryLoXI		(0x1 << S_EntryLoXI)#endif /* MIPS_SmartMIPS_ASE */#define S_EntryLoPFN		6			/* PFN (R/W) */#define M_EntryLoPFN		(0xffffff << S_EntryLoPFN)#define S_EntryLoC		3			/* Coherency attribute (R/W) */#define M_EntryLoC		(0x7 << S_EntryLoC)#define S_EntryLoD		2			/* Dirty (R/W) */#define M_EntryLoD		(0x1 << S_EntryLoD)#define S_EntryLoV		1			/* Valid (R/W) */#define M_EntryLoV		(0x1 << S_EntryLoV)#define S_EntryLoG		0			/* Global (R/W) */#define M_EntryLoG		(0x1 << S_EntryLoG)#define M_EntryLoOddPFN		(0x1 << S_EntryLoPFN)	/* Odd PFN bit */#define S_EntryLo_RS		K_PageAlign		/* ? *//* Shift to put PFN in its position within a physical address */#ifndef MIPS_SmartMIPS_ASE#define S_EntryLo_LS		(12 - S_EntryLoPFN)#else#define S_EntryLo_LS		((12 - S_EntryLoPFN) - (12 - C0_PageGrainMSOne))#endif /* MIPS_SmartMIPS_ASE */

⌨️ 快捷键说明

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