mirror of
https://github.com/OpenDriver2/REDRIVER2.git
synced 2024-11-24 19:32:50 +01:00
151 lines
2.7 KiB
C
151 lines
2.7 KiB
C
#ifndef ASM_H
|
|
#define ASM_H
|
|
|
|
#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
|
|
#define R25 $25
|
|
#define R26 $26
|
|
#define R27 $27
|
|
#define R28 $28
|
|
#define R29 $29
|
|
#define R30 $30
|
|
#define R31 $31
|
|
|
|
#if defined(_LANGUAGE_C)||defined(LANGUAGE_C)||defined(_LANGUAGE_C_PLUS_PLUS)||defined(__cplusplus)||defined(c_plusplus)
|
|
#else
|
|
#define zero $0 /* wired zero */
|
|
#define AT $1 /* assembler temp */
|
|
#define v0 $2 /* return value */
|
|
#define v1 $3
|
|
#define a0 $4 /* argument registers */
|
|
#define a1 $5
|
|
#define a2 $6
|
|
#define a3 $7
|
|
#define t0 $8 /* caller saved */
|
|
#define t1 $9
|
|
#define t2 $10
|
|
#define t3 $11
|
|
#define t4 $12
|
|
#define t5 $13
|
|
#define t6 $14
|
|
#define t7 $15
|
|
#define s0 $16 /* callee saved */
|
|
#define s1 $17
|
|
#define s2 $18
|
|
#define s3 $19
|
|
#define s4 $20
|
|
#define s5 $21
|
|
#define s6 $22
|
|
#define s7 $23
|
|
#define t8 $24 /* code generator */
|
|
#define t9 $25
|
|
#define k0 $26 /* kernel temporary */
|
|
#define k1 $27
|
|
#define gp $28 /* global pointer */
|
|
#define sp $29 /* stack pointer */
|
|
#define fp $30 /* frame pointer */
|
|
#define ra $31 /* return address */
|
|
#endif
|
|
|
|
|
|
/* register offset */
|
|
#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_EPC 32
|
|
#define R_MDHI 33
|
|
#define R_MDLO 34
|
|
#define R_SR 35
|
|
#define R_CAUSE 36
|
|
#define NREGS 40
|
|
|
|
/*
|
|
* compiler defined bindings
|
|
*/
|
|
#define R_ZERO R_R0
|
|
#define R_AT R_R1
|
|
#define R_V0 R_R2
|
|
#define R_V1 R_R3
|
|
#define R_A0 R_R4
|
|
#define R_A1 R_R5
|
|
#define R_A2 R_R6
|
|
#define R_A3 R_R7
|
|
#define R_T0 R_R8
|
|
#define R_T1 R_R9
|
|
#define R_T2 R_R10
|
|
#define R_T3 R_R11
|
|
#define R_T4 R_R12
|
|
#define R_T5 R_R13
|
|
#define R_T6 R_R14
|
|
#define R_T7 R_R15
|
|
#define R_S0 R_R16
|
|
#define R_S1 R_R17
|
|
#define R_S2 R_R18
|
|
#define R_S3 R_R19
|
|
#define R_S4 R_R20
|
|
#define R_S5 R_R21
|
|
#define R_S6 R_R22
|
|
#define R_S7 R_R23
|
|
#define R_T8 R_R24
|
|
#define R_T9 R_R25
|
|
#define R_K0 R_R26
|
|
#define R_K1 R_R27
|
|
#define R_GP R_R28
|
|
#define R_SP R_R29
|
|
#define R_FP R_R30
|
|
#define R_RA R_R31
|
|
|
|
#endif
|