1819833afSPeter Tyser /* 2819833afSPeter Tyser * Copyright (C) 1985 MIPS Computer Systems, Inc. 3819833afSPeter Tyser * Copyright (C) 1994, 95, 99, 2003 by Ralf Baechle 4819833afSPeter Tyser * Copyright (C) 1990 - 1992, 1999 Silicon Graphics, Inc. 5*a3ab2ae7SDaniel Schwierzeck * Copyright (C) 2011 Wind River Systems, 6*a3ab2ae7SDaniel Schwierzeck * written by Ralf Baechle <ralf@linux-mips.org> 7*a3ab2ae7SDaniel Schwierzeck * 8*a3ab2ae7SDaniel Schwierzeck * SPDX-License-Identifier: GPL-2.0 9819833afSPeter Tyser */ 10819833afSPeter Tyser #ifndef _ASM_REGDEF_H 11819833afSPeter Tyser #define _ASM_REGDEF_H 12819833afSPeter Tyser 13819833afSPeter Tyser #include <asm/sgidefs.h> 14819833afSPeter Tyser 15819833afSPeter Tyser #if _MIPS_SIM == _MIPS_SIM_ABI32 16819833afSPeter Tyser 17819833afSPeter Tyser /* 18819833afSPeter Tyser * Symbolic register names for 32 bit ABI 19819833afSPeter Tyser */ 20819833afSPeter Tyser #define zero $0 /* wired zero */ 21819833afSPeter Tyser #define AT $1 /* assembler temp - uppercase because of ".set at" */ 22819833afSPeter Tyser #define v0 $2 /* return value */ 23819833afSPeter Tyser #define v1 $3 24819833afSPeter Tyser #define a0 $4 /* argument registers */ 25819833afSPeter Tyser #define a1 $5 26819833afSPeter Tyser #define a2 $6 27819833afSPeter Tyser #define a3 $7 28819833afSPeter Tyser #define t0 $8 /* caller saved */ 29819833afSPeter Tyser #define t1 $9 30819833afSPeter Tyser #define t2 $10 31819833afSPeter Tyser #define t3 $11 32819833afSPeter Tyser #define t4 $12 33*a3ab2ae7SDaniel Schwierzeck #define ta0 $12 34819833afSPeter Tyser #define t5 $13 35*a3ab2ae7SDaniel Schwierzeck #define ta1 $13 36819833afSPeter Tyser #define t6 $14 37*a3ab2ae7SDaniel Schwierzeck #define ta2 $14 38819833afSPeter Tyser #define t7 $15 39*a3ab2ae7SDaniel Schwierzeck #define ta3 $15 40819833afSPeter Tyser #define s0 $16 /* callee saved */ 41819833afSPeter Tyser #define s1 $17 42819833afSPeter Tyser #define s2 $18 43819833afSPeter Tyser #define s3 $19 44819833afSPeter Tyser #define s4 $20 45819833afSPeter Tyser #define s5 $21 46819833afSPeter Tyser #define s6 $22 47819833afSPeter Tyser #define s7 $23 48819833afSPeter Tyser #define t8 $24 /* caller saved */ 49819833afSPeter Tyser #define t9 $25 50819833afSPeter Tyser #define jp $25 /* PIC jump register */ 51819833afSPeter Tyser #define k0 $26 /* kernel scratch */ 52819833afSPeter Tyser #define k1 $27 53819833afSPeter Tyser #define gp $28 /* global pointer */ 54819833afSPeter Tyser #define sp $29 /* stack pointer */ 55819833afSPeter Tyser #define fp $30 /* frame pointer */ 56819833afSPeter Tyser #define s8 $30 /* same like fp! */ 57819833afSPeter Tyser #define ra $31 /* return address */ 58819833afSPeter Tyser 59819833afSPeter Tyser #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ 60819833afSPeter Tyser 61819833afSPeter Tyser #if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 62819833afSPeter Tyser 63819833afSPeter Tyser #define zero $0 /* wired zero */ 64819833afSPeter Tyser #define AT $at /* assembler temp - uppercase because of ".set at" */ 65819833afSPeter Tyser #define v0 $2 /* return value - caller saved */ 66819833afSPeter Tyser #define v1 $3 67819833afSPeter Tyser #define a0 $4 /* argument registers */ 68819833afSPeter Tyser #define a1 $5 69819833afSPeter Tyser #define a2 $6 70819833afSPeter Tyser #define a3 $7 71819833afSPeter Tyser #define a4 $8 /* arg reg 64 bit; caller saved in 32 bit */ 72819833afSPeter Tyser #define ta0 $8 73819833afSPeter Tyser #define a5 $9 74819833afSPeter Tyser #define ta1 $9 75819833afSPeter Tyser #define a6 $10 76819833afSPeter Tyser #define ta2 $10 77819833afSPeter Tyser #define a7 $11 78819833afSPeter Tyser #define ta3 $11 79819833afSPeter Tyser #define t0 $12 /* caller saved */ 80819833afSPeter Tyser #define t1 $13 81819833afSPeter Tyser #define t2 $14 82819833afSPeter Tyser #define t3 $15 83819833afSPeter Tyser #define s0 $16 /* callee saved */ 84819833afSPeter Tyser #define s1 $17 85819833afSPeter Tyser #define s2 $18 86819833afSPeter Tyser #define s3 $19 87819833afSPeter Tyser #define s4 $20 88819833afSPeter Tyser #define s5 $21 89819833afSPeter Tyser #define s6 $22 90819833afSPeter Tyser #define s7 $23 91819833afSPeter Tyser #define t8 $24 /* caller saved */ 92819833afSPeter Tyser #define t9 $25 /* callee address for PIC/temp */ 93819833afSPeter Tyser #define jp $25 /* PIC jump register */ 94819833afSPeter Tyser #define k0 $26 /* kernel temporary */ 95819833afSPeter Tyser #define k1 $27 96819833afSPeter Tyser #define gp $28 /* global pointer - caller saved for PIC */ 97819833afSPeter Tyser #define sp $29 /* stack pointer */ 98819833afSPeter Tyser #define fp $30 /* frame pointer */ 99819833afSPeter Tyser #define s8 $30 /* callee saved */ 100819833afSPeter Tyser #define ra $31 /* return address */ 101819833afSPeter Tyser 102819833afSPeter Tyser #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 */ 103819833afSPeter Tyser 104819833afSPeter Tyser #endif /* _ASM_REGDEF_H */ 105