gdb/microblaze-tdep.h - gdb

Data types defined

Macros defined

Source code

  1. /* Target-dependent code for Xilinx MicroBlaze.

  2.    Copyright (C) 2009-2015 Free Software Foundation, Inc.

  3.    This file is part of GDB.

  4.    This program is free software; you can redistribute it and/or modify
  5.    it under the terms of the GNU General Public License as published by
  6.    the Free Software Foundation; either version 3 of the License, or
  7.    (at your option) any later version.

  8.    This program is distributed in the hope that it will be useful,
  9.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11.    GNU General Public License for more details.

  12.    You should have received a copy of the GNU General Public License
  13.    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */

  14. #ifndef MICROBLAZE_TDEP_H
  15. #define MICROBLAZE_TDEP_H 1


  16. /* Microblaze architecture-specific information.  */
  17. struct gdbarch_tdep
  18. {
  19. };

  20. /* Register numbers.  */
  21. enum microblaze_regnum
  22. {
  23.   MICROBLAZE_R0_REGNUM,
  24.   MICROBLAZE_R1_REGNUM, MICROBLAZE_SP_REGNUM = MICROBLAZE_R1_REGNUM,
  25.   MICROBLAZE_R2_REGNUM,
  26.   MICROBLAZE_R3_REGNUM, MICROBLAZE_RETVAL_REGNUM = MICROBLAZE_R3_REGNUM,
  27.   MICROBLAZE_R4_REGNUM,
  28.   MICROBLAZE_R5_REGNUM, MICROBLAZE_FIRST_ARGREG = MICROBLAZE_R5_REGNUM,
  29.   MICROBLAZE_R6_REGNUM,
  30.   MICROBLAZE_R7_REGNUM,
  31.   MICROBLAZE_R8_REGNUM,
  32.   MICROBLAZE_R9_REGNUM,
  33.   MICROBLAZE_R10_REGNUM, MICROBLAZE_LAST_ARGREG = MICROBLAZE_R10_REGNUM,
  34.   MICROBLAZE_R11_REGNUM,
  35.   MICROBLAZE_R12_REGNUM,
  36.   MICROBLAZE_R13_REGNUM,
  37.   MICROBLAZE_R14_REGNUM,
  38.   MICROBLAZE_R15_REGNUM,
  39.   MICROBLAZE_R16_REGNUM,
  40.   MICROBLAZE_R17_REGNUM,
  41.   MICROBLAZE_R18_REGNUM,
  42.   MICROBLAZE_R19_REGNUM,
  43.   MICROBLAZE_R20_REGNUM,
  44.   MICROBLAZE_R21_REGNUM,
  45.   MICROBLAZE_R22_REGNUM,
  46.   MICROBLAZE_R23_REGNUM,
  47.   MICROBLAZE_R24_REGNUM,
  48.   MICROBLAZE_R25_REGNUM,
  49.   MICROBLAZE_R26_REGNUM,
  50.   MICROBLAZE_R27_REGNUM,
  51.   MICROBLAZE_R28_REGNUM,
  52.   MICROBLAZE_R29_REGNUM,
  53.   MICROBLAZE_R30_REGNUM,
  54.   MICROBLAZE_R31_REGNUM,
  55.   MICROBLAZE_PC_REGNUM,
  56.   MICROBLAZE_MSR_REGNUM,
  57.   MICROBLAZE_EAR_REGNUM,
  58.   MICROBLAZE_ESR_REGNUM,
  59.   MICROBLAZE_FSR_REGNUM,
  60.   MICROBLAZE_BTR_REGNUM,
  61.   MICROBLAZE_PVR0_REGNUM,
  62.   MICROBLAZE_PVR1_REGNUM,
  63.   MICROBLAZE_PVR2_REGNUM,
  64.   MICROBLAZE_PVR3_REGNUM,
  65.   MICROBLAZE_PVR4_REGNUM,
  66.   MICROBLAZE_PVR5_REGNUM,
  67.   MICROBLAZE_PVR6_REGNUM,
  68.   MICROBLAZE_PVR7_REGNUM,
  69.   MICROBLAZE_PVR8_REGNUM,
  70.   MICROBLAZE_PVR9_REGNUM,
  71.   MICROBLAZE_PVR10_REGNUM,
  72.   MICROBLAZE_PVR11_REGNUM,
  73.   MICROBLAZE_REDR_REGNUM,
  74.   MICROBLAZE_RPID_REGNUM,
  75.   MICROBLAZE_RZPR_REGNUM,
  76.   MICROBLAZE_RTLBX_REGNUM,
  77.   MICROBLAZE_RTLBSX_REGNUM,
  78.   MICROBLAZE_RTLBLO_REGNUM,
  79.   MICROBLAZE_RTLBHI_REGNUM,
  80.   MICROBLAZE_SLR_REGNUM, MICROBLAZE_NUM_CORE_REGS = MICROBLAZE_SLR_REGNUM,
  81.   MICROBLAZE_SHR_REGNUM,
  82.   MICROBLAZE_NUM_REGS
  83. };

  84. struct microblaze_frame_cache
  85. {
  86.   /* Base address.  */
  87.   CORE_ADDR base;
  88.   CORE_ADDR pc;

  89.   /* Do we have a frame?  */
  90.   int frameless_p;

  91.   /* Frame size.  */
  92.   int framesize;

  93.   /* Frame register.  */
  94.   int fp_regnum;

  95.   /* Offsets to saved registers.  */
  96.   int register_offsets[MICROBLAZE_NUM_REGS];

  97.   /* Table of saved registers.  */
  98.   struct trad_frame_saved_reg *saved_regs;
  99. };
  100. /* All registers are 32 bits.  */
  101. #define MICROBLAZE_REGISTER_SIZE 4

  102. /* MICROBLAZE_BREAKPOINT defines the breakpoint that should be used.
  103.    Only used for native debugging.  */
  104. #define MICROBLAZE_BREAKPOINT {0xb9, 0xcc, 0x00, 0x60}

  105. #endif /* microblaze-tdep.h */