bfin-tdep.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. /* Target-dependent code for Analog Devices Blackfin processor, for GDB.
  2. Copyright (C) 2005-2022 Free Software Foundation, Inc.
  3. Contributed by Analog Devices, Inc.
  4. This file is part of GDB.
  5. This program is free software; you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation; either version 3 of the License, or
  8. (at your option) any later version.
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with this program. If not, see <http://www.gnu.org/licenses/>. */
  15. #ifndef BFIN_TDEP_H
  16. #define BFIN_TDEP_H
  17. #include "gdbarch.h"
  18. enum gdb_regnum {
  19. /* Core Registers */
  20. BFIN_R0_REGNUM = 0,
  21. BFIN_R1_REGNUM,
  22. BFIN_R2_REGNUM,
  23. BFIN_R3_REGNUM,
  24. BFIN_R4_REGNUM,
  25. BFIN_R5_REGNUM,
  26. BFIN_R6_REGNUM,
  27. BFIN_R7_REGNUM,
  28. BFIN_P0_REGNUM,
  29. BFIN_P1_REGNUM,
  30. BFIN_P2_REGNUM,
  31. BFIN_P3_REGNUM,
  32. BFIN_P4_REGNUM,
  33. BFIN_P5_REGNUM,
  34. BFIN_SP_REGNUM,
  35. BFIN_FP_REGNUM,
  36. BFIN_I0_REGNUM,
  37. BFIN_I1_REGNUM,
  38. BFIN_I2_REGNUM,
  39. BFIN_I3_REGNUM,
  40. BFIN_M0_REGNUM,
  41. BFIN_M1_REGNUM,
  42. BFIN_M2_REGNUM,
  43. BFIN_M3_REGNUM,
  44. BFIN_B0_REGNUM,
  45. BFIN_B1_REGNUM,
  46. BFIN_B2_REGNUM,
  47. BFIN_B3_REGNUM,
  48. BFIN_L0_REGNUM,
  49. BFIN_L1_REGNUM,
  50. BFIN_L2_REGNUM,
  51. BFIN_L3_REGNUM,
  52. BFIN_A0_DOT_X_REGNUM,
  53. BFIN_A0_DOT_W_REGNUM,
  54. BFIN_A1_DOT_X_REGNUM,
  55. BFIN_A1_DOT_W_REGNUM,
  56. BFIN_ASTAT_REGNUM,
  57. BFIN_RETS_REGNUM,
  58. BFIN_LC0_REGNUM,
  59. BFIN_LT0_REGNUM,
  60. BFIN_LB0_REGNUM,
  61. BFIN_LC1_REGNUM,
  62. BFIN_LT1_REGNUM,
  63. BFIN_LB1_REGNUM,
  64. BFIN_CYCLES_REGNUM,
  65. BFIN_CYCLES2_REGNUM,
  66. BFIN_USP_REGNUM,
  67. BFIN_SEQSTAT_REGNUM,
  68. BFIN_SYSCFG_REGNUM,
  69. BFIN_RETI_REGNUM,
  70. BFIN_RETX_REGNUM,
  71. BFIN_RETN_REGNUM,
  72. BFIN_RETE_REGNUM,
  73. /* Pseudo Registers managed remotely. */
  74. BFIN_PC_REGNUM,
  75. /* Pseudo Registers managed locally. */
  76. BFIN_CC_REGNUM
  77. };
  78. #define BFIN_NUM_REGS (BFIN_PC_REGNUM + 1)
  79. #define BFIN_NUM_PSEUDO_REGS (1)
  80. /* The ABIs for Blackfin. */
  81. enum bfin_abi
  82. {
  83. BFIN_ABI_FLAT
  84. };
  85. /* Target-dependent structure in gdbarch. */
  86. struct bfin_gdbarch_tdep : gdbarch_tdep
  87. {
  88. /* Which ABI is in use? */
  89. enum bfin_abi bfin_abi {};
  90. };
  91. /* Return the Blackfin ABI associated with GDBARCH. */
  92. extern enum bfin_abi bfin_abi (struct gdbarch *gdbarch);
  93. #endif /* BFIN_TDEP_H */