| /* Target-dependent code for Xilinx MicroBlaze. | 
 |  | 
 |    Copyright (C) 2009-2022 Free Software Foundation, Inc. | 
 |  | 
 |    This file is part of GDB. | 
 |  | 
 |    This program is free software; you can redistribute it and/or modify | 
 |    it under the terms of the GNU General Public License as published by | 
 |    the Free Software Foundation; either version 3 of the License, or | 
 |    (at your option) any later version. | 
 |  | 
 |    This program is distributed in the hope that it will be useful, | 
 |    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 |    GNU General Public License for more details. | 
 |  | 
 |    You should have received a copy of the GNU General Public License | 
 |    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */ | 
 |  | 
 | #ifndef MICROBLAZE_TDEP_H | 
 | #define MICROBLAZE_TDEP_H 1 | 
 |  | 
 | #include "gdbarch.h" | 
 |  | 
 | /* Microblaze architecture-specific information.  */ | 
 | struct microblaze_gdbarch_tdep : gdbarch_tdep | 
 | { | 
 | }; | 
 |  | 
 | /* Register numbers.  */ | 
 | enum microblaze_regnum | 
 | { | 
 |   MICROBLAZE_R0_REGNUM, | 
 |   MICROBLAZE_R1_REGNUM, MICROBLAZE_SP_REGNUM = MICROBLAZE_R1_REGNUM, | 
 |   MICROBLAZE_R2_REGNUM, | 
 |   MICROBLAZE_R3_REGNUM, MICROBLAZE_RETVAL_REGNUM = MICROBLAZE_R3_REGNUM, | 
 |   MICROBLAZE_R4_REGNUM, | 
 |   MICROBLAZE_R5_REGNUM, MICROBLAZE_FIRST_ARGREG = MICROBLAZE_R5_REGNUM, | 
 |   MICROBLAZE_R6_REGNUM, | 
 |   MICROBLAZE_R7_REGNUM, | 
 |   MICROBLAZE_R8_REGNUM, | 
 |   MICROBLAZE_R9_REGNUM, | 
 |   MICROBLAZE_R10_REGNUM, MICROBLAZE_LAST_ARGREG = MICROBLAZE_R10_REGNUM, | 
 |   MICROBLAZE_R11_REGNUM, | 
 |   MICROBLAZE_R12_REGNUM, | 
 |   MICROBLAZE_R13_REGNUM, | 
 |   MICROBLAZE_R14_REGNUM, | 
 |   MICROBLAZE_R15_REGNUM, | 
 |   MICROBLAZE_R16_REGNUM, | 
 |   MICROBLAZE_R17_REGNUM, | 
 |   MICROBLAZE_R18_REGNUM, | 
 |   MICROBLAZE_R19_REGNUM, | 
 |   MICROBLAZE_R20_REGNUM, | 
 |   MICROBLAZE_R21_REGNUM, | 
 |   MICROBLAZE_R22_REGNUM, | 
 |   MICROBLAZE_R23_REGNUM, | 
 |   MICROBLAZE_R24_REGNUM, | 
 |   MICROBLAZE_R25_REGNUM, | 
 |   MICROBLAZE_R26_REGNUM, | 
 |   MICROBLAZE_R27_REGNUM, | 
 |   MICROBLAZE_R28_REGNUM, | 
 |   MICROBLAZE_R29_REGNUM, | 
 |   MICROBLAZE_R30_REGNUM, | 
 |   MICROBLAZE_R31_REGNUM, | 
 |   MICROBLAZE_PC_REGNUM, | 
 |   MICROBLAZE_MSR_REGNUM, | 
 |   MICROBLAZE_EAR_REGNUM, | 
 |   MICROBLAZE_ESR_REGNUM, | 
 |   MICROBLAZE_FSR_REGNUM, | 
 |   MICROBLAZE_BTR_REGNUM, | 
 |   MICROBLAZE_PVR0_REGNUM, | 
 |   MICROBLAZE_PVR1_REGNUM, | 
 |   MICROBLAZE_PVR2_REGNUM, | 
 |   MICROBLAZE_PVR3_REGNUM, | 
 |   MICROBLAZE_PVR4_REGNUM, | 
 |   MICROBLAZE_PVR5_REGNUM, | 
 |   MICROBLAZE_PVR6_REGNUM, | 
 |   MICROBLAZE_PVR7_REGNUM, | 
 |   MICROBLAZE_PVR8_REGNUM, | 
 |   MICROBLAZE_PVR9_REGNUM, | 
 |   MICROBLAZE_PVR10_REGNUM, | 
 |   MICROBLAZE_PVR11_REGNUM, | 
 |   MICROBLAZE_REDR_REGNUM, | 
 |   MICROBLAZE_RPID_REGNUM, | 
 |   MICROBLAZE_RZPR_REGNUM, | 
 |   MICROBLAZE_RTLBX_REGNUM, | 
 |   MICROBLAZE_RTLBSX_REGNUM, | 
 |   MICROBLAZE_RTLBLO_REGNUM, | 
 |   MICROBLAZE_RTLBHI_REGNUM, | 
 |   MICROBLAZE_SLR_REGNUM, MICROBLAZE_NUM_CORE_REGS = MICROBLAZE_SLR_REGNUM, | 
 |   MICROBLAZE_SHR_REGNUM, | 
 |   MICROBLAZE_NUM_REGS | 
 | }; | 
 |  | 
 | struct microblaze_frame_cache | 
 | { | 
 |   /* Base address.  */ | 
 |   CORE_ADDR base; | 
 |   CORE_ADDR pc; | 
 |  | 
 |   /* Do we have a frame?  */ | 
 |   int frameless_p; | 
 |  | 
 |   /* Frame size.  */ | 
 |   int framesize; | 
 |  | 
 |   /* Frame register.  */ | 
 |   int fp_regnum; | 
 |  | 
 |   /* Offsets to saved registers.  */ | 
 |   int register_offsets[MICROBLAZE_NUM_REGS]; | 
 |  | 
 |   /* Table of saved registers.  */ | 
 |   struct trad_frame_saved_reg *saved_regs; | 
 | }; | 
 | /* All registers are 32 bits.  */ | 
 | #define MICROBLAZE_REGISTER_SIZE 4 | 
 |  | 
 | /* MICROBLAZE_BREAKPOINT defines the breakpoint that should be used. | 
 |    Only used for native debugging.  */ | 
 | #define MICROBLAZE_BREAKPOINT {0xb9, 0xcc, 0x00, 0x60} | 
 |  | 
 | #endif /* microblaze-tdep.h */ |