| /* Target-dependent code for the S+core architecture, for GDB, |
| the GNU Debugger. |
| |
| Copyright (C) 2006-2012 Free Software Foundation, Inc. |
| |
| Contributed by Qinwei (qinwei@sunnorth.com.cn) |
| Contributed by Ching-Peng Lin (cplin@sunplus.com) |
| |
| 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/>. */ |
| |
| #ifndef SCORE_TDEP_H |
| #define SCORE_TDEP_H |
| #include "math.h" |
| |
| enum gdb_regnum |
| { |
| SCORE_SP_REGNUM = 0, |
| SCORE_FP_REGNUM = 2, |
| SCORE_RA_REGNUM = 3, |
| SCORE_A0_REGNUM = 4, |
| SCORE_AL_REGNUM = 7, |
| SCORE_PC_REGNUM = 49, |
| }; |
| |
| #define SCORE_A0_REGNUM 4 |
| #define SCORE_A1_REGNUM 5 |
| #define SCORE_REGSIZE 4 |
| #define SCORE7_NUM_REGS 56 |
| #define SCORE3_NUM_REGS 50 |
| #define SCORE_BEGIN_ARG_REGNUM 4 |
| #define SCORE_LAST_ARG_REGNUM 7 |
| |
| #define SCORE_INSTLEN 4 |
| #define SCORE16_INSTLEN 2 |
| |
| /* Forward declarations. */ |
| struct regset; |
| |
| /* Target-dependent structure in gdbarch */ |
| struct gdbarch_tdep |
| { |
| /* Cached core file helpers. */ |
| struct regset *gregset; |
| }; |
| |
| /* Linux Core file support (dirty hack) |
| |
| S+core Linux register set definition, copy from S+core Linux. */ |
| struct pt_regs { |
| /* Pad bytes for argument save space on the stack. */ |
| unsigned long pad0[6]; /* may be 4, MIPS accept 6var, SCore |
| accepts 4 Var--yuchen */ |
| |
| /* Saved main processor registers. */ |
| unsigned long orig_r4; |
| unsigned long regs[32]; |
| |
| /* Other saved registers. */ |
| unsigned long cel; |
| unsigned long ceh; |
| |
| unsigned long sr0; /*cnt*/ |
| unsigned long sr1; /*lcr*/ |
| unsigned long sr2; /*scr*/ |
| |
| /* saved cp0 registers */ |
| unsigned long cp0_epc; |
| unsigned long cp0_ema; |
| unsigned long cp0_psr; |
| unsigned long cp0_ecr; |
| unsigned long cp0_condition; |
| }; |
| |
| typedef struct pt_regs elf_gregset_t; |
| |
| #endif /* SCORE_TDEP_H */ |