153 static const char *
const register_names[] = {
155 "r0",
"r1",
"r2",
"r3",
"r4",
"r5",
"r6",
"r7",
156 "r8",
"r9",
"r10",
"r11",
"r12",
"r13",
"r14",
"r15",
160 "cr0",
"cr1",
"cr2",
"cr3",
"cr4",
"cr5",
"cr6",
"cr7",
161 "cr8",
"cr9",
"cr10",
"cr11",
"cr12",
"cr13",
"cr14",
"cr15",
162 "bypa",
"bypb",
"bypc",
"flag",
"context",
"" ,
"z1",
"z2",
163 "Ichannel",
"Iscramb",
"Qscramb",
"out",
"" ,
"Qchannel",
164 "zi2",
"zq2",
"Ichannel2",
"Iscramb2",
"Qscramb2",
"Qchannel2",
174 if (regnum < ARRAY_SIZE (register_names))
175 return register_names[
regnum];
200 array_names[
regnum] = stub;
204 sprintf (name,
"copro_%d_%d_%s", dim_1, dim_2, stub);
301 _(
"mt_register_type: illegal register number %d"), regnum);
382 memset (buf, 0,
sizeof (buf));
409 const char *func_name;
424 if (sal.
end && sal.
end < func_end)
436 if (instr == 0x12000000)
438 if (instr == 0x12ddc000)
443 if (instr >= 0x43c0 && instr <= 0x43df)
462 static gdb_byte ms1_breakpoint[] = { 0x68, 0, 0, 0 };
463 static gdb_byte ms2_breakpoint[] = { 0x69, 0, 0, 0 };
467 return ms2_breakpoint;
469 return ms1_breakpoint;
480 unsigned index, base;
505 for (ix = MT_NUM_CPU_REGS; ix !=
MT_NUM_REGS; ix++)
553 (oldmac & 0xffffffff) | ((
long long) (ext_mac & 0xff) << 32);
607 unsigned int oldmac, ext_mac;
611 oldmac = newmac & 0xffffffff;
612 ext_mac = (newmac >> 32) & 0xff;
657 for (regnum = 0; regnum < lim; regnum++)
679 unsigned int *bytes, i, regsize;
683 buff = alloca (regsize);
684 bytes = alloca (regsize *
sizeof (*bytes));
689 (gdbarch, regnum), file);
695 for (i = 0; i < regsize; i++)
746 newmac = (oldmac & 0xffffffff) + ((ext_mac & 0xff) << 32);
783 int split_param_len = 0;
825 split_param_len = typelen;
826 memcpy (buf, val, typelen);
835 stack_dest -= typelen;
843 for (j = nargs - 1; j >= i; j--)
852 val =
xmalloc (typelen + slacklen);
854 memcpy (val, contents, typelen);
855 memset (val + typelen, 0, slacklen);
857 stack_dest -= typelen + slacklen;
864 if (split_param_len != 0)
866 stack_dest -= split_param_len;
874 if (struct_return && struct_addr != 0)
908 void **this_prologue_cache)
910 struct gdbarch *gdbarch;
912 CORE_ADDR next_addr, start_addr, end_addr, prologue_end_addr;
913 unsigned long instr, upper_half, delayed_store = 0;
917 if ((*this_prologue_cache))
918 return (*this_prologue_cache);
922 (*this_prologue_cache) = info;
945 for (next_addr = start_addr; next_addr < end_addr; next_addr += 4)
950 upper_half = delayed_store >> 16;
951 regnum = upper_half & 0xf;
952 offset = delayed_store & 0xffff;
953 switch (upper_half & 0xfff0)
976 upper_half = instr >> 16;
977 if (upper_half == 0x05dd ||
978 upper_half == 0x07dd)
984 if ((upper_half & 0xfff0) == 0x43c0 ||
985 (upper_half & 0xfff0) == 0x43d0)
992 delayed_store = instr;
1005 if (prologue_end_addr && (prologue_end_addr > (next_addr + 4)))
1085 if (!(info == NULL || info->
prev_sp == 0))
1091 static struct value *
1093 void **this_prologue_cache,
int regnum)
1103 void **this_prologue_cache)
1134 mt_frame_base_address
1137 static struct gdbarch *
1140 struct gdbarch *gdbarch;
void set_gdbarch_num_regs(struct gdbarch *gdbarch, int num_regs)
void set_gdbarch_double_bit(struct gdbarch *gdbarch, int double_bit)
void set_gdbarch_frame_align(struct gdbarch *gdbarch, gdbarch_frame_align_ftype frame_align)
void set_gdbarch_float_format(struct gdbarch *gdbarch, const struct floatformat **float_format)
ULONGEST extract_unsigned_integer(const gdb_byte *, int, enum bfd_endian)
struct type * lookup_array_range_type(struct type *element_type, LONGEST low_bound, LONGEST high_bound)
struct frame_id frame_id_build(CORE_ADDR stack_addr, CORE_ADDR code_addr)
struct type * builtin_func_ptr
void set_gdbarch_float_bit(struct gdbarch *gdbarch, int float_bit)
CORE_ADDR get_frame_pc(struct frame_info *frame)
struct value * trad_frame_get_prev_register(struct frame_info *this_frame, struct trad_frame_saved_reg this_saved_regs[], int regnum)
const struct floatformat * floatformats_ieee_double[BFD_ENDIAN_UNKNOWN]
int trad_frame_addr_p(struct trad_frame_saved_reg this_saved_regs[], int regnum)
void store_signed_integer(gdb_byte *, int, enum bfd_endian, LONGEST)
void trad_frame_set_value(struct trad_frame_saved_reg this_saved_regs[], int regnum, LONGEST val)
void default_print_registers_info(struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum, int print_all)
static struct mt_unwind_cache * mt_frame_unwind_cache(struct frame_info *this_frame, void **this_prologue_cache)
ULONGEST align_down(ULONGEST v, int n)
ULONGEST frame_unwind_register_unsigned(struct frame_info *frame, int regnum)
void set_gdbarch_short_bit(struct gdbarch *gdbarch, int short_bit)
const struct builtin_type * builtin_type(struct gdbarch *gdbarch)
void internal_error(const char *file, int line, const char *fmt,...)
void set_gdbarch_register_reggroup_p(struct gdbarch *gdbarch, gdbarch_register_reggroup_p_ftype register_reggroup_p)
static const struct frame_unwind mt_frame_unwind
struct gdbarch_list * gdbarch_list_lookup_by_info(struct gdbarch_list *arches, const struct gdbarch_info *info)
CORE_ADDR skip_prologue_using_sal(struct gdbarch *gdbarch, CORE_ADDR func_addr)
static const gdb_byte * mt_breakpoint_from_pc(struct gdbarch *gdbarch, CORE_ADDR *bp_addr, int *bp_size)
void get_no_prettyformat_print_options(struct value_print_options *opts)
struct reggroup *const all_reggroup
ULONGEST get_frame_memory_unsigned(struct frame_info *this_frame, CORE_ADDR addr, int len)
struct gdbarch_tdep * gdbarch_tdep(struct gdbarch *gdbarch)
void frame_unwind_append_unwinder(struct gdbarch *gdbarch, const struct frame_unwind *unwinder)
void set_gdbarch_print_registers_info(struct gdbarch *gdbarch, gdbarch_print_registers_info_ftype print_registers_info)
struct type * builtin_int32
#define FRAME_OBSTACK_ZALLOC(TYPE)
void store_unsigned_integer(gdb_byte *, int, enum bfd_endian, ULONGEST)
initialize_file_ftype _initialize_mt_tdep
static CORE_ADDR mt_unwind_pc(struct gdbarch *gdbarch, struct frame_info *next_frame)
static struct value * mt_frame_prev_register(struct frame_info *this_frame, void **this_prologue_cache, int regnum)
struct reggroup *const float_reggroup
void frame_base_set_default(struct gdbarch *gdbarch, const struct frame_base *default_base)
void set_gdbarch_pseudo_register_write(struct gdbarch *gdbarch, gdbarch_pseudo_register_write_ftype pseudo_register_write)
void set_gdbarch_register_type(struct gdbarch *gdbarch, gdbarch_register_type_ftype register_type)
struct trad_frame_saved_reg * saved_regs
const gdb_byte * value_contents(struct value *value)
struct reggroup *const general_reggroup
void initialize_file_ftype(void)
struct symtab_and_line find_pc_line(CORE_ADDR pc, int notcurrent)
void fprintf_filtered(struct ui_file *stream, const char *format,...)
enum register_status regcache_cooked_read_unsigned(struct regcache *regcache, int regnum, ULONGEST *val)
static enum register_status mt_pseudo_register_read(struct gdbarch *gdbarch, struct regcache *regcache, int regno, gdb_byte *buf)
void set_gdbarch_sp_regnum(struct gdbarch *gdbarch, int sp_regnum)
static struct type * mt_register_type(struct gdbarch *arch, int regnum)
void set_gdbarch_decr_pc_after_break(struct gdbarch *gdbarch, CORE_ADDR decr_pc_after_break)
struct type * register_type(struct gdbarch *gdbarch, int regnum)
void set_gdbarch_dummy_id(struct gdbarch *gdbarch, gdbarch_dummy_id_ftype dummy_id)
mach_port_t mach_port_t name mach_port_t mach_port_t name error_t int status
static struct gdbarch * mt_gdbarch_init(struct gdbarch_info info, struct gdbarch_list *arches)
void fputs_filtered(const char *linebuffer, struct ui_file *stream)
static void mt_frame_this_id(struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
struct type * builtin_int16
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
struct cleanup * make_cleanup(make_cleanup_ftype *function, void *arg)
int find_pc_partial_function(CORE_ADDR pc, const char **name, CORE_ADDR *address, CORE_ADDR *endaddr)
void set_gdbarch_unwind_pc(struct gdbarch *gdbarch, gdbarch_unwind_pc_ftype unwind_pc)
void set_gdbarch_breakpoint_from_pc(struct gdbarch *gdbarch, gdbarch_breakpoint_from_pc_ftype breakpoint_from_pc)
struct type * builtin_uint32
int default_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
static CORE_ADDR mt_push_dummy_call(struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr)
const char * gdbarch_register_name(struct gdbarch *gdbarch, int regnr)
static CORE_ADDR mt_skip_prologue(struct gdbarch *gdbarch, CORE_ADDR pc)
void set_gdbarch_unwind_sp(struct gdbarch *gdbarch, gdbarch_unwind_sp_ftype unwind_sp)
struct type * builtin_unsigned_char
void read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
struct reggroup *const vector_reggroup
ULONGEST get_frame_register_unsigned(struct frame_info *frame, int regnum)
void set_gdbarch_frame_args_skip(struct gdbarch *gdbarch, CORE_ADDR frame_args_skip)
void set_gdbarch_long_long_bit(struct gdbarch *gdbarch, int long_long_bit)
static CORE_ADDR mt_frame_base_address(struct frame_info *this_frame, void **this_prologue_cache)
const struct floatformat * floatformats_ieee_single[BFD_ENDIAN_UNKNOWN]
void regcache_invalidate(struct regcache *regcache, int regnum)
struct trad_frame_saved_reg * trad_frame_alloc_saved_regs(struct frame_info *this_frame)
static int mt_select_coprocessor(struct gdbarch *gdbarch, struct regcache *regcache, int regno)
void print_spaces_filtered(int n, struct ui_file *stream)
int core_addr_lessthan(CORE_ADDR lhs, CORE_ADDR rhs)
void set_gdbarch_pseudo_register_read(struct gdbarch *gdbarch, gdbarch_pseudo_register_read_ftype pseudo_register_read)
static const char * mt_register_name(struct gdbarch *gdbarch, int regnum)
const struct language_defn * current_language
void print_longest(struct ui_file *stream, int format, int use_c_format, LONGEST val_long)
int deprecated_frame_register_read(struct frame_info *frame, int regnum, gdb_byte *myaddr)
static void mt_pseudo_register_write(struct gdbarch *gdbarch, struct regcache *regcache, int regno, const gdb_byte *buf)
static int mt_register_reggroup_p(struct gdbarch *gdbarch, int regnum, struct reggroup *group)
static void mt_registers_info(struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum, int all)
enum register_status regcache_raw_read(struct regcache *regcache, int regnum, gdb_byte *buf)
void regcache_cooked_write_unsigned(struct regcache *regcache, int regnum, ULONGEST val)
struct type * builtin_data_ptr
void set_gdbarch_int_bit(struct gdbarch *gdbarch, int int_bit)
static struct frame_id mt_dummy_id(struct gdbarch *gdbarch, struct frame_info *this_frame)
struct symbol * lookup_symbol(const char *name, const struct block *block, domain_enum domain, struct field_of_this_result *is_a_field_of_this)
void set_gdbarch_num_pseudo_regs(struct gdbarch *gdbarch, int num_pseudo_regs)
void dwarf2_append_unwinders(struct gdbarch *gdbarch)
#define SYMBOL_LANGUAGE(symbol)
static CORE_ADDR mt_unwind_sp(struct gdbarch *gdbarch, struct frame_info *next_frame)
static CORE_ADDR mt_frame_align(struct gdbarch *gdbarch, CORE_ADDR sp)
static enum return_value_convention mt_return_value(struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
void set_gdbarch_double_format(struct gdbarch *gdbarch, const struct floatformat **double_format)
unsigned long long ULONGEST
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
struct type * builtin_long_long
int register_size(struct gdbarch *gdbarch, int regnum)
void set_gdbarch_long_double_bit(struct gdbarch *gdbarch, int long_double_bit)
struct type * value_type(const struct value *value)
void set_gdbarch_long_bit(struct gdbarch *gdbarch, int long_bit)
void set_gdbarch_return_value(struct gdbarch *gdbarch, gdbarch_return_value_ftype return_value)
const struct bfd_arch_info * gdbarch_bfd_arch_info(struct gdbarch *gdbarch)
void set_gdbarch_long_double_format(struct gdbarch *gdbarch, const struct floatformat **long_double_format)
static struct type * mt_copro_register_type(struct gdbarch *arch, int regnum)
int default_register_reggroup_p(struct gdbarch *gdbarch, int regnum, struct reggroup *group)
#define TYPE_LENGTH(thistype)
void set_gdbarch_ptr_bit(struct gdbarch *gdbarch, int ptr_bit)
void set_gdbarch_push_dummy_call(struct gdbarch *gdbarch, gdbarch_push_dummy_call_ftype push_dummy_call)
ULONGEST read_memory_unsigned_integer(CORE_ADDR memaddr, int len, enum bfd_endian byte_order)
struct type * builtin_uint64
void register_gdbarch_init(enum bfd_architecture bfd_architecture, gdbarch_init_ftype *init)
LONGEST extract_signed_integer(const gdb_byte *, int, enum bfd_endian)
void write_memory(CORE_ADDR memaddr, const bfd_byte *myaddr, ssize_t len)
void set_gdbarch_skip_prologue(struct gdbarch *gdbarch, gdbarch_skip_prologue_ftype skip_prologue)
struct frame_info::@73 this_id
void set_gdbarch_pc_regnum(struct gdbarch *gdbarch, int pc_regnum)
void set_gdbarch_register_name(struct gdbarch *gdbarch, gdbarch_register_name_ftype register_name)
CORE_ADDR get_frame_func(struct frame_info *this_frame)
void val_print(struct type *type, const gdb_byte *valaddr, int embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, const struct value *val, const struct value_print_options *options, const struct language_defn *language)
struct gdbarch * gdbarch_alloc(const struct gdbarch_info *info, struct gdbarch_tdep *tdep)
void set_gdbarch_inner_than(struct gdbarch *gdbarch, gdbarch_inner_than_ftype inner_than)
struct gdbarch * get_frame_arch(struct frame_info *this_frame)
void do_cleanups(struct cleanup *old_chain)
void regcache_cooked_write(struct regcache *regcache, int regnum, const gdb_byte *buf)
void set_gdbarch_print_insn(struct gdbarch *gdbarch, gdbarch_print_insn_ftype print_insn)
void regcache_raw_write(struct regcache *regcache, int regnum, const gdb_byte *buf)