GDB (xrefs)
|
#include "defs.h"
#include "frame.h"
#include "inferior.h"
#include "symtab.h"
#include "target.h"
#include "gdbcore.h"
#include "gdbcmd.h"
#include "objfiles.h"
#include "arch-utils.h"
#include "regcache.h"
#include "regset.h"
#include "doublest.h"
#include "value.h"
#include "parser-defs.h"
#include "osabi.h"
#include "infcall.h"
#include "sim-regno.h"
#include "gdb/sim-ppc.h"
#include "reggroups.h"
#include "dwarf2-frame.h"
#include "target-descriptions.h"
#include "user-regs.h"
#include "libbfd.h"
#include "coff/internal.h"
#include "libcoff.h"
#include "coff/xcoff.h"
#include "libxcoff.h"
#include "elf-bfd.h"
#include "elf/ppc.h"
#include "solib-svr4.h"
#include "ppc-tdep.h"
#include "ppc-ravenscar-thread.h"
#include "gdb_assert.h"
#include "dis-asm.h"
#include "trad-frame.h"
#include "frame-unwind.h"
#include "frame-base.h"
#include "features/rs6000/powerpc-32.c"
#include "features/rs6000/powerpc-altivec32.c"
#include "features/rs6000/powerpc-vsx32.c"
#include "features/rs6000/powerpc-403.c"
#include "features/rs6000/powerpc-403gc.c"
#include "features/rs6000/powerpc-405.c"
#include "features/rs6000/powerpc-505.c"
#include "features/rs6000/powerpc-601.c"
#include "features/rs6000/powerpc-602.c"
#include "features/rs6000/powerpc-603.c"
#include "features/rs6000/powerpc-604.c"
#include "features/rs6000/powerpc-64.c"
#include "features/rs6000/powerpc-altivec64.c"
#include "features/rs6000/powerpc-vsx64.c"
#include "features/rs6000/powerpc-7400.c"
#include "features/rs6000/powerpc-750.c"
#include "features/rs6000/powerpc-860.c"
#include "features/rs6000/powerpc-e500.c"
#include "features/rs6000/rs6000.c"
Go to the source code of this file.
#define B_INSN 0x48000000 |
Definition at line 962 of file rs6000-tdep.c.
Referenced by ppc_displaced_step_fixup().
#define BC_INSN 0x40000000 |
Definition at line 963 of file rs6000-tdep.c.
Referenced by ppc_deal_with_atomic_sequence(), and ppc_displaced_step_fixup().
#define BL_DISPLACEMENT_MASK 0x03fffffc |
Definition at line 1289 of file rs6000-tdep.c.
Referenced by rs6000_skip_main_prologue().
#define BL_INSTRUCTION 0x48000001 |
Definition at line 1288 of file rs6000-tdep.c.
Referenced by rs6000_skip_main_prologue().
#define BL_MASK 0xfc000001 |
Definition at line 1287 of file rs6000-tdep.c.
Referenced by rs6000_skip_main_prologue().
#define BP_INSN 0x7C000008 |
Definition at line 965 of file rs6000-tdep.c.
Referenced by ppc_displaced_step_fixup().
#define BP_MASK 0xFC0007FE |
Definition at line 961 of file rs6000-tdep.c.
Referenced by ppc_displaced_step_fixup().
#define BRANCH_MASK 0xfc000000 |
Definition at line 960 of file rs6000-tdep.c.
Referenced by ppc_deal_with_atomic_sequence(), and ppc_displaced_step_fixup().
#define BXL_INSN 0x4c000000 |
Definition at line 964 of file rs6000-tdep.c.
Referenced by ppc_displaced_step_fixup().
#define GET_SRC_REG | ( | x | ) | (((x) >> 21) & 0x1f) |
Definition at line 1171 of file rs6000-tdep.c.
Referenced by skip_prologue(), and store_param_on_stack_p().
#define IS_DFP_PSEUDOREG | ( | tdep, | |
regnum | |||
) |
((tdep)->ppc_dl0_regnum >= 0 \ && (regnum) >= (tdep)->ppc_dl0_regnum \ && (regnum) < (tdep)->ppc_dl0_regnum + 16)
Definition at line 89 of file rs6000-tdep.c.
Referenced by rs6000_pseudo_register_read(), rs6000_pseudo_register_reggroup_p(), rs6000_pseudo_register_type(), rs6000_pseudo_register_write(), and rs6000_register_name().
#define IS_EFP_PSEUDOREG | ( | tdep, | |
regnum | |||
) |
((tdep)->ppc_efpr0_regnum >= 0 \ && (regnum) >= (tdep)->ppc_efpr0_regnum \ && (regnum) < (tdep)->ppc_efpr0_regnum + ppc_num_efprs)
Definition at line 99 of file rs6000-tdep.c.
Referenced by rs6000_pseudo_register_read(), rs6000_pseudo_register_reggroup_p(), rs6000_pseudo_register_type(), rs6000_pseudo_register_write(), and rs6000_register_name().
#define IS_SPE_PSEUDOREG | ( | tdep, | |
regnum | |||
) |
((tdep)->ppc_ev0_regnum >= 0 \ && (regnum) >= (tdep)->ppc_ev0_regnum \ && (regnum) < (tdep)->ppc_ev0_regnum + 32)
Definition at line 84 of file rs6000-tdep.c.
Referenced by e500_move_ev_register(), rs6000_pseudo_register_read(), rs6000_pseudo_register_reggroup_p(), rs6000_pseudo_register_type(), rs6000_pseudo_register_write(), rs6000_register_name(), and spe_register_p().
#define IS_VSX_PSEUDOREG | ( | tdep, | |
regnum | |||
) |
((tdep)->ppc_vsr0_regnum >= 0 \ && (regnum) >= (tdep)->ppc_vsr0_regnum \ && (regnum) < (tdep)->ppc_vsr0_regnum + ppc_num_vsrs)
Definition at line 94 of file rs6000-tdep.c.
Referenced by rs6000_pseudo_register_read(), rs6000_pseudo_register_reggroup_p(), rs6000_pseudo_register_type(), rs6000_pseudo_register_write(), and rs6000_register_name().
#define LDARX_INSTRUCTION 0x7c0000A8 |
Definition at line 1073 of file rs6000-tdep.c.
Referenced by ppc_deal_with_atomic_sequence().
#define LWARX_INSTRUCTION 0x7c000028 |
Definition at line 1072 of file rs6000-tdep.c.
Referenced by ppc_deal_with_atomic_sequence().
#define LWARX_MASK 0xfc0007fe |
Definition at line 1071 of file rs6000-tdep.c.
Referenced by ppc_deal_with_atomic_sequence().
#define SIGNED_SHORT | ( | x | ) |
Definition at line 1166 of file rs6000-tdep.c.
Referenced by skip_prologue().
#define STDCX_INSTRUCTION 0x7c0001ad |
Definition at line 1076 of file rs6000-tdep.c.
Referenced by ppc_deal_with_atomic_sequence().
#define STWCX_INSTRUCTION 0x7c00012d |
Definition at line 1075 of file rs6000-tdep.c.
Referenced by ppc_deal_with_atomic_sequence().
#define STWCX_MASK 0xfc0007ff |
Definition at line 1074 of file rs6000-tdep.c.
Referenced by ppc_deal_with_atomic_sequence().
typedef enum register_status(* move_ev_register_func)(struct regcache *, int, void *) |
Definition at line 2555 of file rs6000-tdep.c.
void _initialize_rs6000_tdep | ( | void | ) |
Definition at line 4316 of file rs6000-tdep.c.
References _, _initialize_rs6000_tdep, add_prefix_cmd(), add_setshow_auto_boolean_cmd(), add_setshow_boolean_cmd(), add_setshow_enum_cmd(), class_support, gdbarch_register(), initialize_tdesc_powerpc_32(), initialize_tdesc_powerpc_403(), initialize_tdesc_powerpc_403gc(), initialize_tdesc_powerpc_405(), initialize_tdesc_powerpc_505(), initialize_tdesc_powerpc_601(), initialize_tdesc_powerpc_602(), initialize_tdesc_powerpc_603(), initialize_tdesc_powerpc_604(), initialize_tdesc_powerpc_64(), initialize_tdesc_powerpc_7400(), initialize_tdesc_powerpc_750(), initialize_tdesc_powerpc_860(), initialize_tdesc_powerpc_altivec32(), initialize_tdesc_powerpc_altivec64(), initialize_tdesc_powerpc_e500(), initialize_tdesc_powerpc_vsx32(), initialize_tdesc_powerpc_vsx64(), initialize_tdesc_rs6000(), no_class, powerpc_set_soft_float(), powerpc_set_vector_abi(), powerpc_soft_float_global, powerpc_vector_abi_string, powerpc_vector_strings, rs6000_dump_tdep(), rs6000_gdbarch_init(), set_powerpc_command(), setlist, show_powerpc_command(), show_powerpc_exact_watchpoints(), showlist, and target_exact_watchpoints.
int altivec_register_p | ( | struct gdbarch * | gdbarch, |
int | regno | ||
) |
Definition at line 165 of file rs6000-tdep.c.
References gdbarch_tdep(), gdbarch_tdep::ppc_vr0_regnum, and gdbarch_tdep::ppc_vrsave_regnum.
Referenced by fetch_register(), and store_register().
static int bfd_uses_spe_extensions | ( | bfd * | abfd | ) | [static] |
Definition at line 3412 of file rs6000-tdep.c.
References size, type, gdbarch_tdep::vector_abi, xfree(), and xmalloc().
Referenced by rs6000_gdbarch_init().
static int bl_to_blrl_insn_p | ( | CORE_ADDR | pc, |
int | insn, | ||
enum bfd_endian | byte_order | ||
) | [static] |
Definition at line 1256 of file rs6000-tdep.c.
References int, and read_memory_integer().
Referenced by skip_prologue().
static enum register_status dfp_pseudo_register_read | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | reg_nr, | ||
gdb_byte * | buffer | ||
) | [static] |
Definition at line 2646 of file rs6000-tdep.c.
References gdbarch_byte_order(), gdbarch_tdep(), gdbarch_tdep::ppc_dl0_regnum, gdbarch_tdep::ppc_fp0_regnum, REG_VALID, regcache_raw_read(), and exsummary::status.
Referenced by rs6000_pseudo_register_read().
static void dfp_pseudo_register_write | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | reg_nr, | ||
const gdb_byte * | buffer | ||
) | [static] |
Definition at line 2676 of file rs6000-tdep.c.
References gdbarch_byte_order(), gdbarch_tdep(), gdbarch_tdep::ppc_dl0_regnum, gdbarch_tdep::ppc_fp0_regnum, and regcache_raw_write().
Referenced by rs6000_pseudo_register_write().
static enum register_status do_regcache_raw_read | ( | struct regcache * | regcache, |
int | regnum, | ||
void * | buffer | ||
) | [static] |
Definition at line 2616 of file rs6000-tdep.c.
References regcache_raw_read().
Referenced by e500_pseudo_register_read().
static enum register_status do_regcache_raw_write | ( | struct regcache * | regcache, |
int | regnum, | ||
void * | buffer | ||
) | [static] |
Definition at line 2622 of file rs6000-tdep.c.
References REG_VALID, and regcache_raw_write().
Referenced by e500_pseudo_register_write().
static enum register_status e500_move_ev_register | ( | move_ev_register_func | move, |
struct regcache * | regcache, | ||
int | ev_reg, | ||
void * | buffer | ||
) | [static] |
Definition at line 2583 of file rs6000-tdep.c.
References gdb_assert, gdbarch_byte_order(), gdbarch_tdep(), get_regcache_arch(), IS_SPE_PSEUDOREG, gdbarch_tdep::ppc_ev0_regnum, gdbarch_tdep::ppc_ev0_upper_regnum, gdbarch_tdep::ppc_gp0_regnum, REG_VALID, and exsummary::status.
Referenced by e500_pseudo_register_read(), and e500_pseudo_register_write().
static enum register_status e500_pseudo_register_read | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | reg_nr, | ||
gdb_byte * | buffer | ||
) | [static] |
Definition at line 2630 of file rs6000-tdep.c.
References do_regcache_raw_read(), and e500_move_ev_register().
Referenced by rs6000_pseudo_register_read().
static void e500_pseudo_register_write | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | reg_nr, | ||
const gdb_byte * | buffer | ||
) | [static] |
Definition at line 2637 of file rs6000-tdep.c.
References do_regcache_raw_write(), and e500_move_ev_register().
Referenced by rs6000_pseudo_register_write().
static enum register_status efpr_pseudo_register_read | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | reg_nr, | ||
gdb_byte * | buffer | ||
) | [static] |
Definition at line 2767 of file rs6000-tdep.c.
References gdbarch_tdep(), gdbarch_tdep::ppc_efpr0_regnum, gdbarch_tdep::ppc_vr0_regnum, regcache_raw_read_part(), and register_size().
Referenced by rs6000_pseudo_register_read().
static void efpr_pseudo_register_write | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | reg_nr, | ||
const gdb_byte * | buffer | ||
) | [static] |
Definition at line 2780 of file rs6000-tdep.c.
References gdbarch_tdep(), gdbarch_tdep::ppc_efpr0_regnum, gdbarch_tdep::ppc_vr0_regnum, regcache_raw_write_part(), and register_size().
Referenced by rs6000_pseudo_register_write().
static struct variant* find_variant_by_arch | ( | enum bfd_architecture | arch, |
unsigned long | mach | ||
) | [static, read] |
Definition at line 3073 of file rs6000-tdep.c.
References variant::arch, variant::mach, and variant::name.
Referenced by rs6000_gdbarch_init().
static int gdb_print_insn_powerpc | ( | bfd_vma | memaddr, |
disassemble_info * | info | ||
) | [static] |
Definition at line 3085 of file rs6000-tdep.c.
Referenced by rs6000_gdbarch_init().
static void init_sim_regno_table | ( | struct gdbarch * | arch | ) | [static] |
Definition at line 259 of file rs6000-tdep.c.
References gdbarch_num_regs(), GDBARCH_OBSTACK_CALLOC, gdbarch_pc_regnum(), gdbarch_tdep(), gdbarch_tdep::ppc_acc_regnum, gdbarch_tdep::ppc_cr_regnum, gdbarch_tdep::ppc_ev0_upper_regnum, gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_fpscr_regnum, gdbarch_tdep::ppc_gp0_regnum, ppc_num_fprs, ppc_num_gprs, ppc_num_srs, ppc_num_vrs, gdbarch_tdep::ppc_ps_regnum, gdbarch_tdep::ppc_vr0_regnum, set_sim_regno(), gdbarch_tdep::sim_regno, and user_reg_map_name_to_regnum().
Referenced by rs6000_register_sim_regno().
static int insn_changes_sp_or_jumps | ( | unsigned long | insn | ) | [static] |
Definition at line 822 of file rs6000-tdep.c.
Referenced by rs6000_in_function_epilogue_p().
static void powerpc_set_soft_float | ( | char * | args, |
int | from_tty, | ||
struct cmd_list_element * | c | ||
) | [static] |
Definition at line 4193 of file rs6000-tdep.c.
References _, gdbarch_info_init(), gdbarch_update_p(), and internal_error().
Referenced by _initialize_rs6000_tdep().
static void powerpc_set_vector_abi | ( | char * | args, |
int | from_tty, | ||
struct cmd_list_element * | c | ||
) | [static] |
Definition at line 4205 of file rs6000-tdep.c.
References _, gdbarch_info_init(), gdbarch_update_p(), internal_error(), POWERPC_VEC_AUTO, POWERPC_VEC_LAST, powerpc_vector_abi_global, powerpc_vector_abi_string, and powerpc_vector_strings.
Referenced by _initialize_rs6000_tdep().
int ppc_altivec_support_p | ( | struct gdbarch * | gdbarch | ) |
Definition at line 230 of file rs6000-tdep.c.
References gdbarch_tdep(), gdbarch_tdep::ppc_vr0_regnum, and gdbarch_tdep::ppc_vrsave_regnum.
Referenced by ppc_collect_vrregset(), and ppc_supply_vrregset().
void ppc_collect_fpregset | ( | const struct regset * | regset, |
const struct regcache * | regcache, | ||
int | regnum, | ||
void * | fpregs, | ||
size_t | len | ||
) |
Definition at line 707 of file rs6000-tdep.c.
References regset::descr, ppc_reg_offsets::f0_offset, ppc_reg_offsets::fpscr_offset, ppc_reg_offsets::fpscr_size, gdbarch_tdep(), get_regcache_arch(), offset, ppc_collect_reg(), ppc_floating_point_unit_p(), gdbarch_tdep::ppc_fp0_regnum, ppc_fpreg_offset(), gdbarch_tdep::ppc_fpscr_regnum, and ppc_num_fprs.
Referenced by fill_fpregset(), ppcnbsd_store_inferior_registers(), ppcobsd_collect_gregset(), ppcobsd_store_registers(), and rs6000_aix_collect_regset().
void ppc_collect_gregset | ( | const struct regset * | regset, |
const struct regcache * | regcache, | ||
int | regnum, | ||
void * | gregs, | ||
size_t | len | ||
) |
Definition at line 660 of file rs6000-tdep.c.
References ppc_reg_offsets::cr_offset, ppc_reg_offsets::ctr_offset, regset::descr, gdbarch_pc_regnum(), gdbarch_tdep(), get_regcache_arch(), ppc_reg_offsets::gpr_size, ppc_reg_offsets::lr_offset, ppc_reg_offsets::mq_offset, offset, ppc_reg_offsets::pc_offset, ppc_collect_reg(), gdbarch_tdep::ppc_cr_regnum, gdbarch_tdep::ppc_ctr_regnum, gdbarch_tdep::ppc_gp0_regnum, ppc_greg_offset(), gdbarch_tdep::ppc_lr_regnum, gdbarch_tdep::ppc_mq_regnum, ppc_num_gprs, gdbarch_tdep::ppc_ps_regnum, gdbarch_tdep::ppc_xer_regnum, ppc_reg_offsets::ps_offset, ppc_reg_offsets::r0_offset, ppc_reg_offsets::xer_offset, and ppc_reg_offsets::xr_size.
Referenced by fill_gregset(), ppc_linux_collect_gregset(), ppcnbsd_store_inferior_registers(), ppcobsd_collect_gregset(), ppcobsd_store_registers(), and rs6000_aix_collect_regset().
void ppc_collect_reg | ( | const struct regcache * | regcache, |
int | regnum, | ||
gdb_byte * | regs, | ||
size_t | offset, | ||
int | regsize | ||
) |
Definition at line 401 of file rs6000-tdep.c.
References gdbarch_byte_order(), get_regcache_arch(), memset(), regcache_raw_collect(), and register_size().
Referenced by ppc_collect_fpregset(), ppc_collect_gregset(), ppc_collect_vrregset(), ppc_collect_vsxregset(), and ppc_linux_collect_gregset().
void ppc_collect_vrregset | ( | const struct regset * | regset, |
const struct regcache * | regcache, | ||
int | regnum, | ||
void * | vrregs, | ||
size_t | len | ||
) |
Definition at line 780 of file rs6000-tdep.c.
References regset::descr, gdbarch_tdep(), get_regcache_arch(), offset, ppc_altivec_support_p(), ppc_collect_reg(), ppc_num_vrs, gdbarch_tdep::ppc_vr0_regnum, ppc_vrreg_offset(), gdbarch_tdep::ppc_vrsave_regnum, ppc_reg_offsets::vr0_offset, ppc_reg_offsets::vrsave_offset, and ppc_reg_offsets::vscr_offset.
void ppc_collect_vsxregset | ( | const struct regset * | regset, |
const struct regcache * | regcache, | ||
int | regnum, | ||
void * | vsxregs, | ||
size_t | len | ||
) |
Definition at line 746 of file rs6000-tdep.c.
References gdbarch_tdep(), get_regcache_arch(), ppc_collect_reg(), gdbarch_tdep::ppc_vsr0_upper_regnum, and ppc_vsx_support_p().
int ppc_deal_with_atomic_sequence | ( | struct frame_info * | frame | ) |
Definition at line 1084 of file rs6000-tdep.c.
References BC_INSN, BRANCH_MASK, gdbarch_byte_order(), get_frame_address_space(), get_frame_arch(), get_frame_pc(), insert_single_step_breakpoint(), LDARX_INSTRUCTION, LWARX_INSTRUCTION, LWARX_MASK, PPC_INSN_SIZE, read_memory_integer(), STDCX_INSTRUCTION, STWCX_INSTRUCTION, and STWCX_MASK.
Referenced by rs6000_gdbarch_init(), and rs6000_software_single_step().
static void ppc_displaced_step_fixup | ( | struct gdbarch * | gdbarch, |
struct displaced_step_closure * | closure, | ||
CORE_ADDR | from, | ||
CORE_ADDR | to, | ||
struct regcache * | regs | ||
) | [static] |
Definition at line 970 of file rs6000-tdep.c.
References B_INSN, BC_INSN, BP_INSN, BP_MASK, BRANCH_MASK, BXL_INSN, debug_displaced, extract_unsigned_integer(), fprintf_unfiltered(), gdb_stdlog, gdbarch_byte_order(), gdbarch_pc_regnum(), LONGEST, offset, paddress(), PPC_INSN_SIZE, regcache_cooked_read_unsigned(), regcache_cooked_write_unsigned(), to, and ULONGEST.
Referenced by rs6000_gdbarch_init().
static int ppc_displaced_step_hw_singlestep | ( | struct gdbarch * | gdbarch, |
struct displaced_step_closure * | closure | ||
) | [static] |
Definition at line 1064 of file rs6000-tdep.c.
Referenced by rs6000_gdbarch_init().
static void ppc_dwarf2_frame_init_reg | ( | struct gdbarch * | gdbarch, |
int | regnum, | ||
struct dwarf2_frame_state_reg * | reg, | ||
struct frame_info * | this_frame | ||
) | [static] |
Definition at line 3347 of file rs6000-tdep.c.
References DWARF2_FRAME_REG_CFA, DWARF2_FRAME_REG_RA, DWARF2_FRAME_REG_SAME_VALUE, DWARF2_FRAME_REG_UNDEFINED, gdbarch_pc_regnum(), gdbarch_sp_regnum(), gdbarch_tdep(), dwarf2_frame_state_reg::how, gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_gp0_regnum, gdbarch_tdep::ppc_vr0_regnum, and gdbarch_tdep::ppc_vrsave_regnum.
Referenced by rs6000_gdbarch_init().
int ppc_floating_point_unit_p | ( | struct gdbarch * | gdbarch | ) |
Definition at line 209 of file rs6000-tdep.c.
References gdbarch_tdep(), gdbarch_tdep::ppc_fp0_regnum, and gdbarch_tdep::ppc_fpscr_regnum.
Referenced by fetch_regs_kernel_thread(), fetch_regs_user_thread(), fill_fprs(), getfpregs_supplies(), ppc64_sysv_abi_push_dummy_call(), ppc64_sysv_abi_return_value(), ppc_collect_fpregset(), ppc_linux_sigtramp_cache(), ppc_supply_fpregset(), rs6000_frame_cache(), rs6000_lynx178_push_dummy_call(), rs6000_lynx178_return_value(), rs6000_push_dummy_call(), rs6000_return_value(), store_regs_kernel_thread(), store_regs_user_thread(), and supply_fprs().
static int ppc_fpreg_offset | ( | struct gdbarch_tdep * | tdep, |
const struct ppc_reg_offsets * | offsets, | ||
int | regnum | ||
) | [static] |
Definition at line 465 of file rs6000-tdep.c.
References ppc_reg_offsets::f0_offset, ppc_reg_offsets::fpscr_offset, gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_fpscr_regnum, and ppc_num_fprs.
Referenced by ppc_collect_fpregset(), and ppc_supply_fpregset().
static int ppc_greg_offset | ( | struct gdbarch * | gdbarch, |
struct gdbarch_tdep * | tdep, | ||
const struct ppc_reg_offsets * | offsets, | ||
int | regnum, | ||
int * | regsize | ||
) | [static] |
Definition at line 427 of file rs6000-tdep.c.
References ppc_reg_offsets::cr_offset, ppc_reg_offsets::ctr_offset, gdbarch_pc_regnum(), ppc_reg_offsets::gpr_size, ppc_reg_offsets::lr_offset, ppc_reg_offsets::mq_offset, ppc_reg_offsets::pc_offset, gdbarch_tdep::ppc_cr_regnum, gdbarch_tdep::ppc_ctr_regnum, gdbarch_tdep::ppc_gp0_regnum, gdbarch_tdep::ppc_lr_regnum, gdbarch_tdep::ppc_mq_regnum, ppc_num_gprs, gdbarch_tdep::ppc_ps_regnum, gdbarch_tdep::ppc_xer_regnum, ppc_reg_offsets::ps_offset, ppc_reg_offsets::r0_offset, ppc_reg_offsets::xer_offset, and ppc_reg_offsets::xr_size.
Referenced by ppc_collect_gregset(), and ppc_supply_gregset().
CORE_ADDR ppc_insn_d_field | ( | unsigned int | insn | ) |
Definition at line 4295 of file rs6000-tdep.c.
Referenced by ppc64_standard_linkage1_target(), ppc64_standard_linkage2_target(), and ppc_skip_trampoline_code().
CORE_ADDR ppc_insn_ds_field | ( | unsigned int | insn | ) |
Definition at line 4305 of file rs6000-tdep.c.
Referenced by ppc64_standard_linkage1_target(), ppc64_standard_linkage2_target(), and ppc64_standard_linkage3_target().
int ppc_insns_match_pattern | ( | struct frame_info * | frame, |
CORE_ADDR | pc, | ||
struct ppc_insn_pattern * | pattern, | ||
unsigned int * | insns | ||
) |
Definition at line 4266 of file rs6000-tdep.c.
References gdbarch::data, ppc_insn_pattern::mask, and read_insn().
Referenced by ppc64_skip_trampoline_code(), and ppc_skip_trampoline_code().
void ppc_supply_fpregset | ( | const struct regset * | regset, |
struct regcache * | regcache, | ||
int | regnum, | ||
const void * | fpregs, | ||
size_t | len | ||
) |
Definition at line 547 of file rs6000-tdep.c.
References regset::descr, ppc_reg_offsets::f0_offset, ppc_reg_offsets::fpscr_offset, ppc_reg_offsets::fpscr_size, gdbarch_tdep(), get_regcache_arch(), offset, ppc_floating_point_unit_p(), gdbarch_tdep::ppc_fp0_regnum, ppc_fpreg_offset(), gdbarch_tdep::ppc_fpscr_regnum, ppc_num_fprs, and ppc_supply_reg().
Referenced by ppcfbsd_fetch_inferior_registers(), ppcnbsd_fetch_inferior_registers(), ppcobsd_fetch_registers(), ppcobsd_supply_gregset(), rs6000_aix_supply_regset(), and supply_fpregset().
void ppc_supply_gregset | ( | const struct regset * | regset, |
struct regcache * | regcache, | ||
int | regnum, | ||
const void * | gregs, | ||
size_t | len | ||
) |
Definition at line 502 of file rs6000-tdep.c.
References ppc_reg_offsets::cr_offset, ppc_reg_offsets::ctr_offset, regset::descr, gdbarch_pc_regnum(), gdbarch_tdep(), get_regcache_arch(), ppc_reg_offsets::gpr_size, ppc_reg_offsets::lr_offset, ppc_reg_offsets::mq_offset, offset, ppc_reg_offsets::pc_offset, gdbarch_tdep::ppc_cr_regnum, gdbarch_tdep::ppc_ctr_regnum, gdbarch_tdep::ppc_gp0_regnum, ppc_greg_offset(), gdbarch_tdep::ppc_lr_regnum, gdbarch_tdep::ppc_mq_regnum, ppc_num_gprs, gdbarch_tdep::ppc_ps_regnum, ppc_supply_reg(), gdbarch_tdep::ppc_xer_regnum, ppc_reg_offsets::ps_offset, ppc_reg_offsets::r0_offset, ppc_reg_offsets::xer_offset, and ppc_reg_offsets::xr_size.
Referenced by ppc_linux_supply_gregset(), ppcnbsd_fetch_inferior_registers(), ppcobsd_fetch_registers(), ppcobsd_supply_gregset(), rs6000_aix_supply_regset(), and supply_gregset().
void ppc_supply_reg | ( | struct regcache * | regcache, |
int | regnum, | ||
const gdb_byte * | regs, | ||
size_t | offset, | ||
int | regsize | ||
) |
Definition at line 380 of file rs6000-tdep.c.
References gdbarch_byte_order(), get_regcache_arch(), regcache_raw_supply(), and register_size().
Referenced by ppc_linux_supply_gregset(), ppc_supply_fpregset(), ppc_supply_gregset(), ppc_supply_vrregset(), and ppc_supply_vsxregset().
void ppc_supply_vrregset | ( | const struct regset * | regset, |
struct regcache * | regcache, | ||
int | regnum, | ||
const void * | vrregs, | ||
size_t | len | ||
) |
Definition at line 615 of file rs6000-tdep.c.
References regset::descr, gdbarch_tdep(), get_regcache_arch(), offset, ppc_altivec_support_p(), ppc_num_vrs, ppc_supply_reg(), gdbarch_tdep::ppc_vr0_regnum, ppc_vrreg_offset(), gdbarch_tdep::ppc_vrsave_regnum, ppc_reg_offsets::vr0_offset, ppc_reg_offsets::vrsave_offset, and ppc_reg_offsets::vscr_offset.
void ppc_supply_vsxregset | ( | const struct regset * | regset, |
struct regcache * | regcache, | ||
int | regnum, | ||
const void * | vsxregs, | ||
size_t | len | ||
) |
Definition at line 584 of file rs6000-tdep.c.
References gdbarch_tdep(), get_regcache_arch(), ppc_supply_reg(), gdbarch_tdep::ppc_vsr0_upper_regnum, and ppc_vsx_support_p().
static int ppc_vrreg_offset | ( | struct gdbarch_tdep * | tdep, |
const struct ppc_reg_offsets * | offsets, | ||
int | regnum | ||
) | [static] |
Definition at line 480 of file rs6000-tdep.c.
References ppc_num_vrs, gdbarch_tdep::ppc_vr0_regnum, gdbarch_tdep::ppc_vrsave_regnum, ppc_reg_offsets::vr0_offset, ppc_reg_offsets::vrsave_offset, and ppc_reg_offsets::vscr_offset.
Referenced by ppc_collect_vrregset(), and ppc_supply_vrregset().
static int ppc_vsx_support_p | ( | struct gdbarch * | gdbarch | ) | [static] |
Definition at line 220 of file rs6000-tdep.c.
References gdbarch_tdep(), and gdbarch_tdep::ppc_vsr0_regnum.
Referenced by ppc_collect_vsxregset(), and ppc_supply_vsxregset().
static unsigned int read_insn | ( | struct frame_info * | frame, |
CORE_ADDR | pc | ||
) | [static] |
Definition at line 4244 of file rs6000-tdep.c.
References gdbarch::byte_order, gdbarch_byte_order(), get_frame_arch(), and read_memory_unsigned_integer().
Referenced by ppc_insns_match_pattern().
static int rs6000_adjust_frame_regnum | ( | struct gdbarch * | gdbarch, |
int | num, | ||
int | eh_frame_p | ||
) | [static] |
Definition at line 2930 of file rs6000-tdep.c.
Referenced by rs6000_gdbarch_init().
static const unsigned char* rs6000_breakpoint_from_pc | ( | struct gdbarch * | gdbarch, |
CORE_ADDR * | bp_addr, | ||
int * | bp_size | ||
) | [static] |
Definition at line 947 of file rs6000-tdep.c.
References gdbarch_byte_order().
Referenced by rs6000_gdbarch_init().
static struct type* rs6000_builtin_type_vec128 | ( | struct gdbarch * | gdbarch | ) | [static, read] |
Definition at line 2325 of file rs6000-tdep.c.
References append_composite_type_field(), arch_composite_type(), builtin_type::builtin_double, builtin_type::builtin_float, builtin_type::builtin_int16, builtin_type::builtin_int32, builtin_type::builtin_int8, builtin_type(), builtin_type::builtin_uint128, gdbarch_tdep(), init_vector_type(), gdbarch_tdep::ppc_builtin_type_vec128, TYPE_CODE_UNION, TYPE_NAME, and TYPE_VECTOR.
Referenced by rs6000_pseudo_register_type().
static struct type* rs6000_builtin_type_vec64 | ( | struct gdbarch * | gdbarch | ) | [static, read] |
Definition at line 2280 of file rs6000-tdep.c.
References append_composite_type_field(), arch_composite_type(), builtin_type::builtin_float, builtin_type::builtin_int16, builtin_type::builtin_int32, builtin_type::builtin_int64, builtin_type::builtin_int8, builtin_type(), gdbarch_tdep(), init_vector_type(), gdbarch_tdep::ppc_builtin_type_vec64, TYPE_CODE_UNION, TYPE_NAME, and TYPE_VECTOR.
Referenced by rs6000_pseudo_register_type().
static int rs6000_convert_register_p | ( | struct gdbarch * | gdbarch, |
int | regnum, | ||
struct type * | type | ||
) | [static] |
Definition at line 2501 of file rs6000-tdep.c.
References gdbarch_tdep(), gdbarch_tdep::ppc_fp0_regnum, ppc_num_fprs, TYPE_CODE, TYPE_CODE_FLT, and TYPE_LENGTH.
Referenced by rs6000_gdbarch_init().
static struct frame_id rs6000_dummy_id | ( | struct gdbarch * | gdbarch, |
struct frame_info * | this_frame | ||
) | [static, read] |
Definition at line 3101 of file rs6000-tdep.c.
References frame_id_build(), gdbarch_sp_regnum(), get_frame_pc(), and get_frame_register_unsigned().
Referenced by rs6000_gdbarch_init().
static void rs6000_dump_tdep | ( | struct gdbarch * | gdbarch, |
struct ui_file * | file | ||
) | [static] |
Definition at line 4166 of file rs6000-tdep.c.
References gdbarch_tdep().
Referenced by _initialize_rs6000_tdep().
static int rs6000_dwarf2_reg_to_regnum | ( | struct gdbarch * | gdbarch, |
int | num | ||
) | [static] |
Definition at line 2885 of file rs6000-tdep.c.
References gdbarch_tdep(), gdbarch_tdep::ppc_acc_regnum, gdbarch_tdep::ppc_cr_regnum, gdbarch_tdep::ppc_ctr_regnum, gdbarch_tdep::ppc_ev0_upper_regnum, gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_gp0_regnum, gdbarch_tdep::ppc_lr_regnum, gdbarch_tdep::ppc_mq_regnum, gdbarch_tdep::ppc_spefscr_regnum, gdbarch_tdep::ppc_vr0_regnum, gdbarch_tdep::ppc_vrsave_regnum, and gdbarch_tdep::ppc_xer_regnum.
Referenced by rs6000_gdbarch_init().
static unsigned long rs6000_fetch_instruction | ( | struct gdbarch * | gdbarch, |
const CORE_ADDR | pc | ||
) | [static] |
Definition at line 1292 of file rs6000-tdep.c.
References extract_unsigned_integer(), gdbarch_byte_order(), and target_read_memory().
Referenced by rs6000_skip_stack_check().
static CORE_ADDR rs6000_fetch_pointer_argument | ( | struct frame_info * | frame, |
int | argi, | ||
struct type * | type | ||
) | [static] |
Definition at line 938 of file rs6000-tdep.c.
References get_frame_register_unsigned().
Referenced by rs6000_gdbarch_init().
static CORE_ADDR rs6000_frame_align | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | addr | ||
) | [static] |
Definition at line 2171 of file rs6000-tdep.c.
Referenced by rs6000_gdbarch_init().
static CORE_ADDR rs6000_frame_base_address | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static] |
Definition at line 3323 of file rs6000-tdep.c.
References rs6000_frame_cache::initial_sp, and rs6000_frame_cache().
static struct frame_base* rs6000_frame_base_sniffer | ( | struct frame_info * | this_frame | ) | [static, read] |
Definition at line 3338 of file rs6000-tdep.c.
References rs6000_frame_base.
Referenced by rs6000_gdbarch_init().
static struct rs6000_frame_cache* rs6000_frame_cache | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static, read] |
Definition at line 3116 of file rs6000-tdep.c.
References trad_frame_saved_reg::addr, rs6000_framedata::alloca_reg, rs6000_frame_cache::base, rs6000_framedata::cr_offset, rs6000_framedata::ev_offset, rs6000_framedata::fpr_offset, FRAME_OBSTACK_ZALLOC, rs6000_framedata::frameless, func, gdbarch_byte_order(), gdbarch_pc_regnum(), gdbarch_sp_regnum(), gdbarch_tdep(), get_frame_arch(), get_frame_func(), get_frame_pc(), get_frame_register_unsigned(), get_pc_function_start(), rs6000_framedata::gpr_mask, rs6000_framedata::gpr_offset, rs6000_frame_cache::initial_sp, gdbarch_tdep::lr_frame_offset, rs6000_framedata::lr_offset, rs6000_framedata::lr_register, gdbarch_tdep::ppc_cr_regnum, gdbarch_tdep::ppc_ev0_regnum, ppc_floating_point_unit_p(), gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_gp0_regnum, gdbarch_tdep::ppc_lr_regnum, ppc_num_fprs, ppc_num_gprs, gdbarch_tdep::ppc_vr0_regnum, gdbarch_tdep::ppc_vrsave_regnum, read_memory_unsigned_integer(), trad_frame_saved_reg::realreg, register_size(), rs6000_framedata::saved_ev, rs6000_framedata::saved_fpr, rs6000_framedata::saved_gpr, rs6000_frame_cache::saved_regs, rs6000_framedata::saved_vr, skip_prologue(), trad_frame_alloc_saved_regs(), trad_frame_set_value(), rs6000_framedata::vr_offset, rs6000_framedata::vrsave_offset, gdbarch_tdep::wordsize, and wordsize.
Referenced by rs6000_frame_base_address(), rs6000_frame_prev_register(), and rs6000_frame_this_id().
static struct value* rs6000_frame_prev_register | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 3303 of file rs6000-tdep.c.
References rs6000_frame_cache(), rs6000_frame_cache::saved_regs, and trad_frame_get_prev_register().
static void rs6000_frame_this_id | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
struct frame_id * | this_id | ||
) | [static] |
Definition at line 3290 of file rs6000-tdep.c.
References rs6000_frame_cache::base, frame_id_build(), get_frame_func(), and rs6000_frame_cache().
static struct gdbarch* rs6000_gdbarch_init | ( | struct gdbarch_info | info, |
struct gdbarch_list * | arches | ||
) | [static, read] |
Definition at line 3532 of file rs6000-tdep.c.
References gdbarch_info::abfd, AUTO_BOOLEAN_AUTO, AUTO_BOOLEAN_FALSE, AUTO_BOOLEAN_TRUE, gdbarch_info::bfd_arch_info, bfd_uses_spe_extensions(), core_addr_lessthan(), displaced_step_at_entry_point(), dwarf2_append_unwinders(), dwarf2_frame_set_adjust_regnum(), dwarf2_frame_set_init_reg(), find_variant_by_arch(), frame_base_append_sniffer(), frame_unwind_append_unwinder(), gdb_assert, GDB_OSABI_LINUX, GDB_OSABI_NETBSD_AOUT, GDB_OSABI_NETBSD_ELF, GDB_OSABI_UNKNOWN, gdb_print_insn_powerpc(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), gdbarch_num_pseudo_regs(), gdbarch_num_regs(), gdbarch_tdep(), gdbarch_tdep::lr_frame_offset, gdbarch_list::next, gdbarch_info::osabi, powerpc_soft_float_global, POWERPC_VEC_ALTIVEC, POWERPC_VEC_AUTO, POWERPC_VEC_GENERIC, POWERPC_VEC_SPE, powerpc_vector_abi_global, ppc64_sysv_abi_push_dummy_call(), ppc64_sysv_abi_return_value(), gdbarch_tdep::ppc_acc_regnum, gdbarch_tdep::ppc_cr_regnum, PPC_CR_REGNUM, gdbarch_tdep::ppc_ctr_regnum, PPC_CTR_REGNUM, ppc_deal_with_atomic_sequence(), ppc_displaced_step_fixup(), ppc_displaced_step_hw_singlestep(), gdbarch_tdep::ppc_dl0_regnum, ppc_dwarf2_frame_init_reg(), gdbarch_tdep::ppc_efpr0_regnum, gdbarch_tdep::ppc_ev0_regnum, gdbarch_tdep::ppc_ev0_upper_regnum, PPC_F0_REGNUM, gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_fpscr_regnum, PPC_FPSCR_REGNUM, gdbarch_tdep::ppc_gp0_regnum, PPC_INSN_SIZE, gdbarch_tdep::ppc_lr_regnum, PPC_LR_REGNUM, gdbarch_tdep::ppc_mq_regnum, PPC_MQ_REGNUM, PPC_MSR_REGNUM, ppc_num_fprs, ppc_num_gprs, PPC_NUM_REGS, ppc_num_vshrs, PPC_PC_REGNUM, gdbarch_tdep::ppc_ps_regnum, PPC_R0_REGNUM, PPC_SPE_ACC_REGNUM, PPC_SPE_FSCR_REGNUM, PPC_SPE_UPPER_GP0_REGNUM, gdbarch_tdep::ppc_spefscr_regnum, ppc_sysv_abi_push_dummy_call(), ppc_sysv_abi_return_value(), gdbarch_tdep::ppc_toc_regnum, gdbarch_tdep::ppc_vr0_regnum, PPC_VR0_REGNUM, gdbarch_tdep::ppc_vrsave_regnum, PPC_VRSAVE_REGNUM, PPC_VSCR_REGNUM, gdbarch_tdep::ppc_vsr0_regnum, gdbarch_tdep::ppc_vsr0_upper_regnum, PPC_VSR0_UPPER_REGNUM, gdbarch_tdep::ppc_xer_regnum, PPC_XER_REGNUM, register_e500_ravenscar_ops(), register_ppc_ravenscar_ops(), rs6000_adjust_frame_regnum(), rs6000_breakpoint_from_pc(), rs6000_convert_register_p(), rs6000_dummy_id(), rs6000_dwarf2_reg_to_regnum(), rs6000_fetch_pointer_argument(), rs6000_frame_align(), rs6000_frame_base_sniffer(), rs6000_in_function_epilogue_p(), rs6000_in_solib_return_trampoline(), rs6000_pseudo_register_read(), rs6000_pseudo_register_reggroup_p(), rs6000_pseudo_register_type(), rs6000_pseudo_register_write(), rs6000_register_name(), rs6000_register_sim_regno(), rs6000_register_to_value(), rs6000_skip_main_prologue(), rs6000_skip_prologue(), rs6000_skip_trampoline_code(), rs6000_stab_reg_to_regnum(), rs6000_unwind_pc(), rs6000_value_to_register(), set_gdbarch_believe_pcc_promotion(), set_gdbarch_breakpoint_from_pc(), set_gdbarch_char_signed(), set_gdbarch_convert_register_p(), set_gdbarch_deprecated_fp_regnum(), set_gdbarch_displaced_step_copy_insn(), set_gdbarch_displaced_step_fixup(), set_gdbarch_displaced_step_free_closure(), set_gdbarch_displaced_step_hw_singlestep(), set_gdbarch_displaced_step_location(), set_gdbarch_double_bit(), set_gdbarch_dummy_id(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_fetch_pointer_argument(), set_gdbarch_float_bit(), set_gdbarch_fp0_regnum(), set_gdbarch_frame_align(), set_gdbarch_frame_args_skip(), set_gdbarch_frame_red_zone_size(), set_gdbarch_have_nonsteppable_watchpoint(), set_gdbarch_in_function_epilogue_p(), set_gdbarch_in_solib_return_trampoline(), set_gdbarch_inner_than(), set_gdbarch_int_bit(), set_gdbarch_long_bit(), set_gdbarch_long_double_bit(), set_gdbarch_long_long_bit(), set_gdbarch_max_insn_length(), set_gdbarch_num_pseudo_regs(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_print_insn(), set_gdbarch_ps_regnum(), set_gdbarch_pseudo_register_read(), set_gdbarch_pseudo_register_write(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_register_name(), set_gdbarch_register_sim_regno(), set_gdbarch_register_to_value(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_skip_main_prologue(), set_gdbarch_skip_prologue(), set_gdbarch_skip_trampoline_code(), set_gdbarch_software_single_step(), set_gdbarch_sofun_address_maybe_missing(), set_gdbarch_sp_regnum(), set_gdbarch_stab_reg_to_regnum(), set_gdbarch_unwind_pc(), set_gdbarch_value_to_register(), set_tdesc_pseudo_register_reggroup_p(), set_tdesc_pseudo_register_type(), simple_displaced_step_copy_insn(), simple_displaced_step_free_closure(), gdbarch_tdep::soft_float, gdbarch_info::target_desc, gdbarch_info::tdep_info, variant::tdesc, tdesc_data, tdesc_data_alloc(), tdesc_data_cleanup(), tdesc_find_feature(), tdesc_has_registers(), tdesc_numbered_register(), tdesc_numbered_register_choices(), tdesc_register_size(), tdesc_use_registers(), gdbarch_tdep::vector_abi, gdbarch_tdep::wordsize, and XCALLOC.
Referenced by _initialize_rs6000_tdep().
static int rs6000_in_function_epilogue_p | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc | ||
) | [static] |
Definition at line 874 of file rs6000-tdep.c.
References extract_unsigned_integer(), find_pc_partial_function(), gdbarch_byte_order(), gdbarch_tdep(), get_current_frame(), get_frame_register_unsigned(), insn_changes_sp_or_jumps(), gdbarch_tdep::ppc_ctr_regnum, PPC_INSN_SIZE, PPC_MAX_EPILOGUE_INSTRUCTIONS, and safe_frame_unwind_memory().
Referenced by rs6000_gdbarch_init().
static int rs6000_in_solib_return_trampoline | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc, | ||
const char * | name | ||
) | [static] |
Definition at line 2200 of file rs6000-tdep.c.
Referenced by rs6000_gdbarch_init(), and rs6000_skip_trampoline_code().
static enum register_status rs6000_pseudo_register_read | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | reg_nr, | ||
gdb_byte * | buffer | ||
) | [static] |
Definition at line 2792 of file rs6000-tdep.c.
References _, dfp_pseudo_register_read(), e500_pseudo_register_read(), efpr_pseudo_register_read(), gdb_assert, gdbarch_register_name(), gdbarch_tdep(), get_regcache_arch(), internal_error(), IS_DFP_PSEUDOREG, IS_EFP_PSEUDOREG, IS_SPE_PSEUDOREG, IS_VSX_PSEUDOREG, and vsx_pseudo_register_read().
Referenced by rs6000_gdbarch_init().
static int rs6000_pseudo_register_reggroup_p | ( | struct gdbarch * | gdbarch, |
int | regnum, | ||
struct reggroup * | group | ||
) | [static] |
Definition at line 2478 of file rs6000-tdep.c.
References all_reggroup, float_reggroup, gdb_assert, gdbarch_tdep(), IS_DFP_PSEUDOREG, IS_EFP_PSEUDOREG, IS_SPE_PSEUDOREG, IS_VSX_PSEUDOREG, and vector_reggroup.
Referenced by rs6000_gdbarch_init().
static struct type* rs6000_pseudo_register_type | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static, read] |
Definition at line 2452 of file rs6000-tdep.c.
References builtin_type::builtin_declong, builtin_type::builtin_double, builtin_type(), gdb_assert, gdbarch_tdep(), IS_DFP_PSEUDOREG, IS_EFP_PSEUDOREG, IS_SPE_PSEUDOREG, IS_VSX_PSEUDOREG, rs6000_builtin_type_vec128(), and rs6000_builtin_type_vec64().
Referenced by rs6000_gdbarch_init().
static void rs6000_pseudo_register_write | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | reg_nr, | ||
const gdb_byte * | buffer | ||
) | [static] |
Definition at line 2817 of file rs6000-tdep.c.
References _, dfp_pseudo_register_write(), e500_pseudo_register_write(), efpr_pseudo_register_write(), gdb_assert, gdbarch_register_name(), gdbarch_tdep(), get_regcache_arch(), internal_error(), IS_DFP_PSEUDOREG, IS_EFP_PSEUDOREG, IS_SPE_PSEUDOREG, IS_VSX_PSEUDOREG, and vsx_pseudo_register_write().
Referenced by rs6000_gdbarch_init().
static const char* rs6000_register_name | ( | struct gdbarch * | gdbarch, |
int | regno | ||
) | [static] |
Definition at line 2373 of file rs6000-tdep.c.
References gdbarch_tdep(), IS_DFP_PSEUDOREG, IS_EFP_PSEUDOREG, IS_SPE_PSEUDOREG, IS_VSX_PSEUDOREG, gdbarch_tdep::ppc_dl0_regnum, gdbarch_tdep::ppc_efpr0_regnum, gdbarch_tdep::ppc_ev0_regnum, gdbarch_tdep::ppc_ev0_upper_regnum, ppc_num_gprs, gdbarch_tdep::ppc_vsr0_regnum, gdbarch_tdep::ppc_vsr0_upper_regnum, and tdesc_register_name().
Referenced by rs6000_gdbarch_init().
static int rs6000_register_sim_regno | ( | struct gdbarch * | gdbarch, |
int | reg | ||
) | [static] |
Definition at line 353 of file rs6000-tdep.c.
References gdb_assert, gdbarch_num_pseudo_regs(), gdbarch_num_regs(), gdbarch_tdep(), init_sim_regno_table(), LEGACY_SIM_REGNO_IGNORE, and gdbarch_tdep::sim_regno.
Referenced by rs6000_gdbarch_init().
static int rs6000_register_to_value | ( | struct frame_info * | frame, |
int | regnum, | ||
struct type * | type, | ||
gdb_byte * | to, | ||
int * | optimizedp, | ||
int * | unavailablep | ||
) | [static] |
Definition at line 2515 of file rs6000-tdep.c.
References convert_typed_floating(), from, gdb_assert, get_frame_arch(), get_frame_register_bytes(), MAX_REGISTER_SIZE, register_size(), TYPE_CODE, and TYPE_CODE_FLT.
Referenced by rs6000_gdbarch_init().
static CORE_ADDR rs6000_skip_main_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc | ||
) | [static] |
Definition at line 2141 of file rs6000-tdep.c.
References BL_DISPLACEMENT_MASK, BL_INSTRUCTION, BL_MASK, extract_unsigned_integer(), gdbarch_byte_order(), lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, SYMBOL_LINKAGE_NAME, and target_read_memory().
Referenced by rs6000_gdbarch_init().
static CORE_ADDR rs6000_skip_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc | ||
) | [static] |
Definition at line 2097 of file rs6000-tdep.c.
References find_pc_partial_function(), max, skip_prologue(), and skip_prologue_using_sal().
Referenced by rs6000_gdbarch_init().
static CORE_ADDR rs6000_skip_stack_check | ( | struct gdbarch * | gdbarch, |
const CORE_ADDR | start_pc | ||
) | [static] |
Definition at line 1312 of file rs6000-tdep.c.
References rs6000_fetch_instruction().
Referenced by skip_prologue().
static CORE_ADDR rs6000_skip_trampoline_code | ( | struct frame_info * | frame, |
CORE_ADDR | pc | ||
) | [static] |
Definition at line 2221 of file rs6000-tdep.c.
References find_solib_trampoline_target(), gdbarch_byte_order(), gdbarch_tdep(), get_frame_arch(), get_frame_register_unsigned(), int, lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, read_memory_integer(), read_memory_unsigned_integer(), rs6000_in_solib_return_trampoline(), SYMBOL_LINKAGE_NAME, and gdbarch_tdep::wordsize.
Referenced by rs6000_gdbarch_init().
static int rs6000_stab_reg_to_regnum | ( | struct gdbarch * | gdbarch, |
int | num | ||
) | [static] |
Definition at line 2843 of file rs6000-tdep.c.
References gdbarch_tdep(), gdbarch_tdep::ppc_acc_regnum, gdbarch_tdep::ppc_ctr_regnum, gdbarch_tdep::ppc_ev0_upper_regnum, gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_gp0_regnum, gdbarch_tdep::ppc_lr_regnum, gdbarch_tdep::ppc_mq_regnum, gdbarch_tdep::ppc_spefscr_regnum, gdbarch_tdep::ppc_vr0_regnum, gdbarch_tdep::ppc_vrsave_regnum, and gdbarch_tdep::ppc_xer_regnum.
Referenced by rs6000_gdbarch_init().
static CORE_ADDR rs6000_unwind_pc | ( | struct gdbarch * | gdbarch, |
struct frame_info * | next_frame | ||
) | [static] |
Definition at line 3094 of file rs6000-tdep.c.
References frame_unwind_register_unsigned(), and gdbarch_pc_regnum().
Referenced by rs6000_gdbarch_init().
static void rs6000_value_to_register | ( | struct frame_info * | frame, |
int | regnum, | ||
struct type * | type, | ||
const gdb_byte * | from | ||
) | [static] |
Definition at line 2538 of file rs6000-tdep.c.
References convert_typed_floating(), gdb_assert, get_frame_arch(), MAX_REGISTER_SIZE, put_frame_register(), to, TYPE_CODE, and TYPE_CODE_FLT.
Referenced by rs6000_gdbarch_init().
static void set_powerpc_command | ( | char * | args, |
int | from_tty | ||
) | [static] |
Definition at line 4179 of file rs6000-tdep.c.
References _, all_commands, gdb_stdout, help_list(), and printf_unfiltered().
Referenced by _initialize_rs6000_tdep().
static void set_sim_regno | ( | int * | table, |
int | gdb_regno, | ||
int | sim_regno | ||
) | [static] |
Definition at line 246 of file rs6000-tdep.c.
References gdb_assert.
Referenced by init_sim_regno_table().
static void show_powerpc_command | ( | char * | args, |
int | from_tty | ||
) | [static] |
Definition at line 4187 of file rs6000-tdep.c.
References cmd_show_list().
Referenced by _initialize_rs6000_tdep().
static void show_powerpc_exact_watchpoints | ( | struct ui_file * | file, |
int | from_tty, | ||
struct cmd_list_element * | c, | ||
const char * | value | ||
) | [static] |
Definition at line 4234 of file rs6000-tdep.c.
References _, and fprintf_filtered().
Referenced by _initialize_rs6000_tdep().
static CORE_ADDR skip_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc, | ||
CORE_ADDR | lim_pc, | ||
struct rs6000_framedata * | fdata | ||
) | [static] |
Definition at line 1494 of file rs6000-tdep.c.
References rs6000_framedata::alloca_reg, bl_to_blrl_insn_p(), rs6000_framedata::cr_offset, rs6000_framedata::ev_offset, extract_unsigned_integer(), find_pc_line(), rs6000_framedata::fpr_offset, rs6000_framedata::frameless, gdbarch_bfd_arch_info(), gdbarch_byte_order(), gdbarch_tdep(), GET_SRC_REG, rs6000_framedata::gpr_mask, rs6000_framedata::gpr_offset, symtab_and_line::line, rs6000_framedata::lr_offset, rs6000_framedata::lr_register, main_name(), max_skip_non_prologue_insns, memset(), name, rs6000_framedata::nosavedpc, offset, rs6000_framedata::offset, gdbarch_tdep::pc, symtab_and_line::pc, gdbarch_tdep::ppc_gp0_regnum, read_memory_integer(), rs6000_skip_stack_check(), rs6000_framedata::saved_ev, rs6000_framedata::saved_fpr, rs6000_framedata::saved_gpr, rs6000_framedata::saved_vr, SIGNED_SHORT, store_param_on_stack_p(), target_read_memory(), rs6000_framedata::used_bl, rs6000_framedata::vr_offset, and rs6000_framedata::vrsave_offset.
Referenced by rs6000_frame_cache(), rs6000_skip_prologue(), and set_gdbarch_skip_prologue().
int spe_register_p | ( | struct gdbarch * | gdbarch, |
int | regno | ||
) |
Definition at line 177 of file rs6000-tdep.c.
References gdbarch_tdep(), IS_SPE_PSEUDOREG, gdbarch_tdep::ppc_acc_regnum, gdbarch_tdep::ppc_ev0_upper_regnum, ppc_num_gprs, and gdbarch_tdep::ppc_spefscr_regnum.
Referenced by fetch_register(), and store_register().
static int store_param_on_stack_p | ( | unsigned long | op, |
int | framep, | ||
int * | r0_contains_arg | ||
) | [static] |
Definition at line 1183 of file rs6000-tdep.c.
References GET_SRC_REG.
Referenced by skip_prologue().
static enum register_status vsx_pseudo_register_read | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | reg_nr, | ||
gdb_byte * | buffer | ||
) | [static] |
Definition at line 2702 of file rs6000-tdep.c.
References gdbarch_byte_order(), gdbarch_tdep(), gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_vr0_regnum, gdbarch_tdep::ppc_vsr0_regnum, gdbarch_tdep::ppc_vsr0_upper_regnum, REG_VALID, regcache_raw_read(), and exsummary::status.
Referenced by rs6000_pseudo_register_read().
static void vsx_pseudo_register_write | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | reg_nr, | ||
const gdb_byte * | buffer | ||
) | [static] |
Definition at line 2737 of file rs6000-tdep.c.
References gdbarch_byte_order(), gdbarch_tdep(), gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_vr0_regnum, gdbarch_tdep::ppc_vsr0_regnum, gdbarch_tdep::ppc_vsr0_upper_regnum, and regcache_raw_write().
Referenced by rs6000_pseudo_register_write().
int vsx_register_p | ( | struct gdbarch * | gdbarch, |
int | regno | ||
) |
Definition at line 153 of file rs6000-tdep.c.
References gdbarch_tdep(), gdbarch_tdep::ppc_vsr0_regnum, and gdbarch_tdep::ppc_vsr0_upper_regnum.
Referenced by fetch_register(), and store_register().
Referenced by _initialize_rs6000_tdep(), and initialize_all_files().
int max_skip_non_prologue_insns = 10 [static] |
Definition at line 1175 of file rs6000-tdep.c.
Referenced by skip_prologue().
enum auto_boolean powerpc_soft_float_global = AUTO_BOOLEAN_AUTO [static] |
Definition at line 108 of file rs6000-tdep.c.
Referenced by _initialize_rs6000_tdep(), and rs6000_gdbarch_init().
enum powerpc_vector_abi powerpc_vector_abi_global = POWERPC_VEC_AUTO [static] |
Definition at line 121 of file rs6000-tdep.c.
Referenced by powerpc_set_vector_abi(), and rs6000_gdbarch_init().
const char* powerpc_vector_abi_string = "auto" [static] |
Definition at line 122 of file rs6000-tdep.c.
Referenced by _initialize_rs6000_tdep(), and powerpc_set_vector_abi().
const char* const powerpc_vector_strings[] [static] |
{ "auto", "generic", "altivec", "spe", NULL }
Definition at line 111 of file rs6000-tdep.c.
Referenced by _initialize_rs6000_tdep(), and powerpc_set_vector_abi().
struct frame_base rs6000_frame_base [static] |
{ &rs6000_frame_unwind, rs6000_frame_base_address, rs6000_frame_base_address, rs6000_frame_base_address }
Definition at line 3330 of file rs6000-tdep.c.
Referenced by rs6000_frame_base_sniffer().
struct frame_unwind rs6000_frame_unwind [static] |
{ NORMAL_FRAME, default_frame_unwind_stop_reason, rs6000_frame_this_id, rs6000_frame_prev_register, NULL, default_frame_sniffer }
Definition at line 3311 of file rs6000-tdep.c.
struct cmd_list_element* setpowerpccmdlist = NULL [static] |
Definition at line 105 of file rs6000-tdep.c.
struct cmd_list_element* showpowerpccmdlist = NULL [static] |
Definition at line 106 of file rs6000-tdep.c.
Definition at line 3013 of file rs6000-tdep.c.