1 /* Target-dependent code for Analog Devices Blackfin processor, for GDB. 2 3 Copyright (C) 2005-2015 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 enum gdb_regnum { 23 /* Core Registers */ 24 BFIN_R0_REGNUM = 0, 25 BFIN_R1_REGNUM, 26 BFIN_R2_REGNUM, 27 BFIN_R3_REGNUM, 28 BFIN_R4_REGNUM, 29 BFIN_R5_REGNUM, 30 BFIN_R6_REGNUM, 31 BFIN_R7_REGNUM, 32 BFIN_P0_REGNUM, 33 BFIN_P1_REGNUM, 34 BFIN_P2_REGNUM, 35 BFIN_P3_REGNUM, 36 BFIN_P4_REGNUM, 37 BFIN_P5_REGNUM, 38 BFIN_SP_REGNUM, 39 BFIN_FP_REGNUM, 40 BFIN_I0_REGNUM, 41 BFIN_I1_REGNUM, 42 BFIN_I2_REGNUM, 43 BFIN_I3_REGNUM, 44 BFIN_M0_REGNUM, 45 BFIN_M1_REGNUM, 46 BFIN_M2_REGNUM, 47 BFIN_M3_REGNUM, 48 BFIN_B0_REGNUM, 49 BFIN_B1_REGNUM, 50 BFIN_B2_REGNUM, 51 BFIN_B3_REGNUM, 52 BFIN_L0_REGNUM, 53 BFIN_L1_REGNUM, 54 BFIN_L2_REGNUM, 55 BFIN_L3_REGNUM, 56 BFIN_A0_DOT_X_REGNUM, 57 BFIN_A0_DOT_W_REGNUM, 58 BFIN_A1_DOT_X_REGNUM, 59 BFIN_A1_DOT_W_REGNUM, 60 BFIN_ASTAT_REGNUM, 61 BFIN_RETS_REGNUM, 62 BFIN_LC0_REGNUM, 63 BFIN_LT0_REGNUM, 64 BFIN_LB0_REGNUM, 65 BFIN_LC1_REGNUM, 66 BFIN_LT1_REGNUM, 67 BFIN_LB1_REGNUM, 68 BFIN_CYCLES_REGNUM, 69 BFIN_CYCLES2_REGNUM, 70 BFIN_USP_REGNUM, 71 BFIN_SEQSTAT_REGNUM, 72 BFIN_SYSCFG_REGNUM, 73 BFIN_RETI_REGNUM, 74 BFIN_RETX_REGNUM, 75 BFIN_RETN_REGNUM, 76 BFIN_RETE_REGNUM, 77 78 /* Pseudo Registers managed remotely. */ 79 BFIN_PC_REGNUM, 80 81 /* Pseudo Registers managed locally. */ 82 BFIN_CC_REGNUM 83 }; 84 #define BFIN_NUM_REGS (BFIN_PC_REGNUM + 1) 85 #define BFIN_NUM_PSEUDO_REGS (1) 86 87 /* The ABIs for Blackfin. */ 88 enum bfin_abi 89 { 90 BFIN_ABI_FLAT 91 }; 92 93 /* Target-dependent structure in gdbarch. */ 94 struct gdbarch_tdep 95 { 96 /* Which ABI is in use? */ 97 enum bfin_abi bfin_abi; 98 }; 99 100 /* Return the Blackfin ABI associated with GDBARCH. */ 101 extern enum bfin_abi bfin_abi (struct gdbarch *gdbarch); 102