GDB (xrefs)
Classes | Macros | Typedefs | Functions | Variables
/tmp/gdb-7.10/gdb/rs6000-tdep.c File Reference
#include "defs.h"
#include "frame.h"
#include "inferior.h"
#include "infrun.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 "record-full.h"
#include "auxv.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 "elf/ppc64.h"
#include "solib-svr4.h"
#include "ppc-tdep.h"
#include "ppc-ravenscar-thread.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.

Classes

struct  rs6000_framedata
 
struct  variant
 
struct  rs6000_frame_cache
 

Macros

#define IS_SPE_PSEUDOREG(tdep, regnum)
 
#define IS_DFP_PSEUDOREG(tdep, regnum)
 
#define IS_VSX_PSEUDOREG(tdep, regnum)
 
#define IS_EFP_PSEUDOREG(tdep, regnum)
 
#define BRANCH_MASK   0xfc000000
 
#define BP_MASK   0xFC0007FE
 
#define B_INSN   0x48000000
 
#define BC_INSN   0x40000000
 
#define BXL_INSN   0x4c000000
 
#define BP_INSN   0x7C000008
 
#define LWARX_MASK   0xfc0007fe
 
#define LWARX_INSTRUCTION   0x7c000028
 
#define LDARX_INSTRUCTION   0x7c0000A8
 
#define STWCX_MASK   0xfc0007ff
 
#define STWCX_INSTRUCTION   0x7c00012d
 
#define STDCX_INSTRUCTION   0x7c0001ad
 
#define SIGNED_SHORT(x)
 
#define GET_SRC_REG(x)   (((x) >> 21) & 0x1f)
 
#define BL_MASK   0xfc000001
 
#define BL_INSTRUCTION   0x48000001
 
#define BL_DISPLACEMENT_MASK   0x03fffffc
 
#define PPC_FIELD(value, from, len)   (((value) >> (32 - (from) - (len))) & ((1 << (len)) - 1))
 
#define PPC_SEXT(v, bs)
 
#define PPC_OP6(insn)   PPC_FIELD (insn, 0, 6)
 
#define PPC_EXTOP(insn)   PPC_FIELD (insn, 21, 10)
 
#define PPC_RT(insn)   PPC_FIELD (insn, 6, 5)
 
#define PPC_RS(insn)   PPC_FIELD (insn, 6, 5)
 
#define PPC_RA(insn)   PPC_FIELD (insn, 11, 5)
 
#define PPC_RB(insn)   PPC_FIELD (insn, 16, 5)
 
#define PPC_NB(insn)   PPC_FIELD (insn, 16, 5)
 
#define PPC_VRT(insn)   PPC_FIELD (insn, 6, 5)
 
#define PPC_FRT(insn)   PPC_FIELD (insn, 6, 5)
 
#define PPC_SPR(insn)
 
#define PPC_BO(insn)   PPC_FIELD (insn, 6, 5)
 
#define PPC_T(insn)   PPC_FIELD (insn, 6, 5)
 
#define PPC_D(insn)   PPC_SEXT (PPC_FIELD (insn, 16, 16), 16)
 
#define PPC_DS(insn)   PPC_SEXT (PPC_FIELD (insn, 16, 14), 14)
 
#define PPC_BIT(insn, n)   ((insn & (1 << (31 - (n)))) ? 1 : 0)
 
#define PPC_OE(insn)   PPC_BIT (insn, 21)
 
#define PPC_RC(insn)   PPC_BIT (insn, 31)
 
#define PPC_Rc(insn)   PPC_BIT (insn, 21)
 
#define PPC_LK(insn)   PPC_BIT (insn, 31)
 
#define PPC_TX(insn)   PPC_BIT (insn, 31)
 
#define PPC_LEV(insn)   PPC_FIELD (insn, 20, 7)
 
#define PPC_XT(insn)   ((PPC_TX (insn) << 5) | PPC_T (insn))
 
#define PPC_XER_NB(xer)   (xer & 0x7f)
 

Typedefs

typedef enum register_status(* move_ev_register_func) (struct regcache *, int, void *)
 

Functions

int vsx_register_p (struct gdbarch *gdbarch, int regno)
 
int altivec_register_p (struct gdbarch *gdbarch, int regno)
 
int spe_register_p (struct gdbarch *gdbarch, int regno)
 
int ppc_floating_point_unit_p (struct gdbarch *gdbarch)
 
static int ppc_vsx_support_p (struct gdbarch *gdbarch)
 
int ppc_altivec_support_p (struct gdbarch *gdbarch)
 
static void set_sim_regno (int *table, int gdb_regno, int sim_regno)
 
static void init_sim_regno_table (struct gdbarch *arch)
 
static int rs6000_register_sim_regno (struct gdbarch *gdbarch, int reg)
 
void ppc_supply_reg (struct regcache *regcache, int regnum, const gdb_byte *regs, size_t offset, int regsize)
 
void ppc_collect_reg (const struct regcache *regcache, int regnum, gdb_byte *regs, size_t offset, int regsize)
 
static int ppc_greg_offset (struct gdbarch *gdbarch, struct gdbarch_tdep *tdep, const struct ppc_reg_offsets *offsets, int regnum, int *regsize)
 
static int ppc_fpreg_offset (struct gdbarch_tdep *tdep, const struct ppc_reg_offsets *offsets, int regnum)
 
static int ppc_vrreg_offset (struct gdbarch_tdep *tdep, const struct ppc_reg_offsets *offsets, int regnum)
 
void ppc_supply_gregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
 
void ppc_supply_fpregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *fpregs, size_t len)
 
void ppc_supply_vsxregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *vsxregs, size_t len)
 
void ppc_supply_vrregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *vrregs, size_t len)
 
void ppc_collect_gregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
 
void ppc_collect_fpregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *fpregs, size_t len)
 
void ppc_collect_vsxregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *vsxregs, size_t len)
 
void ppc_collect_vrregset (const struct regset *regset, const struct regcache *regcache, int regnum, void *vrregs, size_t len)
 
static int insn_changes_sp_or_jumps (unsigned long insn)
 
static int rs6000_in_function_epilogue_frame_p (struct frame_info *curfrm, struct gdbarch *gdbarch, CORE_ADDR pc)
 
static int rs6000_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static CORE_ADDR rs6000_fetch_pointer_argument (struct frame_info *frame, int argi, struct type *type)
 
static const unsigned char * rs6000_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *bp_addr, int *bp_size)
 
static void ppc_displaced_step_fixup (struct gdbarch *gdbarch, struct displaced_step_closure *closure, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
 
static int ppc_displaced_step_hw_singlestep (struct gdbarch *gdbarch, struct displaced_step_closure *closure)
 
int ppc_deal_with_atomic_sequence (struct frame_info *frame)
 
static int store_param_on_stack_p (unsigned long op, int framep, int *r0_contains_arg)
 
static int bl_to_blrl_insn_p (CORE_ADDR pc, int insn, enum bfd_endian byte_order)
 
static unsigned long rs6000_fetch_instruction (struct gdbarch *gdbarch, const CORE_ADDR pc)
 
static CORE_ADDR rs6000_skip_stack_check (struct gdbarch *gdbarch, const CORE_ADDR start_pc)
 
static CORE_ADDR skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc, struct rs6000_framedata *fdata)
 
static CORE_ADDR rs6000_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static CORE_ADDR rs6000_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static CORE_ADDR rs6000_frame_align (struct gdbarch *gdbarch, CORE_ADDR addr)
 
static int rs6000_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, const char *name)
 
static CORE_ADDR rs6000_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
 
static struct typers6000_builtin_type_vec64 (struct gdbarch *gdbarch)
 
static struct typers6000_builtin_type_vec128 (struct gdbarch *gdbarch)
 
static const char * rs6000_register_name (struct gdbarch *gdbarch, int regno)
 
static struct typers6000_pseudo_register_type (struct gdbarch *gdbarch, int regnum)
 
static int rs6000_pseudo_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *group)
 
static int rs6000_convert_register_p (struct gdbarch *gdbarch, int regnum, struct type *type)
 
static int rs6000_register_to_value (struct frame_info *frame, int regnum, struct type *type, gdb_byte *to, int *optimizedp, int *unavailablep)
 
static void rs6000_value_to_register (struct frame_info *frame, int regnum, struct type *type, const gdb_byte *from)
 
static enum register_status e500_move_ev_register (move_ev_register_func move, struct regcache *regcache, int ev_reg, void *buffer)
 
static enum register_status do_regcache_raw_read (struct regcache *regcache, int regnum, void *buffer)
 
static enum register_status do_regcache_raw_write (struct regcache *regcache, int regnum, void *buffer)
 
static enum register_status e500_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int reg_nr, gdb_byte *buffer)
 
static void e500_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int reg_nr, const gdb_byte *buffer)
 
static enum register_status dfp_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int reg_nr, gdb_byte *buffer)
 
static void dfp_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int reg_nr, const gdb_byte *buffer)
 
static enum register_status vsx_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int reg_nr, gdb_byte *buffer)
 
static void vsx_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int reg_nr, const gdb_byte *buffer)
 
static enum register_status efpr_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int reg_nr, gdb_byte *buffer)
 
static void efpr_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int reg_nr, const gdb_byte *buffer)
 
static enum register_status rs6000_pseudo_register_read (struct gdbarch *gdbarch, struct regcache *regcache, int reg_nr, gdb_byte *buffer)
 
static void rs6000_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int reg_nr, const gdb_byte *buffer)
 
static int rs6000_stab_reg_to_regnum (struct gdbarch *gdbarch, int num)
 
static int rs6000_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int num)
 
static int rs6000_adjust_frame_regnum (struct gdbarch *gdbarch, int num, int eh_frame_p)
 
static const struct variantfind_variant_by_arch (enum bfd_architecture arch, unsigned long mach)
 
static int gdb_print_insn_powerpc (bfd_vma memaddr, disassemble_info *info)
 
static CORE_ADDR rs6000_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
 
static struct frame_id rs6000_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
 
static struct rs6000_frame_cachers6000_frame_cache (struct frame_info *this_frame, void **this_cache)
 
static void rs6000_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valuers6000_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
 
static struct rs6000_frame_cachers6000_epilogue_frame_cache (struct frame_info *this_frame, void **this_cache)
 
static void rs6000_epilogue_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valuers6000_epilogue_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
 
static int rs6000_epilogue_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
 
static CORE_ADDR rs6000_frame_base_address (struct frame_info *this_frame, void **this_cache)
 
static const struct frame_basers6000_frame_base_sniffer (struct frame_info *this_frame)
 
static void ppc_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum, struct dwarf2_frame_state_reg *reg, struct frame_info *this_frame)
 
static int bfd_uses_spe_extensions (bfd *abfd)
 
static int ppc_record_vsr (struct regcache *regcache, struct gdbarch_tdep *tdep, int vsr)
 
static int ppc_process_record_op4 (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr, uint32_t insn)
 
static int ppc_process_record_op19 (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr, uint32_t insn)
 
static int ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr, uint32_t insn)
 
static int ppc_process_record_op59 (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr, uint32_t insn)
 
static int ppc_process_record_op60 (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr, uint32_t insn)
 
static int ppc_process_record_op63 (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr, uint32_t insn)
 
int ppc_process_record (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr)
 
static struct gdbarchrs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 
static void rs6000_dump_tdep (struct gdbarch *gdbarch, struct ui_file *file)
 
static void set_powerpc_command (char *args, int from_tty)
 
static void show_powerpc_command (char *args, int from_tty)
 
static void powerpc_set_soft_float (char *args, int from_tty, struct cmd_list_element *c)
 
static void powerpc_set_vector_abi (char *args, int from_tty, struct cmd_list_element *c)
 
static void show_powerpc_exact_watchpoints (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
static unsigned int read_insn (struct frame_info *frame, CORE_ADDR pc)
 
int ppc_insns_match_pattern (struct frame_info *frame, CORE_ADDR pc, struct ppc_insn_pattern *pattern, unsigned int *insns)
 
CORE_ADDR ppc_insn_d_field (unsigned int insn)
 
CORE_ADDR ppc_insn_ds_field (unsigned int insn)
 
void _initialize_rs6000_tdep (void)
 

Variables

static struct cmd_list_elementsetpowerpccmdlist = NULL
 
static struct cmd_list_elementshowpowerpccmdlist = NULL
 
static enum auto_boolean powerpc_soft_float_global = AUTO_BOOLEAN_AUTO
 
static const char *const powerpc_vector_strings []
 
static enum powerpc_vector_abi powerpc_vector_abi_global = POWERPC_VEC_AUTO
 
static const char * powerpc_vector_abi_string = "auto"
 
static int max_skip_non_prologue_insns = 10
 
static struct variant variants []
 
static const struct frame_unwind rs6000_frame_unwind
 
static const struct frame_unwind rs6000_epilogue_frame_unwind
 
static const struct frame_base rs6000_frame_base
 
initialize_file_ftype _initialize_rs6000_tdep
 

Macro Definition Documentation

#define B_INSN   0x48000000

Definition at line 972 of file rs6000-tdep.c.

Referenced by ppc_displaced_step_fixup().

#define BC_INSN   0x40000000

Definition at line 973 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 1299 of file rs6000-tdep.c.

Referenced by rs6000_skip_main_prologue().

#define BL_INSTRUCTION   0x48000001

Definition at line 1298 of file rs6000-tdep.c.

Referenced by rs6000_skip_main_prologue().

#define BL_MASK   0xfc000001

Definition at line 1297 of file rs6000-tdep.c.

Referenced by rs6000_skip_main_prologue().

#define BP_INSN   0x7C000008

Definition at line 975 of file rs6000-tdep.c.

Referenced by ppc_displaced_step_fixup().

#define BP_MASK   0xFC0007FE

Definition at line 971 of file rs6000-tdep.c.

Referenced by ppc_displaced_step_fixup().

#define BRANCH_MASK   0xfc000000

Definition at line 970 of file rs6000-tdep.c.

Referenced by ppc_deal_with_atomic_sequence(), and ppc_displaced_step_fixup().

#define BXL_INSN   0x4c000000

Definition at line 974 of file rs6000-tdep.c.

Referenced by ppc_displaced_step_fixup().

#define GET_SRC_REG (   x)    (((x) >> 21) & 0x1f)

Definition at line 1181 of file rs6000-tdep.c.

Referenced by skip_prologue(), and store_param_on_stack_p().

#define IS_DFP_PSEUDOREG (   tdep,
  regnum 
)
Value:
((tdep)->ppc_dl0_regnum >= 0 \
&& (regnum) >= (tdep)->ppc_dl0_regnum \
&& (regnum) < (tdep)->ppc_dl0_regnum + 16)
int regnum
Definition: aarch64-tdep.c:69

Definition at line 92 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 
)
Value:
((tdep)->ppc_efpr0_regnum >= 0 \
&& (regnum) >= (tdep)->ppc_efpr0_regnum \
&& (regnum) < (tdep)->ppc_efpr0_regnum + ppc_num_efprs)
int regnum
Definition: aarch64-tdep.c:69

Definition at line 102 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 
)
Value:
((tdep)->ppc_ev0_regnum >= 0 \
&& (regnum) >= (tdep)->ppc_ev0_regnum \
&& (regnum) < (tdep)->ppc_ev0_regnum + 32)
int regnum
Definition: aarch64-tdep.c:69

Definition at line 87 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 
)
Value:
((tdep)->ppc_vsr0_regnum >= 0 \
&& (regnum) >= (tdep)->ppc_vsr0_regnum \
&& (regnum) < (tdep)->ppc_vsr0_regnum + ppc_num_vsrs)
int regnum
Definition: aarch64-tdep.c:69

Definition at line 97 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 1083 of file rs6000-tdep.c.

Referenced by ppc_deal_with_atomic_sequence().

#define LWARX_INSTRUCTION   0x7c000028

Definition at line 1082 of file rs6000-tdep.c.

Referenced by ppc_deal_with_atomic_sequence().

#define LWARX_MASK   0xfc0007fe

Definition at line 1081 of file rs6000-tdep.c.

Referenced by ppc_deal_with_atomic_sequence().

#define PPC_BIT (   insn,
 
)    ((insn & (1 << (31 - (n)))) ? 1 : 0)

Definition at line 3678 of file rs6000-tdep.c.

Referenced by ppc_process_record(), and ppc_process_record_op4().

#define PPC_BO (   insn)    PPC_FIELD (insn, 6, 5)

Definition at line 3674 of file rs6000-tdep.c.

Referenced by ppc_process_record(), and ppc_process_record_op19().

#define PPC_D (   insn)    PPC_SEXT (PPC_FIELD (insn, 16, 16), 16)

Definition at line 3676 of file rs6000-tdep.c.

Referenced by ppc_process_record().

#define PPC_DS (   insn)    PPC_SEXT (PPC_FIELD (insn, 16, 14), 14)

Definition at line 3677 of file rs6000-tdep.c.

Referenced by ppc_process_record().

#define PPC_EXTOP (   insn)    PPC_FIELD (insn, 21, 10)
#define PPC_FIELD (   value,
  from,
  len 
)    (((value) >> (32 - (from) - (len))) & ((1 << (len)) - 1))

Definition at line 3657 of file rs6000-tdep.c.

Referenced by ppc_process_record(), and ppc_process_record_op4().

#define PPC_FRT (   insn)    PPC_FIELD (insn, 6, 5)
#define PPC_LEV (   insn)    PPC_FIELD (insn, 20, 7)

Definition at line 3684 of file rs6000-tdep.c.

Referenced by ppc_process_record().

#define PPC_LK (   insn)    PPC_BIT (insn, 31)

Definition at line 3682 of file rs6000-tdep.c.

Referenced by ppc_process_record(), and ppc_process_record_op19().

#define PPC_NB (   insn)    PPC_FIELD (insn, 16, 5)

Definition at line 3669 of file rs6000-tdep.c.

Referenced by ppc_process_record_op31().

#define PPC_OE (   insn)    PPC_BIT (insn, 21)

Definition at line 3679 of file rs6000-tdep.c.

Referenced by ppc_process_record_op31().

#define PPC_OP6 (   insn)    PPC_FIELD (insn, 0, 6)

Definition at line 3663 of file rs6000-tdep.c.

Referenced by ppc_process_record().

#define PPC_RA (   insn)    PPC_FIELD (insn, 11, 5)

Definition at line 3667 of file rs6000-tdep.c.

Referenced by ppc_process_record(), and ppc_process_record_op31().

#define PPC_RB (   insn)    PPC_FIELD (insn, 16, 5)

Definition at line 3668 of file rs6000-tdep.c.

Referenced by ppc_process_record_op31().

#define PPC_RC (   insn)    PPC_BIT (insn, 31)
#define PPC_Rc (   insn)    PPC_BIT (insn, 21)

Definition at line 3681 of file rs6000-tdep.c.

Referenced by ppc_process_record_op4(), and ppc_process_record_op60().

#define PPC_RS (   insn)    PPC_FIELD (insn, 6, 5)

Definition at line 3666 of file rs6000-tdep.c.

Referenced by ppc_process_record().

#define PPC_RT (   insn)    PPC_FIELD (insn, 6, 5)

Definition at line 3665 of file rs6000-tdep.c.

Referenced by ppc_process_record(), and ppc_process_record_op31().

#define PPC_SEXT (   v,
  bs 
)
Value:
((((CORE_ADDR) (v) & (((CORE_ADDR) 1 << (bs)) - 1)) \
^ ((CORE_ADDR) 1 << ((bs) - 1))) \
- ((CORE_ADDR) 1 << ((bs) - 1)))
bfd_vma CORE_ADDR
Definition: common-types.h:41

Definition at line 3659 of file rs6000-tdep.c.

#define PPC_SPR (   insn)
Value:
(PPC_FIELD (insn, 11, 5) \
| (PPC_FIELD (insn, 16, 5) << 5))
#define PPC_FIELD(value, from, len)
Definition: rs6000-tdep.c:3657

Definition at line 3672 of file rs6000-tdep.c.

Referenced by ppc_process_record_op31().

#define PPC_T (   insn)    PPC_FIELD (insn, 6, 5)

Definition at line 3675 of file rs6000-tdep.c.

#define PPC_TX (   insn)    PPC_BIT (insn, 31)

Definition at line 3683 of file rs6000-tdep.c.

#define PPC_VRT (   insn)    PPC_FIELD (insn, 6, 5)

Definition at line 3670 of file rs6000-tdep.c.

Referenced by ppc_process_record_op31(), and ppc_process_record_op4().

#define PPC_XER_NB (   xer)    (xer & 0x7f)

Definition at line 3687 of file rs6000-tdep.c.

Referenced by ppc_process_record_op31().

#define PPC_XT (   insn)    ((PPC_TX (insn) << 5) | PPC_T (insn))

Definition at line 3686 of file rs6000-tdep.c.

Referenced by ppc_process_record_op31(), and ppc_process_record_op60().

#define SIGNED_SHORT (   x)
Value:
((sizeof (short) == 2) \
? ((int)(short)(x)) \
: ((int)((((x) & 0xffff) ^ 0x8000) - 0x8000)))
const char const char int
Definition: command.h:229

Definition at line 1176 of file rs6000-tdep.c.

Referenced by skip_prologue().

#define STDCX_INSTRUCTION   0x7c0001ad

Definition at line 1086 of file rs6000-tdep.c.

Referenced by ppc_deal_with_atomic_sequence().

#define STWCX_INSTRUCTION   0x7c00012d

Definition at line 1085 of file rs6000-tdep.c.

Referenced by ppc_deal_with_atomic_sequence().

#define STWCX_MASK   0xfc0007ff

Definition at line 1084 of file rs6000-tdep.c.

Referenced by ppc_deal_with_atomic_sequence().

Typedef Documentation

typedef enum register_status(* move_ev_register_func) (struct regcache *, int, void *)

Definition at line 2575 of file rs6000-tdep.c.

Function Documentation

void _initialize_rs6000_tdep ( void  )
int altivec_register_p ( struct gdbarch gdbarch,
int  regno 
)
static int bfd_uses_spe_extensions ( bfd *  abfd)
static

Definition at line 3543 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 1266 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
static void dfp_pseudo_register_write ( struct gdbarch gdbarch,
struct regcache regcache,
int  reg_nr,
const gdb_byte buffer 
)
static
static enum register_status do_regcache_raw_read ( struct regcache regcache,
int  regnum,
void *  buffer 
)
static

Definition at line 2636 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 2642 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
static enum register_status e500_pseudo_register_read ( struct gdbarch gdbarch,
struct regcache regcache,
int  reg_nr,
gdb_byte buffer 
)
static

Definition at line 2650 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 2657 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
static void efpr_pseudo_register_write ( struct gdbarch gdbarch,
struct regcache regcache,
int  reg_nr,
const gdb_byte buffer 
)
static
static const struct variant* find_variant_by_arch ( enum bfd_architecture  arch,
unsigned long  mach 
)
static

Definition at line 3097 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 3109 of file rs6000-tdep.c.

Referenced by rs6000_gdbarch_init().

static void init_sim_regno_table ( struct gdbarch arch)
static
static int insn_changes_sp_or_jumps ( unsigned long  insn)
static

Definition at line 825 of file rs6000-tdep.c.

Referenced by rs6000_in_function_epilogue_frame_p().

static void powerpc_set_soft_float ( char *  args,
int  from_tty,
struct cmd_list_element c 
)
static

Definition at line 6039 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
int ppc_altivec_support_p ( struct gdbarch gdbarch)
void ppc_collect_fpregset ( const struct regset regset,
const struct regcache regcache,
int  regnum,
void *  fpregs,
size_t  len 
)
void ppc_collect_gregset ( const struct regset regset,
const struct regcache regcache,
int  regnum,
void *  gregs,
size_t  len 
)
void ppc_collect_reg ( const struct regcache regcache,
int  regnum,
gdb_byte regs,
size_t  offset,
int  regsize 
)
void ppc_collect_vrregset ( const struct regset regset,
const struct regcache regcache,
int  regnum,
void *  vrregs,
size_t  len 
)
void ppc_collect_vsxregset ( const struct regset regset,
const struct regcache regcache,
int  regnum,
void *  vsxregs,
size_t  len 
)
int ppc_deal_with_atomic_sequence ( struct frame_info frame)
static void ppc_displaced_step_fixup ( struct gdbarch gdbarch,
struct displaced_step_closure closure,
CORE_ADDR  from,
CORE_ADDR  to,
struct regcache regs 
)
static
static int ppc_displaced_step_hw_singlestep ( struct gdbarch gdbarch,
struct displaced_step_closure closure 
)
static

Definition at line 1074 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
int ppc_floating_point_unit_p ( struct gdbarch gdbarch)
static int ppc_fpreg_offset ( struct gdbarch_tdep tdep,
const struct ppc_reg_offsets offsets,
int  regnum 
)
static
static int ppc_greg_offset ( struct gdbarch gdbarch,
struct gdbarch_tdep tdep,
const struct ppc_reg_offsets offsets,
int  regnum,
int regsize 
)
static
CORE_ADDR ppc_insn_d_field ( unsigned int  insn)
CORE_ADDR ppc_insn_ds_field ( unsigned int  insn)
int ppc_insns_match_pattern ( struct frame_info frame,
CORE_ADDR  pc,
struct ppc_insn_pattern pattern,
unsigned int insns 
)
int ppc_process_record ( struct gdbarch gdbarch,
struct regcache regcache,
CORE_ADDR  addr 
)
static int ppc_process_record_op19 ( struct gdbarch gdbarch,
struct regcache regcache,
CORE_ADDR  addr,
uint32_t  insn 
)
static
static int ppc_process_record_op31 ( struct gdbarch gdbarch,
struct regcache regcache,
CORE_ADDR  addr,
uint32_t  insn 
)
static
static int ppc_process_record_op4 ( struct gdbarch gdbarch,
struct regcache regcache,
CORE_ADDR  addr,
uint32_t  insn 
)
static
static int ppc_process_record_op59 ( struct gdbarch gdbarch,
struct regcache regcache,
CORE_ADDR  addr,
uint32_t  insn 
)
static
static int ppc_process_record_op60 ( struct gdbarch gdbarch,
struct regcache regcache,
CORE_ADDR  addr,
uint32_t  insn 
)
static
static int ppc_process_record_op63 ( struct gdbarch gdbarch,
struct regcache regcache,
CORE_ADDR  addr,
uint32_t  insn 
)
static
static int ppc_record_vsr ( struct regcache regcache,
struct gdbarch_tdep tdep,
int  vsr 
)
static
void ppc_supply_fpregset ( const struct regset regset,
struct regcache regcache,
int  regnum,
const void *  fpregs,
size_t  len 
)
void ppc_supply_gregset ( const struct regset regset,
struct regcache regcache,
int  regnum,
const void *  gregs,
size_t  len 
)
void ppc_supply_reg ( struct regcache regcache,
int  regnum,
const gdb_byte regs,
size_t  offset,
int  regsize 
)
void ppc_supply_vrregset ( const struct regset regset,
struct regcache regcache,
int  regnum,
const void *  vrregs,
size_t  len 
)
void ppc_supply_vsxregset ( const struct regset regset,
struct regcache regcache,
int  regnum,
const void *  vsxregs,
size_t  len 
)
static int ppc_vrreg_offset ( struct gdbarch_tdep tdep,
const struct ppc_reg_offsets offsets,
int  regnum 
)
static
static int ppc_vsx_support_p ( struct gdbarch gdbarch)
static

Definition at line 223 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
static int rs6000_adjust_frame_regnum ( struct gdbarch gdbarch,
int  num,
int  eh_frame_p 
)
static

Definition at line 2954 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 957 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
static struct type* rs6000_builtin_type_vec64 ( struct gdbarch gdbarch)
static
static int rs6000_convert_register_p ( struct gdbarch gdbarch,
int  regnum,
struct type type 
)
static
static struct frame_id rs6000_dummy_id ( struct gdbarch gdbarch,
struct frame_info this_frame 
)
static
static void rs6000_dump_tdep ( struct gdbarch gdbarch,
struct ui_file file 
)
static

Definition at line 6012 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
static struct rs6000_frame_cache* rs6000_epilogue_frame_cache ( struct frame_info this_frame,
void **  this_cache 
)
static
static struct value* rs6000_epilogue_frame_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
)
static
static int rs6000_epilogue_frame_sniffer ( const struct frame_unwind self,
struct frame_info this_frame,
void **  this_prologue_cache 
)
static
static void rs6000_epilogue_frame_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
)
static
static unsigned long rs6000_fetch_instruction ( struct gdbarch gdbarch,
const CORE_ADDR  pc 
)
static
static CORE_ADDR rs6000_fetch_pointer_argument ( struct frame_info frame,
int  argi,
struct type type 
)
static

Definition at line 948 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 2191 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 3454 of file rs6000-tdep.c.

References rs6000_frame_cache::initial_sp, and rs6000_frame_cache().

static const struct frame_base* rs6000_frame_base_sniffer ( struct frame_info this_frame)
static

Definition at line 3469 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
static struct value* rs6000_frame_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
)
static
static void rs6000_frame_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
)
static
static struct gdbarch* rs6000_gdbarch_init ( struct gdbarch_info  info,
struct gdbarch_list arches 
)
static

Definition at line 5346 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(), gdbarch_info::byte_order, core_addr_lessthan(), displaced_step_at_entry_point(), dwarf2_append_unwinders(), dwarf2_frame_set_adjust_regnum(), dwarf2_frame_set_init_reg(), gdbarch_tdep::elf_abi, 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_ELF_AUTO, POWERPC_ELF_V1, POWERPC_ELF_V2, 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_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_stack_frame_destroyed_p(), 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_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_stack_frame_destroyed_p(), 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, TARGET_CHAR_BIT, 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 wordsize.

Referenced by _initialize_rs6000_tdep().

static int rs6000_in_function_epilogue_frame_p ( struct frame_info curfrm,
struct gdbarch gdbarch,
CORE_ADDR  pc 
)
static
static int rs6000_in_solib_return_trampoline ( struct gdbarch gdbarch,
CORE_ADDR  pc,
const char *  name 
)
static

Definition at line 2220 of file rs6000-tdep.c.

References startswith().

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
static int rs6000_pseudo_register_reggroup_p ( struct gdbarch gdbarch,
int  regnum,
struct reggroup group 
)
static
static struct type* rs6000_pseudo_register_type ( struct gdbarch gdbarch,
int  regnum 
)
static
static void rs6000_pseudo_register_write ( struct gdbarch gdbarch,
struct regcache regcache,
int  reg_nr,
const gdb_byte buffer 
)
static
static const char* rs6000_register_name ( struct gdbarch gdbarch,
int  regno 
)
static
static int rs6000_register_sim_regno ( struct gdbarch gdbarch,
int  reg 
)
static
static int rs6000_register_to_value ( struct frame_info frame,
int  regnum,
struct type type,
gdb_byte to,
int optimizedp,
int unavailablep 
)
static
static CORE_ADDR rs6000_skip_main_prologue ( struct gdbarch gdbarch,
CORE_ADDR  pc 
)
static
static CORE_ADDR rs6000_skip_prologue ( struct gdbarch gdbarch,
CORE_ADDR  pc 
)
static
static CORE_ADDR rs6000_skip_stack_check ( struct gdbarch gdbarch,
const CORE_ADDR  start_pc 
)
static

Definition at line 1322 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
static int rs6000_stab_reg_to_regnum ( struct gdbarch gdbarch,
int  num 
)
static
static int rs6000_stack_frame_destroyed_p ( struct gdbarch gdbarch,
CORE_ADDR  pc 
)
static

Definition at line 940 of file rs6000-tdep.c.

References get_current_frame(), and rs6000_in_function_epilogue_frame_p().

Referenced by rs6000_gdbarch_init().

static CORE_ADDR rs6000_unwind_pc ( struct gdbarch gdbarch,
struct frame_info next_frame 
)
static

Definition at line 3118 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
static void set_powerpc_command ( char *  args,
int  from_tty 
)
static

Definition at line 6025 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 249 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 6033 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 6080 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
int spe_register_p ( struct gdbarch gdbarch,
int  regno 
)
static int store_param_on_stack_p ( unsigned long  op,
int  framep,
int r0_contains_arg 
)
static

Definition at line 1193 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
static void vsx_pseudo_register_write ( struct gdbarch gdbarch,
struct regcache regcache,
int  reg_nr,
const gdb_byte buffer 
)
static
int vsx_register_p ( struct gdbarch gdbarch,
int  regno 
)

Variable Documentation

initialize_file_ftype _initialize_rs6000_tdep
int max_skip_non_prologue_insns = 10
static

Definition at line 1185 of file rs6000-tdep.c.

Referenced by skip_prologue().

enum auto_boolean powerpc_soft_float_global = AUTO_BOOLEAN_AUTO
static

Definition at line 111 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 124 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 125 of file rs6000-tdep.c.

Referenced by _initialize_rs6000_tdep(), and powerpc_set_vector_abi().

const char* const powerpc_vector_strings[]
static
Initial value:
=
{
"auto",
"generic",
"altivec",
"spe",
NULL
}

Definition at line 114 of file rs6000-tdep.c.

Referenced by _initialize_rs6000_tdep(), and powerpc_set_vector_abi().

const struct frame_unwind rs6000_epilogue_frame_unwind
static
Initial value:
=
{
NULL,
}
static struct value * rs6000_epilogue_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: rs6000-tdep.c:3416
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:180
static int rs6000_epilogue_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
Definition: rs6000-tdep.c:3428
static void rs6000_epilogue_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: rs6000-tdep.c:3398

Definition at line 3443 of file rs6000-tdep.c.

const struct frame_base rs6000_frame_base
static
Initial value:
= {
rs6000_frame_base_address
}
static const struct frame_unwind rs6000_frame_unwind
Definition: rs6000-tdep.c:3342
static CORE_ADDR rs6000_frame_base_address(struct frame_info *this_frame, void **this_cache)
Definition: rs6000-tdep.c:3454

Definition at line 3461 of file rs6000-tdep.c.

Referenced by rs6000_frame_base_sniffer().

const struct frame_unwind rs6000_frame_unwind
static
Initial value:
=
{
NULL,
}
static void rs6000_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: rs6000-tdep.c:3321
static struct value * rs6000_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: rs6000-tdep.c:3334
int default_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
Definition: frame-unwind.c:170
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:180

Definition at line 3342 of file rs6000-tdep.c.

struct cmd_list_element* setpowerpccmdlist = NULL
static

Definition at line 108 of file rs6000-tdep.c.

struct cmd_list_element* showpowerpccmdlist = NULL
static

Definition at line 109 of file rs6000-tdep.c.

struct variant variants[]
static

Definition at line 3037 of file rs6000-tdep.c.