asm_regnames.h

来自「一个MIPS虚拟机的源码」· C头文件 代码 · 共 101 行

H
101
字号
#ifndef __asm_regnames_h__#define __asm_regnames_h__/* Special names */#define zero $0	/* always zero *//*#define at $1	(* assembler temporary *) *//* above conflicts with the .set at assembler directive. just use $1 instead */#define v0 $2	/* function values */#define v1 $3#define a0 $4	/* function arguments */#define a1 $5#define a2 $6#define a3 $7#define t0 $8	/* temporary registers; not preserved across func calls */#define t1 $9#define t2 $10#define t3 $11#define t4 $12#define t5 $13#define t6 $14#define t7 $15#define s0 $16	/* "saved" regs - must preserve these if you use them */#define s1 $17#define s2 $18#define s3 $19#define s4 $20#define s5 $21#define s6 $22#define s7 $23#define t8 $24	/* more temporary regs */#define t9 $25#define k0 $26	/* kernel temporary variables */#define kt0 $26#define k1 $27#define kt1 $27#define gp $28	/* pointer to globals */#define sp $29	/* stack pointer */#define s8 $30	/* another "saved" reg */#define ra $31	/* return address *//* CP0 reg names - these pertain to address translation and * exception handling, and not all of them are implemented on the * R3000. (But they have such cool names...) */#define Index $0     /* selects TLB entry for r/w ops & shows probe success */ #define Random $1    /* continuously decrementing number (range 8..63) */#define EntryLo $2   /* low word of a TLB entry */#define EntryLo0 $2  /* R4k uses this for even-numbered virtual pages */#define EntryLo1 $3  /* R4k uses this for odd-numbered virtual pages */#define Context $4   /* TLB refill handler's kernel PTE entry pointer */#define PageMask $5  /* R4k page number bit mask (impl. variable page sizes) */#define Wired $6     /* R4k lower bnd for Random (controls randomness of TLB) */#define Error $7     /* R6k status/control register for parity checking */#define BadVAddr $8  /* "bad" virt. addr (VA of last failed v->p translation) */#define Count $9     /* R4k r/w reg - continuously incrementing counter */#define EntryHi $10  /* High word of a TLB entry */#define ASID $10     /* R6k uses this to store the ASID (only) */#define Compare $11  /* R4k traps when this register equals Count */#define Status $12   /* Kernel/User mode, interrupt enb., & diagnostic states */#define Cause $13    /* Cause of last exception */#define EPC $14      /* Address to return to after processing this exception */#define PRId $15     /* Processor revision identifier */#define Config $16   /* R4k config options for caches, etc. */#define LLAdr $17    /* R4k last instruction read by a Load Linked */#define LLAddr $17   /* Inconsistencies in naming... sigh. */#define WatchLo $18  /* R4k hardware watchpoint data */#define WatchHi $19  /* R4k hardware watchpoint data *//* 20-25 - reserved */#define ECC $26      /* R4k cache Error Correction Code */#define CacheErr $27 /* R4k read-only cache error codes */#define TagLo $28    /* R4k primary or secondary cache tag and parity */#define TagHi $29    /* R4k primary or secondary cache tag and parity */#define ErrorEPC $30 /* R4k cache error EPC *//* 31 - reserved *//* Exceptions - Cause register ExcCode field */#define Int 0		/* Interrupt */#define Mod 1		/* TLB modification exception */#define TLBL 2		/* TLB exception (load or instruction fetch) */#define TLBS 3		/* TLB exception (store) */#define AdEL 4		/* Address error exception (load or instruction fetch) */#define AdES 5		/* Address error exception (store) */#define IBE 6		/* Instruction bus error */#define DBE 7		/* Data (load or store) bus error */#define Sys 8		/* SYSCALL exception */#define Bp 9		/* Breakpoint exception (BREAK instruction) */#define RI 10		/* Reserved instruction exception */#define CpU 11		/* Coprocessor Unusable */#define Ov 12		/* Arithmetic Overflow */#define Tr 13		/* Trap (R4k/R6k only) */#define NCD 14		/* LDCz or SDCz to uncached address (R6k) */#define VCEI 14		/* Virtual Coherency Exception (instruction) (R4k) */#define MV 15		/* Machine check exception (R6k) */#define FPE 15		/* Floating-point exception (R4k) *//* 16-22 - reserved */#define WATCH 23	/* Reference to WatchHi/WatchLo address detected (R4k) *//* 24-30 - reserved */#define VCED 31		/* Virtual Coherency Exception (data) (R4k) */#endif /* __asm_regnames_h__ */

⌨️ 快捷键说明

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