1/* Target-dependent header for the MIPS architecture, for GDB, the GNU Debugger. 2 3 Copyright 2002, 2003 Free Software Foundation, Inc. 4 5 This file is part of GDB. 6 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 2 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program; if not, write to the Free Software 19 Foundation, Inc., 59 Temple Place - Suite 330, 20 Boston, MA 02111-1307, USA. */ 21 22#ifndef MIPS_TDEP_H 23#define MIPS_TDEP_H 24 25struct gdbarch; 26 27/* All the possible MIPS ABIs. */ 28enum mips_abi 29 { 30 MIPS_ABI_UNKNOWN = 0, 31 MIPS_ABI_N32, 32 MIPS_ABI_O32, 33 MIPS_ABI_N64, 34 MIPS_ABI_O64, 35 MIPS_ABI_EABI32, 36 MIPS_ABI_EABI64, 37 MIPS_ABI_LAST 38 }; 39 40/* Return the MIPS ABI associated with GDBARCH. */ 41enum mips_abi mips_abi (struct gdbarch *gdbarch); 42 43/* For wince :-(. */ 44extern CORE_ADDR mips_next_pc (CORE_ADDR pc); 45 46/* Return the "MIPS" register size. Just a short cut to the BFD 47 architecture's word size. */ 48extern int mips_regsize (struct gdbarch *gdbarch); 49 50/* Return the current index for various MIPS registers. */ 51struct mips_regnum 52{ 53 int pc; 54 int fp0; 55 int fp_implementation_revision; 56 int fp_control_status; 57 int badvaddr; /* Bad vaddr for addressing exception. */ 58 int cause; /* Describes last exception. */ 59 int hi; /* Multiply/divide temp. */ 60 int lo; /* ... */ 61}; 62extern const struct mips_regnum *mips_regnum (struct gdbarch *gdbarch); 63 64enum { 65 MIPS_S0_REGNUM = 16, 66 MIPS_S1_REGNUM = 17, 67 MIPS_S2_REGNUM = 18, 68 MIPS_S3_REGNUM = 19, 69 MIPS_S4_REGNUM = 20, 70 MIPS_S5_REGNUM = 21, 71 MIPS_S6_REGNUM = 22, 72 MIPS_S7_REGNUM = 23, 73 MIPS_SP_REGNUM = 29, 74 MIPS_FP_REGNUM = 30, 75 MIPS_RA_REGNUM = 31, 76 MIPS_EMBED_LO_REGNUM = 33, 77 MIPS_EMBED_HI_REGNUM = 34, 78 MIPS_EMBED_BADVADDR_REGNUM = 35, 79 MIPS_EMBED_CAUSE_REGNUM = 36, 80 MIPS_EMBED_PC_REGNUM = 37, 81 MIPS_EMBED_FP0_REGNUM = 40 82}; 83 84/* Defined in mips-tdep.c and used in remote-mips.c */ 85extern void deprecated_mips_set_processor_regs_hack (void); 86 87 88#endif /* MIPS_TDEP_H */ 89