23 #include "floatformat.h"
42 static char *register_names[] =
44 "r0",
"r1",
"r2",
"r3",
"r4",
"r5",
"r6",
"r7",
45 "r8",
"r9",
"r10",
"r11",
"ap",
"fp",
"sp",
"pc",
49 if (regnum >= 0 && regnum < ARRAY_SIZE (register_names))
50 return register_names[
regnum];
72 int regnum,
const void *gregs,
size_t len)
79 if (regnum == i || regnum == -1)
86 static const struct regset vax_gregset =
100 cb (
".reg",
VAX_NUM_REGS * 4, &vax_gregset, NULL, cb_data);
121 for (i = nargs - 1; i >= 0; i--)
125 sp -= (len + 3) & ~3;
126 count += (len + 3) / 4;
234 memcpy (readbuf, buf, len);
239 memcpy (buf, writebuf, len);
258 static gdb_byte break_insn[] = { 3 };
260 *len =
sizeof (break_insn);
329 if (cache->
base == 0)
344 addr = cache->
base + 20;
347 if (mask & (1 << regnum))
356 if (mask & (1 << 13))
365 addr += 4 + numarg * 4;
381 if (cache->
base == 0)
387 static struct value *
389 void **this_cache,
int regnum)
459 static struct gdbarch *
462 struct gdbarch *gdbarch;
void set_gdbarch_num_regs(struct gdbarch *gdbarch, int num_regs)
void set_gdbarch_float_format(struct gdbarch *gdbarch, const struct floatformat **float_format)
const struct floatformat * floatformats_vax_f[BFD_ENDIAN_UNKNOWN]
void set_gdbarch_ps_regnum(struct gdbarch *gdbarch, int ps_regnum)
struct frame_id frame_id_build(CORE_ADDR stack_addr, CORE_ADDR code_addr)
static struct vax_frame_cache * vax_frame_cache(struct frame_info *this_frame, void **this_cache)
CORE_ADDR get_frame_pc(struct frame_info *frame)
static const gdb_byte * vax_breakpoint_from_pc(struct gdbarch *gdbarch, CORE_ADDR *pc, int *len)
void gdbarch_init_osabi(struct gdbarch_info info, struct gdbarch *gdbarch)
void set_gdbarch_frame_num_args(struct gdbarch *gdbarch, gdbarch_frame_num_args_ftype frame_num_args)
struct value * trad_frame_get_prev_register(struct frame_info *this_frame, struct trad_frame_saved_reg this_saved_regs[], int regnum)
struct gdbarch * get_regcache_arch(const struct regcache *regcache)
void trad_frame_set_value(struct trad_frame_saved_reg this_saved_regs[], int regnum, LONGEST val)
ULONGEST frame_unwind_register_unsigned(struct frame_info *frame, int regnum)
const struct builtin_type * builtin_type(struct gdbarch *gdbarch)
static CORE_ADDR vax_store_arguments(struct regcache *regcache, int nargs, struct value **args, CORE_ADDR sp)
static CORE_ADDR vax_frame_args_address(struct frame_info *this_frame, void **this_cache)
static void vax_iterate_over_regset_sections(struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
struct gdbarch_list * gdbarch_list_lookup_by_info(struct gdbarch_list *arches, const struct gdbarch_info *info)
ULONGEST get_frame_memory_unsigned(struct frame_info *this_frame, CORE_ADDR addr, int len)
static CORE_ADDR vax_frame_base_address(struct frame_info *this_frame, void **this_cache)
void frame_unwind_append_unwinder(struct gdbarch *gdbarch, const struct frame_unwind *unwinder)
#define FRAME_OBSTACK_ZALLOC(TYPE)
void store_unsigned_integer(gdb_byte *, int, enum bfd_endian, ULONGEST)
void gdbarch_register(enum bfd_architecture bfd_architecture, gdbarch_init_ftype *init, gdbarch_dump_tdep_ftype *dump_tdep)
static CORE_ADDR vax_unwind_pc(struct gdbarch *gdbarch, struct frame_info *next_frame)
void frame_base_set_default(struct gdbarch *gdbarch, const struct frame_base *default_base)
void set_gdbarch_register_type(struct gdbarch *gdbarch, gdbarch_register_type_ftype register_type)
static CORE_ADDR vax_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 struct floatformat * floatformats_vax_d[BFD_ENDIAN_UNKNOWN]
static const char * vax_register_name(struct gdbarch *gdbarch, int regnum)
void set_gdbarch_sp_regnum(struct gdbarch *gdbarch, int sp_regnum)
void set_gdbarch_dummy_id(struct gdbarch *gdbarch, gdbarch_dummy_id_ftype dummy_id)
void set_gdbarch_believe_pcc_promotion(struct gdbarch *gdbarch, int believe_pcc_promotion)
const gdb_byte * value_contents_all(struct value *value)
struct type * value_enclosing_type(struct value *value)
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
static void vax_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static CORE_ADDR vax_skip_prologue(struct gdbarch *gdbarch, CORE_ADDR pc)
void set_gdbarch_unwind_pc(struct gdbarch *gdbarch, gdbarch_unwind_pc_ftype unwind_pc)
static void vax_supply_gregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
void set_gdbarch_breakpoint_from_pc(struct gdbarch *gdbarch, gdbarch_breakpoint_from_pc_ftype breakpoint_from_pc)
int default_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
enum register_status regcache_raw_read_unsigned(struct regcache *regcache, int regnum, ULONGEST *val)
void read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
void( iterate_over_regset_sections_cb)(const char *sect_name, int size, const struct regset *regset, const char *human_name, void *cb_data)
ULONGEST get_frame_register_unsigned(struct frame_info *frame, int regnum)
static struct frame_id vax_dummy_id(struct gdbarch *gdbarch, struct frame_info *this_frame)
void set_gdbarch_frame_args_skip(struct gdbarch *gdbarch, CORE_ADDR frame_args_skip)
void set_gdbarch_deprecated_function_start_offset(struct gdbarch *gdbarch, CORE_ADDR deprecated_function_start_offset)
CORE_ADDR get_frame_base_address(struct frame_info *fi)
struct trad_frame_saved_reg * trad_frame_alloc_saved_regs(struct frame_info *this_frame)
static struct value * vax_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
int core_addr_lessthan(CORE_ADDR lhs, CORE_ADDR rhs)
static struct gdbarch * vax_gdbarch_init(struct gdbarch_info info, struct gdbarch_list *arches)
static int vax_frame_num_args(struct frame_info *frame)
static struct type * vax_register_type(struct gdbarch *gdbarch, int regnum)
#define TYPE_CODE(thistype)
void regcache_cooked_write_unsigned(struct regcache *regcache, int regnum, ULONGEST val)
enum register_status regcache_cooked_read(struct regcache *regcache, int regnum, gdb_byte *buf)
void _initialize_vax_tdep(void)
void set_gdbarch_double_format(struct gdbarch *gdbarch, const struct floatformat **double_format)
void regcache_raw_supply(struct regcache *regcache, int regnum, const void *buf)
unsigned long long ULONGEST
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
void set_gdbarch_long_double_bit(struct gdbarch *gdbarch, int long_double_bit)
void set_gdbarch_return_value(struct gdbarch *gdbarch, gdbarch_return_value_ftype return_value)
void set_gdbarch_long_double_format(struct gdbarch *gdbarch, const struct floatformat **long_double_format)
#define TYPE_LENGTH(thistype)
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)
void set_gdbarch_iterate_over_regset_sections(struct gdbarch *gdbarch, gdbarch_iterate_over_regset_sections_ftype iterate_over_regset_sections)
static const struct frame_unwind vax_frame_unwind
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)
enum bfd_endian byte_order
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)
static enum return_value_convention vax_return_value(struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
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)
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)
struct trad_frame_saved_reg * saved_regs
struct type * builtin_int
const ULONGEST const LONGEST len