/* Target-dependent code for Xilinx MicroBlaze. Copyright (C) 2009-2024 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 . */ #ifndef GDB_MICROBLAZE_TDEP_H #define GDB_MICROBLAZE_TDEP_H #include "gdbarch.h" /* Microblaze architecture-specific information. */ struct microblaze_gdbarch_tdep : gdbarch_tdep_base { }; /* 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 /* GDB_MICROBLAZE_TDEP_H */