66 #define floatformats_sparc_quad floatformats_ia64_quad 75 #define X_OP(i) (((i) >> 30) & 0x3) 76 #define X_RD(i) (((i) >> 25) & 0x1f) 77 #define X_A(i) (((i) >> 29) & 1) 78 #define X_COND(i) (((i) >> 25) & 0xf) 79 #define X_OP2(i) (((i) >> 22) & 0x7) 80 #define X_IMM22(i) ((i) & 0x3fffff) 81 #define X_OP3(i) (((i) >> 19) & 0x3f) 82 #define X_RS1(i) (((i) >> 14) & 0x1f) 83 #define X_RS2(i) ((i) & 0x1f) 84 #define X_I(i) (((i) >> 13) & 1) 86 #define X_DISP22(i) ((X_IMM22 (i) ^ 0x200000) - 0x200000) 87 #define X_DISP19(i) ((((i) & 0x7ffff) ^ 0x40000) - 0x40000) 88 #define X_DISP10(i) ((((((i) >> 11) && 0x300) | (((i) >> 5) & 0xff)) ^ 0x200) - 0x200) 89 #define X_SIMM13(i) ((((i) & 0x1fff) ^ 0x1000) - 0x1000) 92 #define X_RETTURN(i) ((X_OP (i) == 0x2) && (X_OP3 (i) == 0x39)) 109 for (i = 0; i <
sizeof (buf); i++)
110 insn = (insn << 8) | buf[i];
123 return ((insn & 0xc1c00000) == 0);
147 const unsigned op2 =
X_OP2 (insn);
149 if ((
X_OP (insn) == 0)
150 && ((op2 == 1) || (op2 == 2) || (op2 == 5) || (op2 == 6)
151 || ((op2 == 3) && ((insn & 0x10000000) == 0))))
227 return (len == 1 || len == 2 || len == 4 || len == 8);
232 return (len == 4 || len == 8);
250 return (len == 4 || len == 8 || len == 16);
269 return (len == 8 || len == 16 || len == 32);
338 #define SPARC32_FPU_REGISTERS \ 339 "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \ 340 "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \ 341 "f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \ 342 "f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31" 343 #define SPARC32_CP0_REGISTERS \ 344 "y", "psr", "wim", "tbr", "pc", "npc", "fsr", "csr" 358 #define SPARC32_NUM_REGS ARRAY_SIZE (sparc32_register_names) 365 "d0",
"d2",
"d4",
"d6",
"d8",
"d10",
"d12",
"d14",
366 "d16",
"d18",
"d20",
"d22",
"d24",
"d26",
"d28",
"d30" 370 #define SPARC32_NUM_PSEUDO_REGS ARRAY_SIZE (sparc32_pseudo_register_names) 383 _(
"sparc32_pseudo_register_name: bad register number %d"),
470 _(
"sparc32_pseudo_register_type: bad register number %d"),
562 return address & ~0x7;
568 struct value **args,
int nargs,
600 int num_elements = 0;
604 for (i = 0; i < nargs; i++)
626 num_elements += (len / 4);
633 num_elements += ((len + 3) / 4);
638 sp -= std::max (6, num_elements) * 4;
649 for (i = 0; i < nargs; i++)
659 memcpy (buf + 4 - len, valbuf, len);
671 if (len > 4 && element < 5)
734 sparc_alloc_frame_cache (
void)
764 int probing_loop = 0;
790 if (!(
X_OP (insn) == 0 &&
X_OP2 (insn) == 0x4 &&
X_RD (insn) == 1))
796 if (
X_OP (insn) == 0 &&
X_OP2 (insn) == 0x4 &&
X_RD (insn) == 4)
804 if (!(
X_OP (insn) == 2 &&
X_OP3 (insn) == 0x4 && !
X_I(insn)
812 if (
X_OP (insn) == 0 &&
X_OP2 (insn) == 0x4 &&
X_RD (insn) == 4)
825 &&
X_RS1 (insn) == 1 &&
X_RD (insn) == 0)
840 else if (
X_OP (insn) == 3 &&
X_OP3(insn) == 0x4 && !
X_I(insn)
841 &&
X_RS1 (insn) == 1 &&
X_RD (insn) == 0)
849 &&
X_RS1 (insn) == 1 &&
X_RD (insn) == 1))
855 if (!(
X_OP (insn) == 3 &&
X_OP3(insn) == 0x4 && !
X_I(insn)
856 &&
X_RD (insn) == 0 &&
X_RS1 (insn) == 1))
861 if (!(
X_OP (insn) == 3 &&
X_OP3(insn) == 0x4 &&
X_I(insn)
862 &&
X_RS1 (insn) == 1 &&
X_RD (insn) == 0))
885 if (!(
X_OP (insn) == 2 &&
X_OP3 (insn) == 0x4 && !
X_I(insn)
892 if (!(
X_OP (insn) == 2 &&
X_OP3 (insn) == 0x14 && !
X_I(insn)
899 if (!(
X_OP (insn) == 0 &&
X_COND (insn) == 0x1))
906 &&
X_RS1 (insn) == 1 &&
X_RD (insn) == 1))
912 if (!(
X_OP (insn) == 0 &&
X_COND (insn) == 0x8))
918 if (!(
X_OP (insn) == 3 &&
X_OP3(insn) == 0x4
928 if (!(
X_OP (insn) == 3 &&
X_OP3(insn) == 0x4 &&
X_I(insn)
929 &&
X_RS1 (insn) == 4 &&
X_RD (insn) == 0))
975 if (current_pc <=
pc)
994 while (
X_OP (insn) == 3
995 && (
X_OP3 (insn) == 0x4
996 ||
X_OP3 (insn) == 0x7
997 ||
X_OP3 (insn) == 0xe)
1011 if (
X_OP3 (insn) == 0x7)
1021 if (
X_OP (insn) == 0 &&
X_OP2 (insn) == 0x04)
1030 if (
X_OP (insn) == 2 &&
X_I (insn)
1031 && (
X_RD (insn) == 1 ||
X_RD (insn) == dest))
1039 if (
X_OP (insn) == 2 &&
X_OP3 (insn) == 0x3c)
1047 if (
X_OP (insn) == 2
1048 && (
X_OP3 (insn) == 0 ||
X_OP3 (insn) == 0x4)
1055 if (
X_OP3 (insn) == 0)
1063 if (
X_OP (insn) == 2
1064 && (
X_OP3 (insn) == 0 ||
X_OP3 (insn) == 0x4)
1079 if (
X_OP (insn) == 2
1080 &&
X_OP3 (insn) == 0x2
1119 if (sal.
end < func_end
1120 && start_pc <= sal.
end)
1141 if (
X_OP (insn) == 3 && (
X_OP3 (insn) & 0x3c) == 0x04
1181 cache = sparc_alloc_frame_cache ();
1182 *this_cache = cache;
1207 if (cache->
base & 1)
1274 if (cache->
base == 0)
1280 static struct value *
1282 void **this_cache,
int regnum)
1409 memcpy (valbuf, buf, len);
1421 memcpy (valbuf, buf, 8);
1427 memcpy (valbuf, buf + 4 - len, len);
1447 memcpy (buf, valbuf, len);
1472 memcpy (buf, valbuf, 8);
1478 memcpy (buf + 4 - len, valbuf, len);
1584 if (op != DW_CFA_GNU_window_save)
1590 fs->
regs.alloc_regs (32);
1615 int conditional_p =
X_COND (insn) & 0x7;
1616 int branch_p = 0, fused_p = 0;
1619 if (
X_OP (insn) == 0 &&
X_OP2 (insn) == 3)
1621 if ((insn & 0x10000000) == 0)
1635 else if (
X_OP (insn) == 0 &&
X_OP2 (insn) == 6)
1641 else if (
X_OP (insn) == 0 &&
X_OP2 (insn) == 5)
1648 else if (
X_OP (insn) == 0 &&
X_OP2 (insn) == 2)
1654 else if (
X_OP (insn) == 0 &&
X_OP2 (insn) == 1)
1660 else if (
X_OP (insn) == 2 &&
X_OP3 (insn) == 0x3a)
1682 else if (conditional_p)
1686 return (
X_A (insn) ? *npc + 4 : 0);
1694 if (
X_COND (insn) == 0x0)
1712 static std::vector<CORE_ADDR>
1720 std::vector<CORE_ADDR> next_pcs;
1728 next_pcs.push_back (npc);
1731 next_pcs.push_back (nnpc);
1736 gdb_assert (npc != 0 || nnpc != 0 || orig_npc == 0);
1770 const char *feature_name,
1772 unsigned int registers_num,
1773 unsigned int reg_start)
1779 if (feature == NULL)
1782 for (
unsigned int i = 0; i < registers_num; i++)
1851 sparc_breakpoint::kind_from_pc);
1853 sparc_breakpoint::bp_from_kind);
1886 "org.gnu.gdb.sparc.cpu",
1891 "org.gnu.gdb.sparc.fpu",
1896 "org.gnu.gdb.sparc.cp0",
2071 int regnum,
const void *gregs)
2191 int regnum,
const void *fpregs)
2196 for (i = 0; i < 32; i++)
2211 int regnum,
void *fpregs)
2216 for (i = 0; i < 32; i++)
void set_gdbarch_num_regs(struct gdbarch *gdbarch, int num_regs)
void set_gdbarch_frame_align(struct gdbarch *gdbarch, gdbarch_frame_align_ftype frame_align)
static const char * sparc32_register_name(struct gdbarch *gdbarch, int regnum)
#define SPARC_CORE_REGISTERS
ULONGEST regcache_raw_get_unsigned(struct regcache *regcache, int regnum)
struct frame_id frame_id_build(CORE_ADDR stack_addr, CORE_ADDR code_addr)
int sparc_stack_frame_destroyed_p(struct gdbarch *gdbarch, CORE_ADDR pc)
CORE_ADDR get_frame_address_in_block(struct frame_info *this_frame)
static void sparc32_store_return_value(struct type *type, struct regcache *regcache, const gdb_byte *valbuf)
#define SPARC32_FPU_REGISTERS
struct type * builtin_func_ptr
void set_tdesc_pseudo_register_name(struct gdbarch *gdbarch, gdbarch_register_name_ftype *pseudo_name)
CORE_ADDR get_frame_pc(struct frame_info *frame)
void set_gdbarch_fp0_regnum(struct gdbarch *gdbarch, int fp0_regnum)
static bool sparc_structure_return_p(const struct type *type)
struct frame_info * get_current_frame(void)
void gdbarch_init_osabi(struct gdbarch_info info, struct gdbarch *gdbarch)
int target_write_memory(CORE_ADDR memaddr, const gdb_byte *myaddr, ssize_t len)
static void sparc_write_pc(struct regcache *regcache, CORE_ADDR pc)
void set_gdbarch_wchar_bit(struct gdbarch *gdbarch, int wchar_bit)
void set_gdbarch_execute_dwarf_cfa_vendor_op(struct gdbarch *gdbarch, gdbarch_execute_dwarf_cfa_vendor_op_ftype execute_dwarf_cfa_vendor_op)
void sparc32_supply_gregset(const struct sparc_gregmap *gregmap, struct regcache *regcache, int regnum, const void *gregs)
struct value * frame_unwind_got_memory(struct frame_info *frame, int regnum, CORE_ADDR addr)
void sparc_record_save_insn(struct sparc_frame_cache *cache)
const char ** fpu_register_names
void set_tdesc_pseudo_register_type(struct gdbarch *gdbarch, gdbarch_register_type_ftype *pseudo_type)
void() iterate_over_regset_sections_cb(const char *sect_name, int size, const struct regset *regset, const char *human_name, void *cb_data)
struct gdbarch_tdep * tdep
void set_gdbarch_write_pc(struct gdbarch *gdbarch, gdbarch_write_pc_ftype write_pc)
static bool sparc_execute_dwarf_cfa_vendor_op(struct gdbarch *gdbarch, gdb_byte op, struct dwarf2_frame_state *fs)
const struct regset * gregset
int gdbarch_ptr_bit(struct gdbarch *gdbarch)
static int sparc32_struct_return_from_sym(struct symbol *sym)
static struct value * sparc32_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
struct sparc_frame_cache * sparc_frame_cache(struct frame_info *this_frame, void **this_cache)
ULONGEST frame_unwind_register_unsigned(struct frame_info *frame, int regnum)
static const char * sparc32_fpu_register_names[]
const struct builtin_type * builtin_type(struct gdbarch *gdbarch)
static int sparc_integral_or_pointer_p(const struct type *type)
void * memset(T *s, int c, size_t n)=delete
void internal_error(const char *file, int line, const char *fmt,...)
void register_sparc_ravenscar_ops(struct gdbarch *gdbarch)
const char * tdesc_register_name(struct gdbarch *gdbarch, int regno)
static CORE_ADDR sparc_unwind_pc(struct gdbarch *gdbarch, struct frame_info *this_frame)
void set_gdbarch_stabs_argument_has_addr(struct gdbarch *gdbarch, gdbarch_stabs_argument_has_addr_ftype stabs_argument_has_addr)
static CORE_ADDR sparc32_frame_base_address(struct frame_info *this_frame, void **this_cache)
struct gdbarch_list * gdbarch_list_lookup_by_info(struct gdbarch_list *arches, const struct gdbarch_info *info)
CORE_ADDR(* step_trap)(struct frame_info *frame, unsigned long insn)
void sparc32_collect_fpregset(const struct sparc_fpregmap *fpregmap, const struct regcache *regcache, int regnum, void *fpregs)
int gdbarch_num_regs(struct gdbarch *gdbarch)
#define SPARC32_NUM_PSEUDO_REGS
ULONGEST get_frame_memory_unsigned(struct frame_info *this_frame, CORE_ADDR addr, int len)
static const struct frame_unwind sparc32_frame_unwind
static int validate_tdesc_registers(const struct target_desc *tdesc, struct tdesc_arch_data *tdesc_data, const char *feature_name, const char *register_names[], unsigned int registers_num, unsigned int reg_start)
struct gdbarch_tdep * gdbarch_tdep(struct gdbarch *gdbarch)
static struct type * sparc_fsr_type(struct gdbarch *gdbarch)
void sparc_supply_rwindow(struct regcache *regcache, CORE_ADDR sp, int regnum)
void tdesc_data_cleanup(void *data_untyped)
void frame_unwind_append_unwinder(struct gdbarch *gdbarch, const struct frame_unwind *unwinder)
struct type * builtin_int32
static int sparc_structure_or_union_p(const struct type *type)
void set_gdbarch_wchar_signed(struct gdbarch *gdbarch, int wchar_signed)
#define FRAME_OBSTACK_ZALLOC(TYPE)
struct value * frame_unwind_got_constant(struct frame_info *frame, int regnum, ULONGEST val)
static void sparc32_extract_return_value(struct type *type, struct regcache *regcache, gdb_byte *valbuf)
ULONGEST sparc_fetch_wcookie(struct gdbarch *gdbarch)
static int sparc_complex_floating_p(const struct type *type)
int tdesc_numbered_register(const struct tdesc_feature *feature, struct tdesc_arch_data *data, int regno, const char *name)
void frame_base_set_default(struct gdbarch *gdbarch, const struct frame_base *default_base)
static struct frame_id sparc_dummy_id(struct gdbarch *gdbarch, struct frame_info *this_frame)
static struct type * sparc32_pseudo_register_type(struct gdbarch *gdbarch, int regnum)
void set_gdbarch_pseudo_register_write(struct gdbarch *gdbarch, gdbarch_pseudo_register_write_ftype pseudo_register_write)
static void sparc32_pseudo_register_write(struct gdbarch *gdbarch, struct regcache *regcache, int regnum, const gdb_byte *buf)
static int sparc32_stabs_argument_has_addr(struct gdbarch *gdbarch, struct type *type)
void set_gdbarch_register_type(struct gdbarch *gdbarch, gdbarch_register_type_ftype register_type)
struct type * arch_flags_type(struct gdbarch *gdbarch, const char *name, int bit)
struct type * check_typedef(struct type *type)
static const char * sparc32_cp0_register_names[]
const gdb_byte * value_contents(struct value *value)
static const struct frame_base sparc32_frame_base
static CORE_ADDR sparc32_store_arguments(struct regcache *regcache, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr)
struct target_ops current_target
struct symtab_and_line find_pc_line(CORE_ADDR pc, int notcurrent)
unsigned short int saved_regs_mask
unsigned long sparc_fetch_instruction(CORE_ADDR pc)
struct symbol * find_pc_function(CORE_ADDR pc)
void sparc_collect_rwindow(const struct regcache *regcache, CORE_ADDR sp, int regnum)
static CORE_ADDR sparc32_frame_align(struct gdbarch *gdbarch, CORE_ADDR address)
static ULONGEST extract_unsigned_integer(const gdb_byte *addr, int len, enum bfd_endian byte_order)
enum register_status regcache_cooked_read_unsigned(struct regcache *regcache, int regnum, ULONGEST *val)
void set_gdbarch_sp_regnum(struct gdbarch *gdbarch, int sp_regnum)
static bool sparc_arg_on_registers_p(const struct type *type)
static CORE_ADDR sparc_skip_stack_check(const CORE_ADDR start_pc)
void set_gdbarch_dummy_id(struct gdbarch *gdbarch, gdbarch_dummy_id_ftype dummy_id)
int using_struct_return(struct gdbarch *gdbarch, struct value *function, struct type *value_type)
const struct sparc_fpregmap sparc32_sunos4_fpregmap
typedef BP_MANIPULATION(sparc_break_insn)
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
const char ** cp0_register_names
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)
static int sparc_is_unimp_insn(CORE_ADDR pc)
static const char * sparc32_pseudo_register_name(struct gdbarch *gdbarch, int regnum)
int default_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
void sparc32_supply_fpregset(const struct sparc_fpregmap *fpregmap, struct regcache *regcache, int regnum, const void *fpregs)
static const char * sparc_core_register_names[]
void append_flags_type_flag(struct type *type, int bitpos, const char *name)
mach_port_t mach_port_t name mach_port_t mach_port_t name kern_return_t int status
static const char * sparc32_pseudo_register_names[]
static void sparc32_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
struct sparc_frame_cache * sparc32_frame_cache(struct frame_info *this_frame, void **this_cache)
static CORE_ADDR sparc_step_trap(struct frame_info *frame, unsigned long insn)
void sparc32_collect_gregset(const struct sparc_gregmap *gregmap, const struct regcache *regcache, int regnum, void *gregs)
void read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
ULONGEST get_frame_register_unsigned(struct frame_info *frame, int regnum)
const struct sparc_gregmap sparc32_sunos4_gregmap
void set_gdbarch_breakpoint_kind_from_pc(struct gdbarch *gdbarch, gdbarch_breakpoint_kind_from_pc_ftype breakpoint_kind_from_pc)
void set_gdbarch_frame_args_skip(struct gdbarch *gdbarch, CORE_ADDR frame_args_skip)
static int sparc32_dwarf2_struct_return_p(struct frame_info *this_frame)
void _initialize_sparc_tdep(void)
const struct target_desc * target_desc
const char ** register_names
#define floatformats_sparc_quad
int sparc_is_annulled_branch_insn(CORE_ADDR pc)
static CORE_ADDR sparc32_push_dummy_code(struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funcaddr, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr, struct regcache *regcache)
void set_gdbarch_software_single_step(struct gdbarch *gdbarch, gdbarch_software_single_step_ftype software_single_step)
CORE_ADDR sparc_analyze_prologue(struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR current_pc, struct sparc_frame_cache *cache)
void set_gdbarch_push_dummy_code(struct gdbarch *gdbarch, gdbarch_push_dummy_code_ftype push_dummy_code)
const struct sparc_fpregmap sparc32_bsd_fpregmap
struct type * sparc_fsr_type
void tdesc_use_registers(struct gdbarch *gdbarch, const struct target_desc *target_desc, struct tdesc_arch_data *early_data)
int core_addr_lessthan(CORE_ADDR lhs, CORE_ADDR rhs)
struct type * sparc_psr_type
struct value * value_from_pointer(struct type *type, CORE_ADDR addr)
void set_gdbarch_pseudo_register_read(struct gdbarch *gdbarch, gdbarch_pseudo_register_read_ftype pseudo_register_read)
#define TYPE_TARGET_TYPE(thistype)
struct type * builtin_double
static struct type * sparc32_register_type(struct gdbarch *gdbarch, int regnum)
#define TYPE_CODE(thistype)
unsigned char copied_regs_mask
enum register_status regcache_raw_read(struct regcache *regcache, int regnum, gdb_byte *buf)
struct value * frame_unwind_got_register(struct frame_info *frame, int regnum, int new_regnum)
void regcache_cooked_write_unsigned(struct regcache *regcache, int regnum, ULONGEST val)
int target_read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
struct type * builtin_data_ptr
static int in_plt_section(CORE_ADDR pc)
struct type * tdesc_register_type(struct gdbarch *gdbarch, int regno)
static CORE_ADDR sparc_analyze_control_transfer(struct regcache *regcache, CORE_ADDR pc, CORE_ADDR *npc)
#define SPARC32_CP0_REGISTERS
void set_gdbarch_num_pseudo_regs(struct gdbarch *gdbarch, int num_pseudo_regs)
static enum return_value_convention sparc32_return_value(struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
enum register_status regcache_cooked_read(struct regcache *regcache, int regnum, gdb_byte *buf)
const struct target_desc * tdesc
static struct type * sparc_psr_type(struct gdbarch *gdbarch)
const struct regset * fpregset
struct tdesc_arch_data * tdesc_data_alloc(void)
void regcache_raw_supply(struct regcache *regcache, int regnum, const void *buf)
void set_gdbarch_call_dummy_location(struct gdbarch *gdbarch, int call_dummy_location)
unsigned long long ULONGEST
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
const struct tdesc_feature * tdesc_find_feature(const struct target_desc *target_desc, const char *name)
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)
#define SYMBOL_TYPE(symbol)
void set_gdbarch_return_value(struct gdbarch *gdbarch, gdbarch_return_value_ftype return_value)
LONGEST target_read(struct target_ops *ops, enum target_object object, const char *annex, gdb_byte *buf, ULONGEST offset, LONGEST len)
void regcache_raw_collect(const struct regcache *regcache, int regnum, void *buf)
void dwarf2_frame_set_init_reg(struct gdbarch *gdbarch, void(*init_reg)(struct gdbarch *, int, struct dwarf2_frame_state_reg *, struct frame_info *))
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_sw_breakpoint_from_kind(struct gdbarch *gdbarch, gdbarch_sw_breakpoint_from_kind_ftype sw_breakpoint_from_kind)
void set_gdbarch_iterate_over_regset_sections(struct gdbarch *gdbarch, gdbarch_iterate_over_regset_sections_ftype iterate_over_regset_sections)
void register_gdbarch_init(enum bfd_architecture bfd_architecture, gdbarch_init_ftype *init)
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)
static void sparc_iterate_over_regset_sections(struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
static CORE_ADDR sparc32_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)
static struct gdbarch_data * tdesc_data
static enum register_status sparc32_pseudo_register_read(struct gdbarch *gdbarch, struct regcache *regcache, int regnum, gdb_byte *buf)
static int sparc_floating_p(const struct type *type)
static struct gdbarch * sparc32_gdbarch_init(struct gdbarch_info info, struct gdbarch_list *arches)
struct tdesc_arch_data * tdesc_data
enum bfd_endian byte_order
void set_gdbarch_pc_regnum(struct gdbarch *gdbarch, int pc_regnum)
static std::vector< CORE_ADDR > sparc_software_single_step(struct regcache *regcache)
int tdesc_has_registers(const struct target_desc *target_desc)
void set_gdbarch_register_name(struct gdbarch *gdbarch, gdbarch_register_name_ftype register_name)
CORE_ADDR get_frame_func(struct frame_info *this_frame)
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 type * lookup_pointer_type(struct type *type)
struct gdbarch * get_frame_arch(struct frame_info *this_frame)
static CORE_ADDR sparc32_skip_prologue(struct gdbarch *gdbarch, CORE_ADDR start_pc)
void regcache_cooked_write(struct regcache *regcache, int regnum, const gdb_byte *buf)
constexpr gdb_byte sparc_break_insn[]
static const char * sparc32_register_names[]
struct type * builtin_float
static void store_unsigned_integer(gdb_byte *addr, int len, enum bfd_endian byte_order, ULONGEST val)
const struct target_desc * gdbarch_target_desc(struct gdbarch *gdbarch)
static void sparc32_dwarf2_frame_init_reg(struct gdbarch *gdbarch, int regnum, struct dwarf2_frame_state_reg *reg, struct frame_info *this_frame)
void regcache_raw_write(struct regcache *regcache, int regnum, const gdb_byte *buf)