* score-tdep.c: Support a new Sunplus CT S+core variant, S+core 3.
* score-tdep.h: Ditto. * NEWS: Ditto. * configure.tgt: Test do we have a simulator. * MAINTAINERS: Add myself under target score
This commit is contained in:
parent
c877a2f277
commit
5f814c3b3f
|
@ -1,3 +1,11 @@
|
|||
2009-08-06 Don Lee <don.lee@sunplusct.com>
|
||||
|
||||
* score-tdep.c: Support a new Sunplus CT S+core variant, S+core 3.
|
||||
* score-tdep.h: Ditto.
|
||||
* NEWS: Ditto.
|
||||
* configure.tgt: Test do we have a simulator.
|
||||
* MAINTAINERS: Add myself under target score
|
||||
|
||||
2009-08-06 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
* utils.c (defaulted_query): Don't ask for confirmation if server
|
||||
|
|
|
@ -312,6 +312,7 @@ the native maintainer when resolving ABI issues.
|
|||
|
||||
score --target=score-elf
|
||||
Qinwei qinwei@sunnorth.com.cn
|
||||
Don Lee don.lee@sunplusct.com
|
||||
|
||||
sh --target=sh-elf ,-Werror
|
||||
--target=sh64-elf ,-Werror
|
||||
|
|
1
gdb/NEWS
1
gdb/NEWS
|
@ -430,6 +430,7 @@ x86_64 MinGW x86_64-*-mingw*
|
|||
Lattice Mico32 lm32-*
|
||||
x86 DICOS i[34567]86-*-dicos*
|
||||
x86_64 DICOS x86_64-*-dicos*
|
||||
S+core 3 score-*-*
|
||||
|
||||
* The GDB remote stub, gdbserver, now supports x86 Windows CE
|
||||
(mingw32ce) debugging.
|
||||
|
|
|
@ -397,7 +397,11 @@ s390*-*-*)
|
|||
|
||||
score-*-*)
|
||||
# Target: S+core embedded system
|
||||
gdb_target_obs="score-tdep.o"
|
||||
gdb_target_obs="score-tdep.o corelow.o"
|
||||
if test -f ../sim/score/Makefile; then
|
||||
gdb_sim=../sim/score/libsim.a
|
||||
fi
|
||||
build_gdbserver=yes
|
||||
;;
|
||||
|
||||
sh*-*-linux*)
|
||||
|
|
1214
gdb/score-tdep.c
1214
gdb/score-tdep.c
File diff suppressed because it is too large
Load Diff
106
gdb/score-tdep.h
106
gdb/score-tdep.h
|
@ -38,11 +38,115 @@ enum gdb_regnum
|
|||
#define SCORE_A0_REGNUM 4
|
||||
#define SCORE_A1_REGNUM 5
|
||||
#define SCORE_REGSIZE 4
|
||||
#define SCORE_NUM_REGS 56
|
||||
#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;
|
||||
|
||||
#ifdef WITH_SIM
|
||||
|
||||
#include <breakpoint.h>
|
||||
|
||||
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 */
|
||||
|
|
Loading…
Reference in New Issue