47#include "elf/common.h"
91#define XML_SYSCALL_FILENAME_PPC "syscalls/ppc-linux.xml"
92#define XML_SYSCALL_FILENAME_PPC64 "syscalls/ppc64-linux.xml"
223 const unsigned char *
bp;
232 scoped_restore restore_memory
239 if (val == 0 && memcmp (
bp, old_contents, bplen) == 0)
253 struct value **read_value,
const gdb_byte *writebuf)
255 gdb_byte *readbuf =
nullptr;
256 if (read_value !=
nullptr)
259 readbuf = (*read_value)->contents_raw ().data ();
262 if ((valtype->
code () == TYPE_CODE_STRUCT
263 || valtype->
code () == TYPE_CODE_UNION)
264 && !((valtype->
length () == 16 || valtype->
length () == 8)
275 { 0xffff0000, 0x3d600000, 0 },
276 { 0xffff0000, 0x816b0000, 0 },
277 { 0xffffffff, 0x7d6903a6, 0 },
278 { 0xffffffff, 0x4e800420, 0 },
287 { 0xffff0000, 0x817e0000, 0 },
288 { 0xffffffff, 0x7d6903a6, 0 },
289 { 0xffffffff, 0x4e800420, 0 },
297 { 0xffff0000, 0x3d7e0000, 0 },
298 { 0xffff0000, 0x816b0000, 0 },
299 { 0xffffffff, 0x7d6903a6, 0 },
300 { 0xffffffff, 0x4e800420, 0 },
305#define POWERPC32_PLT_CHECK_LEN (ARRAY_SIZE (powerpc32_plt_stub) - 1)
345 CORE_ADDR target = 0;
354 for (i = 0; i < scan_limit; i++)
404 int regnum,
const void *gregs,
size_t len)
430 int regnum,
void *gregs,
size_t len)
437 memset (gregs, 0, len);
946 int regnum,
void *buf,
size_t len)
971 gdb_assert ((pt_offset + 2) * tdep->
wordsize <= len);
1014 vrregset,
"ppc Altivec", cb_data);
1057 "Hardware Transactional Memory Special Purpose Registers",
1073 int cgpr_size = (tdep->
wordsize == 4?
1077 const struct regset *cgprregset =
1082 struct regset core_cgprregset = *cgprregset;
1087 cb (
".reg-ppc-tm-cgpr",
1088 cgpr_size, cgpr_size,
1090 "Checkpointed General Purpose Registers", cb_data);
1094 cb (
".reg-ppc-tm-cgpr",
1095 cgpr_size, cgpr_size,
1097 "Checkpointed General Purpose Registers", cb_data);
1109 "Checkpointed Floating Point Registers", cb_data);
1117 const struct regset *cvmxregset =
1123 "Checkpointed Altivec (VMX) Registers", cb_data);
1135 "Checkpointed VSX Registers", cb_data);
1145 "Checkpointed Priority Program Register", cb_data);
1155 "Checkpointed Data Stream Control Register", cb_data);
1165 "Checkpointed Target Address Register", cb_data);
1172 CORE_ADDR
func, LONGEST offset,
1192 regs = base + offset;
1196 fpregs = gpregs + 48 * tdep->
wordsize;
1199 for (i = 0; i < 32; i++)
1228 for (i = 0; i < 32; i++)
1292 { 0x380000ac, ULONGEST_MAX },
1293 { 0x44000002, ULONGEST_MAX },
1302 { 0x38210080, ULONGEST_MAX },
1303 { 0x380000ac, ULONGEST_MAX },
1304 { 0x44000002, ULONGEST_MAX },
1313 { 0x38000077, ULONGEST_MAX },
1314 { 0x44000002, ULONGEST_MAX },
1323 { 0x38210080, ULONGEST_MAX },
1324 { 0x38000077, ULONGEST_MAX },
1325 { 0x44000002, ULONGEST_MAX },
1359 gdb::byte_vector buf (tdep->
wordsize);
1399 result =
syscall += 259 - 240;
1440 if (syscall_gdb < 0)
1443 _(
"Process record and replay target doesn't "
1444 "support syscall number %d\n"), (
int) scnum);
1457 for (j = 0; j < 4; j++)
1459 if (regsets[j] == -1)
1461 for (i = 0; i < 32; i++)
1491 for (
int i = 3; i <= 12; i++)
1513 enum gdb_signal signal)
1519 const int SIGNAL_FRAMESIZE = 128;
1520 const int sizeof_rt_sigframe = 1440 * 2 + 8 * 2 + 4 * 6 + 8 + 8 + 128 + 512;
1525 for (i = 3; i <= 12; i++)
1545 sp -= SIGNAL_FRAMESIZE;
1546 sp -= sizeof_rt_sigframe;
1582 asection *
altivec = bfd_get_section_by_name (abfd,
".reg-ppc-vmx");
1583 asection *
vsx = bfd_get_section_by_name (abfd,
".reg-ppc-vsx");
1584 asection *section = bfd_get_section_by_name (abfd,
".reg");
1585 asection *ppr = bfd_get_section_by_name (abfd,
".reg-ppc-ppr");
1586 asection *dscr = bfd_get_section_by_name (abfd,
".reg-ppc-dscr");
1587 asection *tar = bfd_get_section_by_name (abfd,
".reg-ppc-tar");
1588 asection *pmu = bfd_get_section_by_name (abfd,
".reg-ppc-pmu");
1589 asection *htmspr = bfd_get_section_by_name (abfd,
".reg-ppc-tm-spr");
1594 switch (bfd_section_size (section))
1610 features.
vsx =
true;
1629 features.
htm =
true;
1643 if ((sym->flags & BSF_SYNTHETIC) != 0)
1648 elf_symbol_type *elf_sym = (elf_symbol_type *)sym;
1655 switch (PPC64_LOCAL_ENTRY_OFFSET (elf_sym->internal_elf_sym.st_other))
1672 int local_entry_offset = 0;
1681 local_entry_offset = 8;
1697 || (isdigit (*s) && s[1] ==
'('
1699 || (*s ==
'(' && isdigit (s[1]))
1710 if (isdigit (*p->
arg))
1715 const char *s = p->
arg;
1719 while (isdigit (*s))
1730 regname = (
char *) alloca (len + 2);
1733 strncpy (regname + 1, p->
arg, len);
1735 regname[len] =
'\0';
1738 error (_(
"Invalid register name `%s' on expression `%s'."),
1743 return expr::make_operation<expr::register_operation> (regname);
1762#define SIZE_OF_STRUCT_TERMIOS 0x2c
1838 else if (wordsize == 4)
1906 internal_error (_(
"unexpected wordsize"));
1990static const struct floatformat **
1992 const char *
name,
int len)
1994 if (len == 128 &&
name)
1996 if (strcmp (
name,
"__float128") == 0
1997 || strcmp (
name,
"_Float128") == 0
1998 || strcmp (
name,
"_Float64x") == 0
1999 || strcmp (
name,
"complex _Float128") == 0
2000 || strcmp (
name,
"complex _Float64x") == 0)
2003 if (strcmp (
name,
"__ibm128") == 0)
2012 const char *producer,
const char *
name)
2014 int gcc_major, gcc_minor;
2018 if ((target_type->
code () == TYPE_CODE_FLT
2019 || target_type->
code () == TYPE_CODE_COMPLEX)
2020 && (strcmp (
name,
"long double") == 0
2021 || strcmp (
name,
"complex long double") == 0))
2051 return "p(ower)?pc64le";
2063 return "p(ower)?pc64";
2076 CORE_ADDR &displaced_pc)
2082 CORE_ADDR disp_step_buf_addr
2088 return per_inferior->
disp_step_buf->prepare (thread, displaced_pc);
2097 static const char *
const stap_integer_prefixes[] = {
"i", NULL };
2244 const struct tdesc_feature *feature;
2254 "org.gnu.gdb.power.linux");
2255 if (feature != NULL)
const struct floatformat ** default_floatformat_for_type(struct gdbarch *gdbarch, const char *name, int len)
gdb::optional< gdb::byte_vector > target_read_auxv_raw(target_ops *ops)
enum register_status cooked_read(int regnum, gdb_byte *buf)
void raw_collect_integer(int regnum, gdb_byte *addr, int addr_len, bool is_signed) const
enum register_status get_register_status(int regnum) const override
ULONGEST read_memory_unsigned_integer(CORE_ADDR memaddr, int len, enum bfd_endian byte_order)
static LONGEST extract_signed_integer(gdb::array_view< const gdb_byte > buf, enum bfd_endian byte_order)
@ RETURN_VALUE_STRUCT_CONVENTION
displaced_step_prepare_status
ULONGEST get_frame_register_unsigned(frame_info_ptr frame, int regnum)
CORE_ADDR get_frame_pc(frame_info_ptr frame)
struct frame_id frame_id_build(CORE_ADDR stack_addr, CORE_ADDR code_addr)
struct gdbarch * get_frame_arch(frame_info_ptr this_frame)
void set_gdbarch_process_record(struct gdbarch *gdbarch, gdbarch_process_record_ftype *process_record)
int gdbarch_pc_regnum(struct gdbarch *gdbarch)
void set_gdbarch_return_value_as_value(struct gdbarch *gdbarch, gdbarch_return_value_as_value_ftype *return_value_as_value)
void set_gdbarch_convert_from_func_ptr_addr(struct gdbarch *gdbarch, gdbarch_convert_from_func_ptr_addr_ftype *convert_from_func_ptr_addr)
const gdb_byte * gdbarch_breakpoint_from_pc(struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
void set_gdbarch_dwarf2_omit_typedef_p(struct gdbarch *gdbarch, gdbarch_dwarf2_omit_typedef_p_ftype *dwarf2_omit_typedef_p)
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
void set_gdbarch_stap_parse_special_token(struct gdbarch *gdbarch, gdbarch_stap_parse_special_token_ftype *stap_parse_special_token)
void set_gdbarch_stap_integer_prefixes(struct gdbarch *gdbarch, const char *const *stap_integer_prefixes)
void set_gdbarch_displaced_step_prepare(struct gdbarch *gdbarch, gdbarch_displaced_step_prepare_ftype *displaced_step_prepare)
void set_gdbarch_core_read_description(struct gdbarch *gdbarch, gdbarch_core_read_description_ftype *core_read_description)
void set_gdbarch_stap_gdb_register_prefix(struct gdbarch *gdbarch, const char *stap_gdb_register_prefix)
void set_gdbarch_write_pc(struct gdbarch *gdbarch, gdbarch_write_pc_ftype *write_pc)
void set_gdbarch_elf_make_msymbol_special(struct gdbarch *gdbarch, gdbarch_elf_make_msymbol_special_ftype *elf_make_msymbol_special)
void set_gdbarch_skip_trampoline_code(struct gdbarch *gdbarch, gdbarch_skip_trampoline_code_ftype *skip_trampoline_code)
void set_gdbarch_stap_is_single_operand(struct gdbarch *gdbarch, gdbarch_stap_is_single_operand_ftype *stap_is_single_operand)
void set_gdbarch_return_value(struct gdbarch *gdbarch, gdbarch_return_value_ftype *return_value)
void set_gdbarch_get_syscall_number(struct gdbarch *gdbarch, gdbarch_get_syscall_number_ftype *get_syscall_number)
void set_gdbarch_gnu_triplet_regexp(struct gdbarch *gdbarch, gdbarch_gnu_triplet_regexp_ftype *gnu_triplet_regexp)
int gdbarch_num_regs(struct gdbarch *gdbarch)
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)
int gdbarch_sp_regnum(struct gdbarch *gdbarch)
void set_gdbarch_long_double_format(struct gdbarch *gdbarch, const struct floatformat **long_double_format)
void set_gdbarch_gcc_target_options(struct gdbarch *gdbarch, gdbarch_gcc_target_options_ftype *gcc_target_options)
const struct target_desc * gdbarch_target_desc(struct gdbarch *gdbarch)
void set_gdbarch_process_record_signal(struct gdbarch *gdbarch, gdbarch_process_record_signal_ftype *process_record_signal)
void set_gdbarch_fetch_tls_load_module_address(struct gdbarch *gdbarch, gdbarch_fetch_tls_load_module_address_ftype *fetch_tls_load_module_address)
int gdbarch_fp0_regnum(struct gdbarch *gdbarch)
void set_gdbarch_memory_remove_breakpoint(struct gdbarch *gdbarch, gdbarch_memory_remove_breakpoint_ftype *memory_remove_breakpoint)
void set_gdbarch_num_regs(struct gdbarch *gdbarch, int num_regs)
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)
void set_gdbarch_stap_register_indirection_suffixes(struct gdbarch *gdbarch, const char *const *stap_register_indirection_suffixes)
void set_gdbarch_floatformat_for_type(struct gdbarch *gdbarch, gdbarch_floatformat_for_type_ftype *floatformat_for_type)
void set_gdbarch_so_ops(struct gdbarch *gdbarch, const struct target_so_ops *so_ops)
void set_gdbarch_skip_solib_resolver(struct gdbarch *gdbarch, gdbarch_skip_solib_resolver_ftype *skip_solib_resolver)
void set_gdbarch_iterate_over_regset_sections(struct gdbarch *gdbarch, gdbarch_iterate_over_regset_sections_ftype *iterate_over_regset_sections)
void iterate_over_regset_sections_cb(const char *sect_name, int supply_size, int collect_size, const struct regset *regset, const char *human_name, void *cb_data)
const struct floatformat * floatformats_ibm_long_double[BFD_ENDIAN_UNKNOWN]
const struct floatformat * floatformats_ieee_quad[BFD_ENDIAN_UNKNOWN]
CORE_ADDR glibc_skip_solib_resolver(struct gdbarch *gdbarch, CORE_ADDR pc)
enum exec_direction_kind execution_direction
int record_linux_system_call(enum gdb_syscall syscall, struct regcache *regcache, struct linux_record_tdep *tdep)
link_map_offsets * linux_lp64_fetch_link_map_offsets()
CORE_ADDR linux_displaced_step_location(struct gdbarch *gdbarch)
link_map_offsets * linux_ilp32_fetch_link_map_offsets()
void linux_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch, int num_disp_step_buffers)
CORE_ADDR linux_get_hwcap()
struct bound_minimal_symbol lookup_minimal_symbol_by_pc(CORE_ADDR pc)
std::unique_ptr< operation > operation_up
void gdbarch_register_osabi(enum bfd_architecture arch, unsigned long machine, enum gdb_osabi osabi, void(*init_osabi)(struct gdbarch_info, struct gdbarch *))
static void initialize_tdesc_powerpc_32l(void)
static void initialize_tdesc_powerpc_64l(void)
static void initialize_tdesc_powerpc_altivec32l(void)
static void initialize_tdesc_powerpc_altivec64l(void)
static void initialize_tdesc_powerpc_e500l(void)
static void initialize_tdesc_powerpc_isa205_32l(void)
static void initialize_tdesc_powerpc_isa205_64l(void)
static void initialize_tdesc_powerpc_isa205_altivec32l(void)
static void initialize_tdesc_powerpc_isa205_altivec64l(void)
static void initialize_tdesc_powerpc_isa205_ppr_dscr_vsx32l(void)
static void initialize_tdesc_powerpc_isa205_ppr_dscr_vsx64l(void)
static void initialize_tdesc_powerpc_isa205_vsx32l(void)
static void initialize_tdesc_powerpc_isa205_vsx64l(void)
static void initialize_tdesc_powerpc_isa207_htm_vsx32l(void)
static void initialize_tdesc_powerpc_isa207_htm_vsx64l(void)
static void initialize_tdesc_powerpc_isa207_vsx32l(void)
static void initialize_tdesc_powerpc_isa207_vsx64l(void)
static void initialize_tdesc_powerpc_vsx32l(void)
static void initialize_tdesc_powerpc_vsx64l(void)
bool ppc_linux_has_isa205(CORE_ADDR hwcap)
const struct target_desc * ppc_linux_match_description(struct ppc_linux_features features)
#define PPC_LINUX_SIZEOF_DSCRREGSET
#define PPC_LINUX_SIZEOF_CTARREGSET
#define PPC_LINUX_SIZEOF_PPRREGSET
#define PPC64_LINUX_SIZEOF_CGPRREGSET
#define PPC_LINUX_SIZEOF_EBBREGSET
#define PPC_LINUX_SIZEOF_CPPRREGSET
#define PPC_LINUX_SIZEOF_VSXREGSET
#define PPC_LINUX_SIZEOF_CVSXREGSET
const struct ppc_linux_features ppc_linux_no_features
#define PPC32_LINUX_SIZEOF_CGPRREGSET
#define PPC_LINUX_SIZEOF_TM_SPRREGSET
#define PPC_LINUX_SIZEOF_PMUREGSET
#define PPC_LINUX_SIZEOF_CFPRREGSET
#define PPC_LINUX_SIZEOF_CDSCRREGSET
#define PPC_LINUX_SIZEOF_VRREGSET
#define PPC_LINUX_SIZEOF_CVMXREGSET
#define PPC_LINUX_SIZEOF_TARREGSET
static void ppc_linux_write_pc(struct regcache *regcache, CORE_ADDR pc)
static void ppc_linux_collect_gregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
static const struct regcache_map_entry ppc32_regmap_ppr[]
static const char * ppc64le_gnu_triplet_regexp(struct gdbarch *gdbarch)
static const struct ppc_insn_pattern powerpc32_plt_stub[]
static const struct regset ppc32_linux_vsxregset
const struct regset ppc32_linux_dscrregset
#define SIZE_OF_STRUCT_TERMIOS
static struct linux_record_tdep ppc64_linux_record_tdep
static int ppc_linux_memory_remove_breakpoint(struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
const struct regset ppc32_linux_tm_sprregset
static const struct regset ppc64_linux_gregset
static const struct regcache_map_entry ppc32_regmap_pmu[]
static const struct regcache_map_entry ppc32_be_linux_vrregmap[]
static const struct ppc_insn_pattern powerpc32_plt_stub_so_1[]
static const struct regset ppc32_le_linux_cvmxregset
const struct regset * ppc_linux_vsxregset(void)
static void ppc_linux_collect_core_cpgrregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t len)
static LONGEST ppc_linux_get_syscall_number(struct gdbarch *gdbarch, thread_info *thread)
static int powerpc_linux_in_dynsym_resolve_code(CORE_ADDR pc)
const struct regset * ppc_linux_fpregset(void)
static expr::operation_up ppc_stap_parse_special_token(struct gdbarch *gdbarch, struct stap_parse_info *p)
static const struct regset ppc64_le_linux_cgprregset
#define XML_SYSCALL_FILENAME_PPC64
static const struct regcache_map_entry ppc32_regmap_dscr[]
static const struct regset ppc32_le_linux_vrregset
#define XML_SYSCALL_FILENAME_PPC
static void ppc_linux_iterate_over_regset_sections(struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
static CORE_ADDR ppc_elfv2_skip_entrypoint(struct gdbarch *gdbarch, CORE_ADDR pc)
static const struct regset ppc32_be_linux_vrregset
static const struct regset ppc32_linux_fpregset
static const struct regcache_map_entry ppc32_linux_vsxregmap[]
static void ppc64_linux_sighandler_cache_init(const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
static const struct ppc_reg_offsets ppc32_linux_reg_offsets
static const struct regcache_map_entry ppc32_regmap_cvsx[]
const struct regset ppc32_linux_tarregset
const struct regset ppc32_linux_cfprregset
int ppc_linux_trap_reg_p(struct gdbarch *gdbarch)
void _initialize_ppc_linux_tdep()
static int ppc_linux_record_signal(struct gdbarch *gdbarch, struct regcache *regcache, enum gdb_signal signal)
const struct regset ppc32_linux_pmuregset
static struct tramp_frame ppc64_linux_sighandler_tramp_frame
static const struct regcache_map_entry ppc32_regmap_cppr[]
static struct linux_record_tdep ppc_linux_record_tdep
static void ppc32_linux_sigaction_cache_init(const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
static void ppc_linux_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
static struct tramp_frame ppc64_linux_sigaction_tramp_frame
static const struct regcache_map_entry ppc64_le_regmap_cgpr[]
static struct tramp_frame ppc32_linux_sighandler_tramp_frame
static const struct regcache_map_entry ppc32_regmap_tar[]
static std::string ppc64_linux_gcc_target_options(struct gdbarch *gdbarch)
static const char * ppc64_gnu_triplet_regexp(struct gdbarch *gdbarch)
static const struct ppc_reg_offsets ppc64_linux_reg_offsets
static const struct target_desc * ppc_linux_core_read_description(struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd)
static displaced_step_prepare_status ppc_linux_displaced_step_prepare(gdbarch *arch, thread_info *thread, CORE_ADDR &displaced_pc)
static const struct regset ppc64_be_linux_cgprregset
static const struct regcache_map_entry ppc32_regmap_cgpr[]
static void ppc_linux_supply_gregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
static const struct regcache_map_entry ppc32_be_regmap_cvmx[]
static const struct regset ppc32_be_linux_cvmxregset
static const struct regcache_map_entry ppc32_regmap_ebb[]
static const struct regcache_map_entry ppc64_be_regmap_cgpr[]
static const struct regset ppc32_linux_gregset
static const struct regset ppc32_linux_cgprregset
static int ppc_linux_syscall_record(struct regcache *regcache)
const struct regset * ppc_linux_gregset(int wordsize)
static const struct floatformat ** ppc_floatformat_for_type(struct gdbarch *gdbarch, const char *name, int len)
static void ppc_linux_sigtramp_cache(frame_info_ptr this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func, LONGEST offset, int bias)
const struct regset ppc32_linux_cvsxregset
static int ppc_stap_is_single_operand(struct gdbarch *gdbarch, const char *s)
static void ppc32_linux_sighandler_cache_init(const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
static struct target_so_ops powerpc_so_ops
const struct regset ppc32_linux_pprregset
const struct regset ppc32_linux_ebbregset
static const struct regcache_map_entry ppc32_regmap_tm_spr[]
static CORE_ADDR ppc_skip_trampoline_code(frame_info_ptr frame, CORE_ADDR pc)
static const struct regcache_map_entry ppc32_le_regmap_cvmx[]
static enum gdb_syscall ppc_canonicalize_syscall(int syscall, int wordsize)
static bool linux_dwarf2_omit_typedef_p(struct type *target_type, const char *producer, const char *name)
const struct regset ppc32_linux_ctarregset
static struct tramp_frame ppc32_linux_sigaction_tramp_frame
static void ppc_init_linux_record_tdep(struct linux_record_tdep *record_tdep, int wordsize)
const struct regset ppc32_linux_cdscrregset
#define POWERPC32_PLT_CHECK_LEN
const struct regset * ppc_linux_cvmxregset(struct gdbarch *gdbarch)
const struct regset * ppc_linux_cgprregset(struct gdbarch *gdbarch)
static const struct regcache_map_entry ppc32_regmap_cdscr[]
static const struct regcache_map_entry ppc32_le_linux_vrregmap[]
const struct regset ppc32_linux_cpprregset
const struct regset * ppc_linux_vrregset(struct gdbarch *gdbarch)
static void ppc_elfv2_elf_make_msymbol_special(asymbol *sym, struct minimal_symbol *msym)
static void ppc64_linux_sigaction_cache_init(const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
static const struct regcache_map_entry ppc32_regmap_ctar[]
static const struct ppc_insn_pattern powerpc32_plt_stub_so_2[]
static enum return_value_convention ppc_linux_return_value(struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, struct value **read_value, const gdb_byte *writebuf)
static const struct regcache_map_entry ppc32_regmap_cfpr[]
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 ppc_collect_gregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
CORE_ADDR ppc_insn_d_field(unsigned int insn)
void ppc_supply_fpregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *fpregs, size_t len)
@ POWERPC_LONG_DOUBLE_IEEE128
int ppc_insns_match_pattern(frame_info_ptr frame, CORE_ADDR pc, const struct ppc_insn_pattern *pattern, unsigned int *insns)
void ppc_collect_reg(const struct regcache *regcache, int regnum, gdb_byte *regs, size_t offset, int regsize)
int ppc_floating_point_unit_p(struct gdbarch *gdbarch)
void ppc_supply_reg(struct regcache *regcache, int regnum, const gdb_byte *regs, size_t offset, int regsize)
ppc_inferior_data * get_ppc_per_inferior(inferior *inf)
void ppc_supply_gregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
int ppc_process_record(struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr)
void ppc_collect_fpregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *fpregs, size_t len)
CORE_ADDR ppc64_skip_trampoline_code(frame_info_ptr frame, CORE_ADDR pc)
void ppc64_elf_make_msymbol_special(asymbol *sym, struct minimal_symbol *msym)
CORE_ADDR ppc64_convert_from_func_ptr_addr(struct gdbarch *gdbarch, CORE_ADDR addr, struct target_ops *targ)
int producer_is_gcc(const char *producer, int *major, int *minor)
int record_full_arch_list_add_reg(struct regcache *regcache, int regnum)
int record_full_arch_list_add_mem(CORE_ADDR addr, int len)
int record_full_arch_list_add_end(void)
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
enum register_status regcache_raw_read_unsigned(struct regcache *regcache, int regnum, ULONGEST *val)
int register_size(struct gdbarch *gdbarch, int regnum)
struct regcache * get_thread_regcache(process_stratum_target *target, ptid_t ptid)
void regcache_cooked_write_unsigned(struct regcache *regcache, int regnum, ULONGEST val)
void regcache_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
#define REGSET_VARIABLE_SIZE
void(* func)(remote_target *remote, char *)
static const char *const stap_register_indirection_prefixes[]
static const char *const stap_register_indirection_suffixes[]
void set_solib_svr4_fetch_link_map_offsets(struct gdbarch *gdbarch, struct link_map_offsets *(*flmo)(void))
const struct target_so_ops svr4_so_ops
int svr4_in_dynsym_resolve_code(CORE_ADDR pc)
CORE_ADDR svr4_fetch_objfile_link_map(struct objfile *objfile)
CORE_ADDR value_address() const
struct minimal_symbol * minsym
gdb_byte shadow_contents[BREAKPOINT_MAX]
const char * linkage_name() const
ULONGEST ioctl_TIOCGLCKTRMIOS
ULONGEST ioctl_TIOCMIWAIT
ULONGEST ioctl_TIOCGICOUNT
ULONGEST ioctl_TIOCSERGSTRUCT
ULONGEST ioctl_TIOCSERGETMULTI
ULONGEST ioctl_TIOCSERCONFIG
ULONGEST ioctl_TIOCSSOFTCAR
ULONGEST ioctl_TIOCSWINSZ
ULONGEST ioctl_TIOCSERSETMULTI
ULONGEST ioctl_TIOCSSERIAL
int size_serial_icounter_struct
ULONGEST ioctl_TIOCSPTLCK
ULONGEST ioctl_TIOCGSOFTCAR
ULONGEST ioctl_TIOCGSERIAL
ULONGEST ioctl_TIOCSERGETLSR
ULONGEST ioctl_TIOCGWINSZ
ULONGEST ioctl_TIOCSERGWILD
ULONGEST ioctl_TIOCSLCKTRMIOS
ULONGEST ioctl_TIOCSERSWILD
int size__old_kernel_stat
bool target_flag_1() const
void set_target_flag_1(bool target_flag_1)
int(* ppc_syscall_record)(struct regcache *regcache)
int ppc_vsr0_upper_regnum
gdb::optional< displaced_step_buffers > disp_step_buf
collect_regset_ftype * collect_regset
int(* in_dynsym_resolve_code)(CORE_ADDR pc)
static struct value * allocate(struct type *type)
const struct tdesc_feature * tdesc_find_feature(const struct target_desc *target_desc, const char *name)
int tdesc_numbered_register(const struct tdesc_feature *feature, struct tdesc_arch_data *data, int regno, const char *name)
static const registry< gdbarch >::key< tdesc_arch_data > tdesc_data
int tdesc_has_registers(const struct target_desc *target_desc)
scoped_restore_tmpl< int > make_scoped_restore_show_memory_breakpoints(int show)
int target_read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
int target_write_raw_memory(CORE_ADDR memaddr, const gdb_byte *myaddr, ssize_t len)
void trad_frame_set_reg_addr(struct trad_frame_cache *this_trad_cache, int regnum, CORE_ADDR addr)
void trad_frame_set_id(struct trad_frame_cache *this_trad_cache, struct frame_id this_id)
void tramp_frame_prepend_unwinder(struct gdbarch *gdbarch, const struct tramp_frame *tramp_frame)
#define TRAMP_SENTINEL_INSN
int user_reg_map_name_to_regnum(struct gdbarch *gdbarch, const char *name, int len)
void gdb_printf(struct ui_file *stream, const char *format,...)
void set_xml_syscall_file_name(struct gdbarch *gdbarch, const char *name)