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