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;
226 error (
_(
"Software breakpoints not implemented for this target."));
235 if (val == 0 && memcmp (bp, old_contents, bplen) == 0)
265 { 0xffff0000, 0x3d600000, 0 },
266 { 0xffff0000, 0x816b0000, 0 },
267 { 0xffffffff, 0x7d6903a6, 0 },
268 { 0xffffffff, 0x4e800420, 0 },
275 { 0xffff0000, 0x817e0000, 0 },
276 { 0xffffffff, 0x7d6903a6, 0 },
277 { 0xffffffff, 0x4e800420, 0 },
278 { 0xffffffff, 0x60000000, 0 },
281 #define POWERPC32_PLT_STUB_LEN ARRAY_SIZE (powerpc32_plt_stub)
302 "__glink_PLTresolve") == 0))
331 for (i = 0; i < scan_limit; i++)
374 int regnum,
const void *gregs,
size_t len)
405 memset (gregs, 0, len);
476 static const struct regset ppc32_linux_gregset = {
482 static const struct regset ppc64_linux_gregset = {
488 static const struct regset ppc32_linux_fpregset = {
494 static const struct regset ppc32_linux_vrregset = {
500 static const struct regset ppc32_linux_vsxregset = {
531 cb (
".reg", 48 * 4, &ppc32_linux_gregset, NULL, cb_data);
533 cb (
".reg", 48 * 8, &ppc64_linux_gregset, NULL, cb_data);
535 cb (
".reg2", 264, &ppc32_linux_fpregset, NULL, cb_data);
538 cb (
".reg-ppc-vmx", 544, &ppc32_linux_vrregset,
"ppc Altivec", cb_data);
541 cb (
".reg-ppc-vsx", 256, &ppc32_linux_vsxregset,
"POWER7 VSX", cb_data);
571 fpregs = gpregs + 48 * tdep->
wordsize;
574 for (i = 0; i < 32; i++)
578 regnum, gpregs + i * tdep->
wordsize);
603 for (i = 0; i < 32; i++)
770 else if (syscall >= 167 && syscall <= 190)
772 else if (syscall >= 192 && syscall <= 197)
774 else if (syscall == 208)
776 else if (syscall >= 207 && syscall <= 220)
777 return syscall + 224 - 207;
778 else if (syscall >= 234 && syscall <= 239)
779 return syscall + 252 - 234;
780 else if (syscall >= 240 && syscall <=248)
781 return syscall += 259 - 240;
782 else if (syscall >= 250 && syscall <=251)
783 return syscall + 270 - 250;
784 else if (syscall == 336)
786 else if (syscall == 337)
788 else if (syscall == 342)
812 "support syscall number %d\n"), (
int) scnum);
825 for (j = 0; j < 4; j++)
827 if (regsets[j] == -1)
829 for (i = 0; i < 32; i++)
859 for (i = 3; i <= 12; i++)
881 enum gdb_signal signal)
887 const int SIGNAL_FRAMESIZE = 128;
888 const int sizeof_rt_sigframe = 1440 * 2 + 8 * 2 + 4 * 6 + 8 + 8 + 128 + 512;
893 for (i = 3; i <= 12; i++)
913 sp -= SIGNAL_FRAMESIZE;
914 sp -= sizeof_rt_sigframe;
947 return startswith (bfd_section_name (abfd, asect),
"SPU/");
956 asection *altivec = bfd_get_section_by_name (abfd,
".reg-ppc-vmx");
957 asection *vsx = bfd_get_section_by_name (abfd,
".reg-ppc-vsx");
958 asection *section = bfd_get_section_by_name (abfd,
".reg");
962 switch (bfd_section_size (abfd, section))
996 elf_symbol_type *elf_sym = (elf_symbol_type *)sym;
1003 switch (PPC64_LOCAL_ENTRY_OFFSET (elf_sym->internal_elf_sym.st_other))
1020 int local_entry_offset = 0;
1029 local_entry_offset = 8;
1045 || (isdigit (*s) && s[1] ==
'('
1047 || (*s ==
'(' && isdigit (s[1]))
1058 if (isdigit (*p->
arg))
1063 const char *s = p->
arg;
1068 while (isdigit (*s))
1079 regname = alloca (len + 2);
1082 strncpy (regname + 1, p->
arg, len);
1084 regname[
len] =
'\0';
1087 error (
_(
"Invalid register name `%s' on expression `%s'."),
1110 static struct objfile *spe_context_objfile = NULL;
1127 spe_context_objfile = NULL;
1128 spe_context_lm_addr = 0;
1129 spe_context_offset = 0;
1131 spe_context_cache_address = 0;
1138 spe_context_objfile =
objfile;
1142 spe_context_cache_address = 0;
1170 if (so->
objfile == spe_context_objfile)
1179 int n,
int *
id,
unsigned int *npc)
1186 if (!spe_context_objfile)
1202 spe_context_cache_address
1204 spe_context_lm_addr,
1205 spe_context_offset);
1221 for (i = 0; i < n && spe_context; i++)
1223 buf, wordsize) == 0)
1263 void **this_cache,
struct frame_id *this_id)
1269 static struct value *
1271 void **this_cache,
int regnum)
1302 memcpy (buf, data->
gprs + 16*regnum, 16);
1315 struct frame_info *this_frame,
void **this_prologue_cache)
1339 n, &data.
id, &data.
npc);
1340 if (spe_context && base <= spe_context && spe_context < backchain)
1347 info.
bfd_arch_info = bfd_lookup_arch (bfd_arch_spu, bfd_mach_spu);
1355 xsnprintf (annex,
sizeof annex,
"%d/regs", data.
id);
1358 ==
sizeof data.
gprs)
1371 *this_prologue_cache = cache;
1480 else if (wordsize == 4)
1634 static const char *
const stap_integer_prefixes[] = {
"i", NULL };
1635 static const char *
const stap_register_indirection_prefixes[] = {
"(",
1637 static const char *
const stap_register_indirection_suffixes[] = {
")",
1659 stap_register_indirection_prefixes);
1661 stap_register_indirection_suffixes);
1667 if (tdep->wordsize == 4)
1691 &ppc32_linux_sigaction_tramp_frame);
1693 &ppc32_linux_sighandler_tramp_frame);
1713 if (tdep->wordsize == 8)
1743 &ppc64_linux_sigaction_tramp_frame);
1745 &ppc64_linux_sighandler_tramp_frame);
1756 if (tdep->wordsize == 4)
1758 elfcore_write_ppc_linux_prpsinfo32);
1780 "org.gnu.gdb.power.linux");
1781 if (feature != NULL)
1792 bfd_lookup_arch (bfd_arch_spu, bfd_mach_spu)))
void set_gdbarch_num_regs(struct gdbarch *gdbarch, int num_regs)
struct regcache * regcache
ULONGEST extract_unsigned_integer(const gdb_byte *, int, enum bfd_endian)
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)
struct cleanup * make_show_memory_breakpoints_cleanup(int show)
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)
int ptid_equal(ptid_t ptid1, ptid_t ptid2)
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)
void set_gdbarch_stap_parse_special_token(struct gdbarch *gdbarch, gdbarch_stap_parse_special_token_ftype stap_parse_special_token)
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)
struct gdbarch * get_regcache_arch(const struct regcache *regcache)
void set_solib_ops(struct gdbarch *gdbarch, const struct target_so_ops *new_ops)
#define BMSYMBOL_VALUE_ADDRESS(symbol)
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 internal_error(const char *file, int line, const char *fmt,...)
int ppc_process_record(struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr)
struct regcache * regcache_xmalloc(struct gdbarch *gdbarch, struct address_space *aspace)
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)
void set_gdbarch_elfcore_write_linux_prpsinfo(struct gdbarch *gdbarch, gdbarch_elfcore_write_linux_prpsinfo_ftype elfcore_write_linux_prpsinfo)
const struct regset * ppc_linux_gregset(int wordsize)
struct address_space * get_frame_address_space(struct frame_info *frame)
int gdbarch_num_regs(struct gdbarch *gdbarch)
const struct bfd_arch_info * bfd_arch_info
#define MSYMBOL_TARGET_FLAG_1(msymbol)
struct gdbarch_tdep_info * tdep_info
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_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 store_unsigned_integer(gdb_byte *, int, enum bfd_endian, ULONGEST)
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
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)
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)
#define ALL_OBJFILES(obj)
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)
#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 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
void initialize_file_ftype(void)
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)
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 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 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]
int solib_read_symbols(struct so_list *so, int flags)
static int ppu2spu_unwind_register(void *src, int regnum, gdb_byte *buf)
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)
struct cleanup * make_cleanup(make_cleanup_ftype *function, void *arg)
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 void initialize_tdesc_powerpc_isa205_altivec64l(void)
initialize_file_ftype _initialize_ppc_linux_tdep
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)
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)
enum register_status regcache_raw_read_unsigned(struct regcache *regcache, int regnum, ULONGEST *val)
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,...)
void( iterate_over_regset_sections_cb)(const char *sect_name, int size, const struct regset *regset, const char *human_name, void *cb_data)
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)
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)
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 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
void discard_cleanups(struct cleanup *old_chain)
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)
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)
void regcache_save(struct regcache *dst, regcache_cooked_read_ftype *cooked_read, void *src)
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)
enum register_status regcache_cooked_read(struct regcache *regcache, int regnum, gdb_byte *buf)
static const struct regset ppc32_linux_gregset
struct m32c_reg regs[M32C_MAX_NUM_REGS]
struct cleanup * make_cleanup_regcache_xfree(struct regcache *regcache)
static void initialize_tdesc_powerpc_isa205_vsx64l(void)
void regcache_xfree(struct regcache *regcache)
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)
void set_gdbarch_long_double_format(struct gdbarch *gdbarch, const struct floatformat **long_double_format)
#define TYPE_LENGTH(thistype)
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 struct linux_record_tdep ppc_linux_record_tdep
LONGEST extract_signed_integer(const gdb_byte *, int, enum bfd_endian)
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)
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)
void gdbarch_register_osabi(enum bfd_architecture arch, unsigned long machine, enum gdb_osabi osabi, void(*init_osabi)(struct gdbarch_info, struct gdbarch *))
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
void do_cleanups(struct cleanup *old_chain)
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)
const struct target_desc * gdbarch_target_desc(struct gdbarch *gdbarch)
const ULONGEST const LONGEST len
static ptid_t spe_context_cache_ptid