diff options
author | Mike Frysinger <vapier@gentoo.org> | 2010-12-29 16:11:49 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2010-12-29 16:11:49 +0000 |
commit | 9102122396b6b977eb2e283a6c092d1ab510e788 (patch) | |
tree | 8363a4c175ef9433c81f1e61afd4f0635deace85 /gdb/bfin-tdep.h | |
parent | abc1f4cd130f48697c535e0d64580721d181d3d1 (diff) | |
download | gdb-9102122396b6b977eb2e283a6c092d1ab510e788.zip gdb-9102122396b6b977eb2e283a6c092d1ab510e788.tar.gz gdb-9102122396b6b977eb2e283a6c092d1ab510e788.tar.bz2 |
gdb: bfin: new port
Initial support for Blackfin processors. This supports the standard ABI.
Signed-off-by: Jie Zhang <jie.zhang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'gdb/bfin-tdep.h')
-rw-r--r-- | gdb/bfin-tdep.h | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/gdb/bfin-tdep.h b/gdb/bfin-tdep.h new file mode 100644 index 0000000..ecc46d2 --- /dev/null +++ b/gdb/bfin-tdep.h @@ -0,0 +1,102 @@ +/* Target-dependent code for Analog Devices Blackfin processor, for GDB. + + Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 + Free Software Foundation, Inc. + + Contributed by Analog Devices, 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 <http://www.gnu.org/licenses/>. */ + +enum gdb_regnum { + /* Core Registers */ + BFIN_R0_REGNUM = 0, + BFIN_R1_REGNUM, + BFIN_R2_REGNUM, + BFIN_R3_REGNUM, + BFIN_R4_REGNUM, + BFIN_R5_REGNUM, + BFIN_R6_REGNUM, + BFIN_R7_REGNUM, + BFIN_P0_REGNUM, + BFIN_P1_REGNUM, + BFIN_P2_REGNUM, + BFIN_P3_REGNUM, + BFIN_P4_REGNUM, + BFIN_P5_REGNUM, + BFIN_SP_REGNUM, + BFIN_FP_REGNUM, + BFIN_I0_REGNUM, + BFIN_I1_REGNUM, + BFIN_I2_REGNUM, + BFIN_I3_REGNUM, + BFIN_M0_REGNUM, + BFIN_M1_REGNUM, + BFIN_M2_REGNUM, + BFIN_M3_REGNUM, + BFIN_B0_REGNUM, + BFIN_B1_REGNUM, + BFIN_B2_REGNUM, + BFIN_B3_REGNUM, + BFIN_L0_REGNUM, + BFIN_L1_REGNUM, + BFIN_L2_REGNUM, + BFIN_L3_REGNUM, + BFIN_A0_DOT_X_REGNUM, + BFIN_AO_DOT_W_REGNUM, + BFIN_A1_DOT_X_REGNUM, + BFIN_A1_DOT_W_REGNUM, + BFIN_ASTAT_REGNUM, + BFIN_RETS_REGNUM, + BFIN_LC0_REGNUM, + BFIN_LT0_REGNUM, + BFIN_LB0_REGNUM, + BFIN_LC1_REGNUM, + BFIN_LT1_REGNUM, + BFIN_LB1_REGNUM, + BFIN_CYCLES_REGNUM, + BFIN_CYCLES2_REGNUM, + BFIN_USP_REGNUM, + BFIN_SEQSTAT_REGNUM, + BFIN_SYSCFG_REGNUM, + BFIN_RETI_REGNUM, + BFIN_RETX_REGNUM, + BFIN_RETN_REGNUM, + BFIN_RETE_REGNUM, + + /* Pseudo Registers managed remotely. */ + BFIN_PC_REGNUM, + + /* Pseudo Registers managed locally. */ + BFIN_CC_REGNUM +}; +#define BFIN_NUM_REGS (BFIN_PC_REGNUM + 1) +#define BFIN_NUM_PSEUDO_REGS (1) + +/* The ABIs for Blackfin. */ +enum bfin_abi +{ + BFIN_ABI_FLAT +}; + +/* Target-dependent structure in gdbarch. */ +struct gdbarch_tdep +{ + /* Which ABI is in use? */ + enum bfin_abi bfin_abi; +}; + +/* Return the Blackfin ABI associated with GDBARCH. */ +extern enum bfin_abi bfin_abi (struct gdbarch *gdbarch); |