GDB (xrefs)
|
#include "defs.h"
#include "gdb_string.h"
#include "gdb_assert.h"
#include "osabi.h"
#include "regcache.h"
#include "regset.h"
#include "gdbtypes.h"
#include "gdbcore.h"
#include "target.h"
#include "value.h"
#include "infcall.h"
#include "objfiles.h"
#include "breakpoint.h"
#include "rs6000-tdep.h"
#include "ppc-tdep.h"
#include "rs6000-aix-tdep.h"
#include "exceptions.h"
#include "xcoffread.h"
#include "solib.h"
#include "solib-aix.h"
#include "xml-utils.h"
Go to the source code of this file.
#define SIG_FRAME_FP_OFFSET 284 |
Definition at line 53 of file rs6000-aix-tdep.c.
#define SIG_FRAME_LR_OFFSET 108 |
Definition at line 52 of file rs6000-aix-tdep.c.
#define SIG_FRAME_PC_OFFSET 96 |
Definition at line 51 of file rs6000-aix-tdep.c.
Referenced by branch_dest().
void _initialize_rs6000_aix_tdep | ( | void | ) |
Definition at line 1098 of file rs6000-aix-tdep.c.
References _initialize_rs6000_aix_tdep, GDB_OSABI_AIX, gdbarch_register_osabi(), gdbarch_register_osabi_sniffer(), rs6000_aix_init_osabi(), and rs6000_aix_osabi_sniffer().
static CORE_ADDR branch_dest | ( | struct frame_info * | frame, |
int | opcode, | ||
int | instr, | ||
CORE_ADDR | pc, | ||
CORE_ADDR | safety | ||
) | [static] |
Definition at line 611 of file rs6000-aix-tdep.c.
References AIX_TEXT_SEGMENT_BASE, gdbarch_byte_order(), gdbarch_tdep(), get_frame_arch(), get_frame_base(), get_frame_register_unsigned(), int, gdbarch_tdep::ppc_ctr_regnum, gdbarch_tdep::ppc_lr_regnum, read_memory_unsigned_integer(), SIG_FRAME_PC_OFFSET, and gdbarch_tdep::wordsize.
Referenced by rs6000_software_single_step().
static const char* rs6000_aix_auto_wide_charset | ( | void | ) | [static] |
Definition at line 725 of file rs6000-aix-tdep.c.
Referenced by rs6000_aix_init_osabi().
static void rs6000_aix_collect_regset | ( | const struct regset * | regset, |
const struct regcache * | regcache, | ||
int | regnum, | ||
void * | gregs, | ||
size_t | len | ||
) | [static] |
Definition at line 128 of file rs6000-aix-tdep.c.
References ppc_collect_fpregset(), and ppc_collect_gregset().
static LONGEST rs6000_aix_core_xfer_shared_libraries_aix | ( | struct gdbarch * | gdbarch, |
gdb_byte * | readbuf, | ||
ULONGEST | offset, | ||
LONGEST | len | ||
) | [static] |
Definition at line 1013 of file rs6000-aix-tdep.c.
References _, core_bfd, do_cleanups(), error(), LONGEST, make_cleanup(), rs6000_aix_ld_info_to_xml(), xfree(), and xmalloc().
Referenced by rs6000_aix_init_osabi().
static struct ld_info rs6000_aix_extract_ld_info | ( | struct gdbarch * | gdbarch, |
const gdb_byte * | ldi_buf | ||
) | [static, read] |
Definition at line 875 of file rs6000-aix-tdep.c.
References builtin_type::builtin_data_ptr, builtin_type(), ld_info::dataorg, ld_info::datasize, extract_signed_integer(), extract_typed_address(), extract_unsigned_integer(), ld_info::fd, ld_info::filename, gdbarch_byte_order(), gdbarch_tdep(), ld_info32_desc, ld_info_desc::ldinfo_dataorg, ld_info_desc::ldinfo_datasize, ld_info_desc::ldinfo_fd, ld_info_desc::ldinfo_filename, ld_info_desc::ldinfo_next, ld_info_desc::ldinfo_textorg, ld_info_desc::ldinfo_textsize, ld_info::member_name, ld_info::next, field_info::offset, field_info::size, ld_info::textorg, ld_info::textsize, and gdbarch_tdep::wordsize.
Referenced by rs6000_aix_ld_info_to_xml().
static void rs6000_aix_init_osabi | ( | struct gdbarch_info | info, |
struct gdbarch * | gdbarch | ||
) | [static] |
Definition at line 1046 of file rs6000-aix-tdep.c.
References gdbarch_tdep(), gdbarch_tdep::lr_frame_offset, rs6000_aix_auto_wide_charset(), rs6000_aix_core_xfer_shared_libraries_aix(), rs6000_aix_regset_from_core_section(), rs6000_convert_from_func_ptr_addr(), rs6000_push_dummy_call(), rs6000_return_value(), rs6000_software_single_step(), set_gdbarch_auto_wide_charset(), set_gdbarch_convert_from_func_ptr_addr(), set_gdbarch_core_xfer_shared_libraries_aix(), set_gdbarch_displaced_step_copy_insn(), set_gdbarch_displaced_step_fixup(), set_gdbarch_displaced_step_free_closure(), set_gdbarch_displaced_step_location(), set_gdbarch_frame_red_zone_size(), set_gdbarch_long_double_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_regset_from_core_section(), set_gdbarch_return_value(), set_gdbarch_software_single_step(), set_solib_ops(), solib_aix_so_ops, and gdbarch_tdep::wordsize.
Referenced by _initialize_rs6000_aix_tdep().
LONGEST rs6000_aix_ld_info_to_xml | ( | struct gdbarch * | gdbarch, |
const gdb_byte * | ldi_buf, | ||
gdb_byte * | readbuf, | ||
ULONGEST | offset, | ||
LONGEST | len, | ||
int | close_ldinfo_fd | ||
) |
Definition at line 969 of file rs6000-aix-tdep.c.
References ld_info::fd, len, LONGEST, memcpy(), ld_info::next, obstack_grow_str, obstack_grow_str0, offset, rs6000_aix_extract_ld_info(), and rs6000_aix_shared_library_to_xml().
Referenced by rs6000_aix_core_xfer_shared_libraries_aix(), and rs6000_xfer_shared_libraries().
static enum gdb_osabi rs6000_aix_osabi_sniffer | ( | bfd * | abfd | ) | [static] |
Definition at line 738 of file rs6000-aix-tdep.c.
References gdb_assert, GDB_OSABI_AIX, GDB_OSABI_UNKNOWN, and xcoff_get_n_import_files().
Referenced by _initialize_rs6000_aix_tdep().
static struct regset* rs6000_aix_regset_from_core_section | ( | struct gdbarch * | gdbarch, |
const char * | sect_name, | ||
size_t | sect_size | ||
) | [static, read] |
Definition at line 156 of file rs6000-aix-tdep.c.
References rs6000_aix32_regset, rs6000_aix64_regset, and wordsize.
Referenced by rs6000_aix_init_osabi().
static void rs6000_aix_shared_library_to_xml | ( | struct ld_info * | ldi, |
struct obstack * | obstack | ||
) | [static] |
Definition at line 914 of file rs6000-aix-tdep.c.
References core_addr_to_string(), ld_info::dataorg, ld_info::datasize, ld_info::filename, ld_info::member_name, obstack_grow_str, p, pulongest(), ld_info::textorg, ld_info::textsize, xfree(), and xml_escape_text().
Referenced by rs6000_aix_ld_info_to_xml().
static void rs6000_aix_supply_regset | ( | const struct regset * | regset, |
struct regcache * | regcache, | ||
int | regnum, | ||
const void * | gregs, | ||
size_t | len | ||
) | [static] |
Definition at line 114 of file rs6000-aix-tdep.c.
References ppc_supply_fpregset(), and ppc_supply_gregset().
static CORE_ADDR rs6000_convert_from_func_ptr_addr | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | addr, | ||
struct target_ops * | targ | ||
) | [static] |
Definition at line 567 of file rs6000-aix-tdep.c.
References find_pc_section(), gdbarch_byte_order(), gdbarch_tdep(), read_memory_unsigned_integer(), gdb_exception::reason, RETURN_MASK_ERROR, obj_section::the_bfd_section, TRY_CATCH, and gdbarch_tdep::wordsize.
Referenced by rs6000_aix_init_osabi().
static CORE_ADDR rs6000_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] |
Definition at line 191 of file rs6000-aix-tdep.c.
References check_typedef(), convert_typed_floating(), find_function_addr(), fp_regnum, gdb_assert, gdbarch_byte_order(), gdbarch_sp_regnum(), gdbarch_tdep(), len, MAX_REGISTER_SIZE, memcpy(), memset(), ppc_floating_point_unit_p(), gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_gp0_regnum, gdbarch_tdep::ppc_lr_regnum, gdbarch_tdep::ppc_toc_regnum, regcache_cooked_read_unsigned(), regcache_cooked_write(), regcache_raw_write_signed(), regcache_raw_write_unsigned(), register_size(), register_type(), solib_aix_get_toc_value(), store_unsigned_integer(), target_store_registers(), type, TYPE_CODE, TYPE_CODE_FLT, TYPE_LENGTH, ULONGEST, value_contents(), value_type(), word, gdbarch_tdep::wordsize, and write_memory().
Referenced by rs6000_aix_init_osabi().
static enum return_value_convention rs6000_return_value | ( | struct gdbarch * | gdbarch, |
struct value * | function, | ||
struct type * | valtype, | ||
struct regcache * | regcache, | ||
gdb_byte * | readbuf, | ||
const gdb_byte * | writebuf | ||
) | [static] |
Definition at line 427 of file rs6000-aix-tdep.c.
References convert_typed_floating(), gdb_assert, gdbarch_byte_order(), gdbarch_tdep(), memcpy(), ppc_floating_point_unit_p(), gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_gp0_regnum, gdbarch_tdep::ppc_vr0_regnum, regcache_cooked_read(), regcache_cooked_read_unsigned(), regcache_cooked_write(), regcache_cooked_write_unsigned(), register_type(), regtype, RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, store_unsigned_integer(), TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_FLT, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_LENGTH, TYPE_VECTOR, ULONGEST, unpack_long(), and gdbarch_tdep::wordsize.
Referenced by rs6000_aix_init_osabi().
static int rs6000_software_single_step | ( | struct frame_info * | frame | ) | [static] |
Definition at line 684 of file rs6000-aix-tdep.c.
References branch_dest(), gdbarch_byte_order(), get_frame_address_space(), get_frame_arch(), get_frame_pc(), insert_single_step_breakpoint(), ppc_deal_with_atomic_sequence(), PPC_INSN_SIZE, and read_memory_integer().
Referenced by rs6000_aix_init_osabi().
Referenced by _initialize_rs6000_aix_tdep(), and initialize_all_files().
struct ld_info_desc ld_info32_desc [static] |
{ {0, 4}, {4, 4}, {8, 4}, {12, 4}, {16, 4}, {20, 4}, {24, 2}, }
Definition at line 828 of file rs6000-aix-tdep.c.
Referenced by rs6000_aix_extract_ld_info().
struct ld_info_desc ld_info64_desc [static] |
{ {0, 4}, {8, 4}, {16, 8}, {24, 8}, {32, 8}, {40, 8}, {48, 2}, }
Definition at line 841 of file rs6000-aix-tdep.c.
struct ppc_reg_offsets rs6000_aix32_reg_offsets [static] |
{ 208, 4, 4, 24, 28, 32, 36, 40, 44, 48, 336, 56, 4, -1, -1, -1 }
Definition at line 58 of file rs6000-aix-tdep.c.
struct regset rs6000_aix32_regset [static] |
Definition at line 138 of file rs6000-aix-tdep.c.
Referenced by rs6000_aix_regset_from_core_section().
struct ppc_reg_offsets rs6000_aix64_reg_offsets [static] |
{ 0, 8, 4, 264, 256, 288, 272, 280, 292, -1, 312, 296, 4, -1, -1, -1 }
Definition at line 83 of file rs6000-aix-tdep.c.
struct regset rs6000_aix64_regset [static] |
Definition at line 145 of file rs6000-aix-tdep.c.
Referenced by rs6000_aix_regset_from_core_section().