28 #define cris_num_regs 49 30 #ifndef PTRACE_GET_THREAD_AREA 31 #define PTRACE_GET_THREAD_AREA 25 41 9*4, 10*4, 11*4, 12*4,
42 13*4, 14*4, 24*4, 15*4,
52 30*4, 31*4, 32*4, 33*4,
53 34*4, 35*4, 36*4, 37*4,
59 #define cris_breakpoint_len 2 87 int bp,
unsigned long start,
unsigned long end)
137 unsigned long bp_ctrl;
138 unsigned long start, end;
160 for (bp = 0; bp < 6; bp++)
165 if (!(bp_ctrl & (0
x3 << (2 + (bp * 4)))))
179 bp_ctrl |= (1 << (2 + bp * 4));
184 bp_ctrl |= (2 << (2 + bp * 4));
192 end = addr + len - 1;
210 unsigned long bp_ctrl;
211 unsigned long start, end;
213 unsigned long bp_d_regs[12];
246 for (bp = 0; bp < 6; bp++)
248 if (bp_d_regs[bp * 2] == addr
249 && bp_d_regs[bp * 2 + 1] == (addr + len - 1)) {
251 int bitpos = 2 + bp * 4;
255 rw_bits = (bp_ctrl & (0x3 << bitpos)) >> bitpos;
276 bp_ctrl &= ~(3 << (2 + (bp * 4)));
296 return (((exs & 0xff00) >> 8) == 0xc);
313 lwpid_t lwpid,
int idx,
void **base)
321 *base = (
void *) ((
char *) *base - idx);
struct thread_info * current_thread
ps_err_e ps_get_thread_area(struct ps_prochandle *ph, lwpid_t lwpid, int idx, void **base)
void collect_register(struct regcache *regcache, int n, void *buf)
static int cris_supports_hardware_single_step(void)
void supply_register_by_name(struct regcache *regcache, const char *name, const void *buf)
const struct target_desc * tdesc_crisv32
static int cris_insert_point(enum raw_bkpt_type type, CORE_ADDR addr, int len, struct raw_breakpoint *bp)
struct target_ops * the_target
static void cris_write_data_breakpoint(struct regcache *regcache, int bp, unsigned long start, unsigned long end)
const struct target_desc * tdesc
static void cris_fill_gregset(struct regcache *regcache, void *buf)
static CORE_ADDR cris_stopped_data_address(void)
static const struct regs_info * cris_regs_info(void)
CORE_ADDR linux_get_pc_32bit(struct regcache *regcache)
void collect_register_by_name(struct regcache *regcache, const char *name, void *buf)
static const gdb_byte * cris_sw_breakpoint_from_kind(int kind, int *size)
static struct regsets_info cris_regsets_info
static int cris_remove_point(enum raw_bkpt_type type, CORE_ADDR addr, int len, struct raw_breakpoint *bp)
#define PTRACE_GET_THREAD_AREA
struct linux_target_ops the_low_target
struct process_info * current_process(void)
static void cris_arch_setup(void)
static const unsigned short cris_breakpoint
static struct regs_info regs_info
void linux_set_pc_32bit(struct regcache *regcache, CORE_ADDR pc)
void initialize_low_arch(void)
static const struct aarch64_register x3
#define cris_breakpoint_len
static void cris_store_gregset(struct regcache *regcache, const void *buf)
void init_registers_crisv32(void)
static struct regset_info cris_regsets[]
static struct usrregs_info cris_usrregs_info
static int cris_breakpoint_at(CORE_ADDR where)
int(* read_memory)(CORE_ADDR memaddr, unsigned char *myaddr, int len)
struct regcache * get_thread_regcache(struct thread_info *thread, int fetch)
#define Z_PACKET_ACCESS_WP
static int cris_stopped_by_watchpoint(void)
static const struct aarch64_register x1
static int cris_supports_z_point_type(char z_type)
void supply_register(struct regcache *regcache, int n, const void *buf)
#define Z_PACKET_WRITE_WP