46 #include "elf/common.h" 47 #include "elf/ppc64.h" 85 #define XML_SYSCALL_FILENAME_PPC "syscalls/ppc-linux.xml" 86 #define XML_SYSCALL_FILENAME_PPC64 "syscalls/ppc64-linux.xml" 217 const unsigned char *
bp;
233 if (val == 0 && memcmp (
bp, old_contents, bplen) == 0)
262 { 0xffff0000, 0x3d600000, 0 },
263 { 0xffff0000, 0x816b0000, 0 },
264 { 0xffffffff, 0x7d6903a6, 0 },
265 { 0xffffffff, 0x4e800420, 0 },
272 { 0xffff0000, 0x817e0000, 0 },
273 { 0xffffffff, 0x7d6903a6, 0 },
274 { 0xffffffff, 0x4e800420, 0 },
275 { 0xffffffff, 0x60000000, 0 },
278 #define POWERPC32_PLT_STUB_LEN ARRAY_SIZE (powerpc32_plt_stub) 299 "__glink_PLTresolve") == 0))
328 for (i = 0; i < scan_limit; i++)
371 int regnum,
const void *gregs,
size_t len)
397 int regnum,
void *gregs,
size_t len)
570 fpregs = gpregs + 48 * tdep->
wordsize;
573 for (i = 0; i < 32; i++)
602 for (i = 0; i < 32; i++)
805 "support syscall number %d\n"), (
int) scnum);
818 for (j = 0; j < 4; j++)
820 if (regsets[j] == -1)
822 for (i = 0; i < 32; i++)
852 for (i = 3; i <= 12; i++)
874 enum gdb_signal signal)
880 const int SIGNAL_FRAMESIZE = 128;
881 const int sizeof_rt_sigframe = 1440 * 2 + 8 * 2 + 4 * 6 + 8 + 8 + 128 + 512;
886 for (i = 3; i <= 12; i++)
906 sp -= SIGNAL_FRAMESIZE;
907 sp -= sizeof_rt_sigframe;
940 return startswith (bfd_section_name (abfd, asect),
"SPU/");
949 asection *altivec = bfd_get_section_by_name (abfd,
".reg-ppc-vmx");
950 asection *vsx = bfd_get_section_by_name (abfd,
".reg-ppc-vsx");
951 asection *section = bfd_get_section_by_name (abfd,
".reg");
955 switch (bfd_section_size (abfd, section))
989 elf_symbol_type *elf_sym = (elf_symbol_type *)sym;
996 switch (PPC64_LOCAL_ENTRY_OFFSET (elf_sym->internal_elf_sym.st_other))
1013 int local_entry_offset = 0;
1022 local_entry_offset = 8;
1038 || (isdigit (*s) && s[1] ==
'(' 1040 || (*s ==
'(' && isdigit (s[1]))
1051 if (isdigit (*p->
arg))
1056 const char *s = p->
arg;
1061 while (isdigit (*s))
1072 regname = (
char *) alloca (len + 2);
1075 strncpy (regname + 1, p->
arg, len);
1077 regname[len] =
'\0';
1080 error (
_(
"Invalid register name `%s' on expression `%s'."),
1172 int n,
int *
id,
unsigned int *npc)
1214 for (i = 0; i < n && spe_context; i++)
1256 void **this_cache,
struct frame_id *this_id)
1262 static struct value *
1264 void **this_cache,
int regnum)
1308 struct frame_info *this_frame,
void **this_prologue_cache)
1332 n, &data.
id, &data.
npc);
1333 if (spe_context &&
base <= spe_context && spe_context < backchain)
1340 info.
bfd_arch_info = bfd_lookup_arch (bfd_arch_spu, bfd_mach_spu);
1348 xsnprintf (annex,
sizeof annex,
"%d/regs", data.
id);
1351 ==
sizeof data.
gprs)
1355 std::unique_ptr<struct regcache>
regcache 1362 *this_prologue_cache = cache;
1621 const struct floatformat **
1623 const char *
name,
int len)
1625 if (len == 128 &&
name)
1627 if (strcmp (
name,
"__float128") == 0
1628 || strcmp (
name,
"_Float128") == 0
1629 || strcmp (
name,
"_Float64x") == 0
1630 || strcmp (
name,
"complex _Float128") == 0
1631 || strcmp (
name,
"complex _Float64x") == 0)
1634 if (strcmp (
name,
"__ibm128") == 0)
1647 static const char *
const stap_integer_prefixes[] = {
"i", NULL };
1648 static const char *
const stap_register_indirection_prefixes[] = {
"(",
1650 static const char *
const stap_register_indirection_suffixes[] = {
")",
1678 stap_register_indirection_prefixes);
1680 stap_register_indirection_suffixes);
1793 "org.gnu.gdb.power.linux");
1794 if (feature != NULL)
1805 bfd_lookup_arch (bfd_arch_spu, bfd_mach_spu)))
void set_gdbarch_num_regs(struct gdbarch *gdbarch, int num_regs)
struct regcache * regcache
static void initialize_tdesc_powerpc_cell32l(void)
void trad_frame_set_reg_addr(struct trad_frame_cache *this_trad_cache, int regnum, CORE_ADDR addr)
int size_serial_icounter_struct
static void initialize_tdesc_powerpc_32l(void)
static void ppc_linux_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
struct frame_id frame_id_build(CORE_ADDR stack_addr, CORE_ADDR code_addr)
#define XML_SYSCALL_FILENAME_PPC
struct value * frame_unwind_got_bytes(struct frame_info *frame, int regnum, gdb_byte *buf)
static void ppc_linux_supply_gregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
static CORE_ADDR ppc_elfv2_skip_entrypoint(struct gdbarch *gdbarch, CORE_ADDR pc)
static int ppu2spu_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
static void ppc_linux_sigtramp_cache(struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func, LONGEST offset, int bias)
CORE_ADDR get_frame_pc(struct frame_info *frame)
#define MSYMBOL_LINKAGE_NAME(symbol)
static void initialize_tdesc_powerpc_isa205_64l(void)
static const struct ppc_reg_offsets ppc64_linux_reg_offsets
void set_gdbarch_fetch_tls_load_module_address(struct gdbarch *gdbarch, gdbarch_fetch_tls_load_module_address_ftype fetch_tls_load_module_address)
#define TRAMP_SENTINEL_INSN
static const struct regset ppc32_linux_fpregset
static void initialize_tdesc_powerpc_isa205_altivec32l(void)
struct link_map_offsets * svr4_lp64_fetch_link_map_offsets(void)
struct regcache * get_thread_regcache(ptid_t ptid)
static const struct regset ppc64_linux_gregset
static struct tramp_frame ppc32_linux_sigaction_tramp_frame
void set_gdbarch_stap_parse_special_token(struct gdbarch *gdbarch, gdbarch_stap_parse_special_token_ftype stap_parse_special_token)
const struct floatformat ** default_floatformat_for_type(struct gdbarch *gdbarch, const char *name, int len)
static void initialize_tdesc_powerpc_vsx32l(void)
static void ppc32_linux_sigaction_cache_init(const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
int record_full_arch_list_add_reg(struct regcache *regcache, int regnum)
void set_solib_ops(struct gdbarch *gdbarch, const struct target_so_ops *new_ops)
#define BMSYMBOL_VALUE_ADDRESS(symbol)
void() iterate_over_regset_sections_cb(const char *sect_name, int size, const struct regset *regset, const char *human_name, void *cb_data)
void set_gdbarch_skip_trampoline_code(struct gdbarch *gdbarch, gdbarch_skip_trampoline_code_ftype skip_trampoline_code)
void ppc_supply_fpregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *fpregs, size_t len)
CORE_ADDR glibc_skip_solib_resolver(struct gdbarch *gdbarch, CORE_ADDR pc)
static void ppc_linux_write_pc(struct regcache *regcache, CORE_ADDR pc)
int tdesc_compatible_p(const struct target_desc *target_desc, const struct bfd_arch_info *arch)
int svr4_in_dynsym_resolve_code(CORE_ADDR pc)
void set_gdbarch_write_pc(struct gdbarch *gdbarch, gdbarch_write_pc_ftype write_pc)
void set_gdbarch_displaced_step_location(struct gdbarch *gdbarch, gdbarch_displaced_step_location_ftype displaced_step_location)
void trad_frame_set_id(struct trad_frame_cache *this_trad_cache, struct frame_id this_id)
int ioctl_TIOCSERGETMULTI
void set_gdbarch_process_record_signal(struct gdbarch *gdbarch, gdbarch_process_record_signal_ftype process_record_signal)
CORE_ADDR get_frame_sp(struct frame_info *this_frame)
struct gdbarch * gdbarch_find_by_info(struct gdbarch_info info)
static void initialize_tdesc_powerpc_altivec64l(void)
void * memset(T *s, int c, size_t n)=delete
void internal_error(const char *file, int line, const char *fmt,...)
int ppc_process_record(struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr)
void ppc_supply_reg(struct regcache *regcache, int regnum, const gdb_byte *regs, size_t offset, int regsize)
void linux_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
static void ppc_init_linux_record_tdep(struct linux_record_tdep *record_tdep, int wordsize)
static CORE_ADDR ppc_skip_trampoline_code(struct frame_info *frame, CORE_ADDR pc)
static struct linux_record_tdep ppc64_linux_record_tdep
struct target_desc * tdesc_powerpc_32l
struct link_map_offsets * svr4_ilp32_fetch_link_map_offsets(void)
scoped_restore_tmpl< int > make_scoped_restore_show_memory_breakpoints(int show)
const struct floatformat * floatformats_ia64_quad[BFD_ENDIAN_UNKNOWN]
static struct objfile * spe_context_objfile
const struct regset * ppc_linux_gregset(int wordsize)
int gdbarch_num_regs(struct gdbarch *gdbarch)
const struct bfd_arch_info * bfd_arch_info
#define MSYMBOL_TARGET_FLAG_1(msymbol)
static const struct regset ppc32_linux_vsxregset
enum powerpc_long_double_abi long_double_abi
void regcache_save(struct regcache *regcache, regcache_cooked_read_ftype *cooked_read, void *src)
struct gdbarch_tdep * gdbarch_tdep(struct gdbarch *gdbarch)
#define XML_SYSCALL_FILENAME_PPC64
struct target_desc * tdesc_powerpc_cell32l
CORE_ADDR ppc64_skip_trampoline_code(struct frame_info *frame, CORE_ADDR pc)
void frame_unwind_prepend_unwinder(struct gdbarch *gdbarch, const struct frame_unwind *unwinder)
static void initialize_tdesc_powerpc_isa205_32l(void)
void set_gdbarch_process_record(struct gdbarch *gdbarch, gdbarch_process_record_ftype process_record)
void set_gdbarch_significant_addr_bit(struct gdbarch *gdbarch, int significant_addr_bit)
void set_gdbarch_elf_make_msymbol_special(struct gdbarch *gdbarch, gdbarch_elf_make_msymbol_special_ftype elf_make_msymbol_special)
static void ppc_linux_spe_context_solib_loaded(struct so_list *so)
static enum gdb_syscall ppc_canonicalize_syscall(int syscall)
void set_gdbarch_stap_register_indirection_suffixes(struct gdbarch *gdbarch, const char *const *stap_register_indirection_suffixes)
CORE_ADDR svr4_fetch_objfile_link_map(struct objfile *objfile)
struct target_desc * tdesc_powerpc_64l
void set_gdbarch_floatformat_for_type(struct gdbarch *gdbarch, gdbarch_floatformat_for_type_ftype floatformat_for_type)
struct observer * observer_attach_inferior_created(observer_inferior_created_ftype *f)
void set_gdbarch_stap_integer_prefixes(struct gdbarch *gdbarch, const char *const *stap_integer_prefixes)
void set_gdbarch_stap_gdb_register_prefix(struct gdbarch *gdbarch, const char *stap_gdb_register_prefix)
struct parser_state pstate
static void ppc_linux_iterate_over_regset_sections(struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
#define MSYMBOL_VALUE_RAW_ADDRESS(symbol)
int ioctl_TIOCSERSETMULTI
static void initialize_tdesc_powerpc_vsx64l(void)
int tdesc_numbered_register(const struct tdesc_feature *feature, struct tdesc_arch_data *data, int regno, const char *name)
static void initialize_tdesc_powerpc_isa205_vsx32l(void)
enum frame_type get_frame_type(struct frame_info *frame)
static void initialize_tdesc_powerpc_64l(void)
int(* in_dynsym_resolve_code)(CORE_ADDR pc)
void ppc_collect_gregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
enum exec_direction_kind execution_direction
#define CATCH(EXCEPTION, MASK)
int ppc_vsr0_upper_regnum
struct target_desc * tdesc_powerpc_cell64l
static int ppc_stap_is_single_operand(struct gdbarch *gdbarch, const char *s)
static struct tramp_frame ppc64_linux_sighandler_tramp_frame
static void ppu2spu_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static void initialize_tdesc_powerpc_cell64l(void)
struct target_ops current_target
static void ppc64_linux_sighandler_cache_init(const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
int gdbarch_sp_regnum(struct gdbarch *gdbarch)
objfile(bfd *, const char *, objfile_flags)
struct target_desc * tdesc_powerpc_altivec32l
int record_linux_system_call(enum gdb_syscall syscall, struct regcache *regcache, struct linux_record_tdep *tdep)
static int powerpc_linux_in_dynsym_resolve_code(CORE_ADDR pc)
static CORE_ADDR spe_context_offset
static ULONGEST extract_unsigned_integer(const gdb_byte *addr, int len, enum bfd_endian byte_order)
static int ppc_linux_spu_section(bfd *abfd, asection *asect, void *user_data)
void ppc_collect_reg(const struct regcache *regcache, int regnum, gdb_byte *regs, size_t offset, int regsize)
static void initialize_tdesc_powerpc_e500l(void)
void ppc_collect_vrregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *vrregs, size_t len)
static struct ppc_insn_pattern powerpc32_plt_stub[]
static int ppc_linux_syscall_record(struct regcache *regcache)
int ppc_linux_trap_reg_p(struct gdbarch *gdbarch)
static enum return_value_convention ppc_linux_return_value(struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
struct observer * observer_attach_solib_unloaded(observer_solib_unloaded_ftype *f)
gdb_byte shadow_contents[BREAKPOINT_MAX]
char so_original_name[SO_NAME_MAX_PATH_SIZE]
CORE_ADDR(* to_get_thread_local_address)(struct target_ops *ops, ptid_t ptid, CORE_ADDR load_module_addr, CORE_ADDR offset) TARGET_DEFAULT_NORETURN(generic_tls_error())
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
int target_write_raw_memory(CORE_ADDR memaddr, const gdb_byte *myaddr, ssize_t len)
CORE_ADDR ppc64_convert_from_func_ptr_addr(struct gdbarch *gdbarch, CORE_ADDR addr, struct target_ops *targ)
void set_solib_svr4_fetch_link_map_offsets(struct gdbarch *gdbarch, struct link_map_offsets *(*flmo)(void))
void set_gdbarch_gcore_bfd_target(struct gdbarch *gdbarch, const char *gcore_bfd_target)
void set_gdbarch_stap_register_indirection_prefixes(struct gdbarch *gdbarch, const char *const *stap_register_indirection_prefixes)
static struct tramp_frame ppc64_linux_sigaction_tramp_frame
static void initialize_tdesc_powerpc_isa205_altivec64l(void)
static struct gdbarch * ppu2spu_prev_arch(struct frame_info *this_frame, void **this_cache)
const struct floatformat * floatformats_ibm_long_double[BFD_ENDIAN_UNKNOWN]
static int ppc_linux_memory_remove_breakpoint(struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
void ppc_collect_fpregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *fpregs, size_t len)
int(* ppc_syscall_record)(struct regcache *regcache)
static int startswith(const char *string, const char *pattern)
static void ppc64_linux_sigaction_cache_init(const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
static int ppc_stap_parse_special_token(struct gdbarch *gdbarch, struct stap_parse_info *p)
void ppc_supply_vrregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *vrregs, size_t len)
void set_gdbarch_convert_from_func_ptr_addr(struct gdbarch *gdbarch, gdbarch_convert_from_func_ptr_addr_ftype convert_from_func_ptr_addr)
void set_xml_syscall_file_name(struct gdbarch *gdbarch, const char *name)
void printf_unfiltered(const char *format,...)
int user_reg_map_name_to_regnum(struct gdbarch *gdbarch, const char *name, int len)
ULONGEST get_frame_register_unsigned(struct frame_info *frame, int regnum)
void set_spu_solib_ops(struct gdbarch *gdbarch)
void gdbarch_register_osabi(enum bfd_architecture arch, unsigned long machine, enum gdb_osabi osabi, void(*init_osabi)(struct gdbarch_info, struct gdbarch *))
CORE_ADDR linux_displaced_step_location(struct gdbarch *gdbarch)
static const struct target_desc * ppc_linux_core_read_description(struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd)
int ppc_insns_match_pattern(struct frame_info *frame, CORE_ADDR pc, struct ppc_insn_pattern *pattern, unsigned int *insns)
void ppc64_elf_make_msymbol_special(asymbol *sym, struct minimal_symbol *msym)
int record_full_arch_list_add_mem(CORE_ADDR addr, int len)
const struct target_desc * target_desc
static const struct ppc_reg_offsets ppc32_linux_reg_offsets
static void ppc_elfv2_elf_make_msymbol_special(asymbol *sym, struct minimal_symbol *msym)
const struct regset * ppc_linux_fpregset(void)
static const struct frame_unwind ppu2spu_unwind
static void ppc32_linux_sighandler_cache_init(const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
void write_exp_elt_opcode(struct parser_state *ps, enum exp_opcode expelt)
static CORE_ADDR spe_context_lm_addr
struct frame_info * get_next_frame(struct frame_info *this_frame)
struct target_so_ops svr4_so_ops
ULONGEST align_up(ULONGEST v, int n)
#define POWERPC32_PLT_STUB_LEN
struct bound_minimal_symbol lookup_minimal_symbol_by_pc(CORE_ADDR pc)
void ppc_collect_vsxregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *vsxregs, size_t len)
static LONGEST ppc_linux_get_syscall_number(struct gdbarch *gdbarch, ptid_t ptid)
static const struct regset ppc32_linux_vrregset
CORE_ADDR ppc_insn_d_field(unsigned int insn)
int gdbarch_fp0_regnum(struct gdbarch *gdbarch)
enum register_status gdbarch_pseudo_register_read(struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, gdb_byte *buf)
static void ppc_linux_spe_context_inferior_created(struct target_ops *t, int from_tty)
int xsnprintf(char *str, size_t size, const char *format,...)
#define TYPE_CODE(thistype)
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)
int target_read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
const gdb_byte * gdbarch_breakpoint_from_pc(struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
void gdbarch_info_init(struct gdbarch_info *info)
static int ppc_linux_record_signal(struct gdbarch *gdbarch, struct regcache *regcache, enum gdb_signal signal)
struct minimal_symbol * minsym
void set_gdbarch_stap_is_single_operand(struct gdbarch *gdbarch, gdbarch_stap_is_single_operand_ftype stap_is_single_operand)
void set_gdbarch_get_syscall_number(struct gdbarch *gdbarch, gdbarch_get_syscall_number_ftype get_syscall_number)
void tramp_frame_prepend_unwinder(struct gdbarch *gdbarch, const struct tramp_frame *tramp_frame)
void _initialize_ppc_linux_tdep(void)
enum register_status regcache_cooked_read(struct regcache *regcache, int regnum, gdb_byte *buf)
static const struct regset ppc32_linux_gregset
static LONGEST extract_signed_integer(const gdb_byte *addr, int len, enum bfd_endian byte_order)
struct m32c_reg regs[M32C_MAX_NUM_REGS]
static void initialize_tdesc_powerpc_isa205_vsx64l(void)
static struct tramp_frame ppc32_linux_sighandler_tramp_frame
int ptid_equal(const ptid_t &ptid1, const ptid_t &ptid2)
gdb::def_vector< gdb_byte > byte_vector
void set_gdbarch_memory_remove_breakpoint(struct gdbarch *gdbarch, gdbarch_memory_remove_breakpoint_ftype memory_remove_breakpoint)
struct target_desc * tdesc_powerpc_vsx64l
static void ppc_linux_spe_context_lookup(struct objfile *objfile)
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)
static void initialize_tdesc_powerpc_altivec32l(void)
void set_gdbarch_long_double_bit(struct gdbarch *gdbarch, int long_double_bit)
void set_gdbarch_skip_entrypoint(struct gdbarch *gdbarch, gdbarch_skip_entrypoint_ftype skip_entrypoint)
const struct frame_base * base
struct target_desc * tdesc_powerpc_vsx32l
static void ppc_linux_spe_context_solib_unloaded(struct so_list *so)
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)
const struct bfd_arch_info * gdbarch_bfd_arch_info(struct gdbarch *gdbarch)
int gdbarch_pc_regnum(struct gdbarch *gdbarch)
int solib_read_symbols(struct so_list *so, symfile_add_flags flags)
void set_gdbarch_long_double_format(struct gdbarch *gdbarch, const struct floatformat **long_double_format)
#define TYPE_LENGTH(thistype)
static struct ppc_insn_pattern powerpc32_plt_stub_so[]
enum register_status regcache_raw_read_unsigned(struct regcache *regcache, int regnum, ULONGEST *val)
ULONGEST read_memory_unsigned_integer(CORE_ADDR memaddr, int len, enum bfd_endian byte_order)
const struct floatformat ** ppc_floatformat_for_type(struct gdbarch *gdbarch, const char *name, int len)
static enum register_status ppu2spu_unwind_register(void *src, int regnum, gdb_byte *buf)
void set_gdbarch_iterate_over_regset_sections(struct gdbarch *gdbarch, gdbarch_iterate_over_regset_sections_ftype iterate_over_regset_sections)
#define ALL_OBJFILES(obj)
static struct linux_record_tdep ppc_linux_record_tdep
int size__old_kernel_stat
static struct value * ppu2spu_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
static struct gdbarch_data * tdesc_data
void ppc_supply_vsxregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *vsxregs, size_t len)
struct target_desc * tdesc_powerpc_altivec64l
static void ppc_linux_collect_gregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
enum bfd_endian byte_order
void set_gdbarch_skip_solib_resolver(struct gdbarch *gdbarch, gdbarch_skip_solib_resolver_ftype skip_solib_resolver)
struct bound_minimal_symbol lookup_minimal_symbol(const char *name, const char *sfile, struct objfile *objf)
int ppc_floating_point_unit_p(struct gdbarch *gdbarch)
struct tdesc_arch_data * tdesc_data
void write_exp_string(struct parser_state *ps, struct stoken str)
int record_full_arch_list_add_end(void)
void set_gdbarch_core_read_description(struct gdbarch *gdbarch, gdbarch_core_read_description_ftype core_read_description)
int tdesc_has_registers(const struct target_desc *target_desc)
enum return_value_convention ppc_sysv_abi_return_value(struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
void error(const char *fmt,...)
void ppc_supply_gregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
struct gdbarch * get_frame_arch(struct frame_info *this_frame)
#define FRAME_OBSTACK_CALLOC(NUMBER, TYPE)
static CORE_ADDR spe_context_cache_address
struct observer * observer_attach_solib_loaded(observer_solib_loaded_ftype *f)
static void ppu2spu_dealloc_cache(struct frame_info *self, void *this_cache)
static struct target_so_ops powerpc_so_ops
static CORE_ADDR ppc_linux_spe_context(int wordsize, enum bfd_endian byte_order, int n, int *id, unsigned int *npc)
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 ptid_t spe_context_cache_ptid