X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fscore-tdep.h;h=ad6cc002a0617d02c096948604a7f81f36984d9c;hb=07b76c2f0baf197ce44d66a153184d33047e7ba0;hp=792f277f864e0fbdd5ffde9f6ffafe38aeba4f52;hpb=5f814c3b3f9d99ed724cce14c90a02e29776a90a;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/score-tdep.h b/gdb/score-tdep.h index 792f277f86..ad6cc002a0 100644 --- a/gdb/score-tdep.h +++ b/gdb/score-tdep.h @@ -1,7 +1,7 @@ /* Target-dependent code for the S+core architecture, for GDB, the GNU Debugger. - Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc. + Copyright (C) 2006-2020 Free Software Foundation, Inc. Contributed by Qinwei (qinwei@sunnorth.com.cn) Contributed by Ching-Peng Lin (cplin@sunplus.com) @@ -32,6 +32,7 @@ enum gdb_regnum SCORE_RA_REGNUM = 3, SCORE_A0_REGNUM = 4, SCORE_AL_REGNUM = 7, + SCORE_EPC_REGNUM = 37, SCORE_PC_REGNUM = 49, }; @@ -46,107 +47,4 @@ enum gdb_regnum #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; - -#ifdef WITH_SIM - -#include - -int soc_gh_can_use_watch(int type, int cnt); -int soc_gh_add_watch(unsigned int addr, int len, int type); -int soc_gh_del_watch(unsigned int addr, int len, int type); -int soc_gh_stopped_by_watch(void); -int soc_gh_add_hardbp(unsigned int addr); -int soc_gh_del_hardbp(unsigned int addr); - -int score_target_can_use_watch(int type, int cnt, int ot); -int score_stopped_by_watch(void); -int score_target_insert_watchpoint (CORE_ADDR addr, int len, int type); -int score_target_remove_watchpoint (CORE_ADDR addr, int len, int type); -int score_target_insert_hw_breakpoint (struct gdbarch *gdbarch, struct bp_target_info * bp_tgt); -int score_target_remove_hw_breakpoint (struct gdbarch *gdbarch, struct bp_target_info * bp_tgt); - -#define TARGET_HAS_HARDWARE_WATCHPOINTS - -#ifdef TARGET_CAN_USE_HARDWARE_WATCHPOINT -#undef TARGET_CAN_USE_HARDWARE_WATCHPOINT - -#define TARGET_CAN_USE_HARDWARE_WATCHPOINT(type, cnt, ot) \ - score_target_can_use_watch(type, cnt, ot) -#endif - -#ifdef STOPPED_BY_WATCHPOINT -#undef STOPPED_BY_WATCHPOINT - -#define STOPPED_BY_WATCHPOINT(w) \ - score_stopped_by_watch() -#endif - -#ifdef target_insert_watchpoint -#undef target_insert_watchpoint - -#define target_insert_watchpoint(addr, len, type) \ - score_target_insert_watchpoint (addr, len, type) -#endif - -#ifdef target_remove_watchpoint -#undef target_remove_watchpoint - -#define target_remove_watchpoint(addr, len, type) \ - score_target_remove_watchpoint (addr, len, type) -#endif - -#ifdef target_insert_hw_breakpoint -#undef target_insert_hw_breakpoint - -#define target_insert_hw_breakpoint(gdbarch, bp_tgt) \ - score_target_insert_hw_breakpoint (gdbarch, bp_tgt) -#endif - -#ifdef target_remove_hw_breakpoint -#undef target_remove_hw_breakpoint - -#define target_remove_hw_breakpoint(gdbarch, bp_tgt) \ - score_target_remove_hw_breakpoint (gdbarch, bp_tgt) -#endif - -#endif /* WITH_SIM */ - #endif /* SCORE_TDEP_H */