GDB (xrefs)
|
Go to the source code of this file.
#define PPC_INSN_SIZE 4 |
Definition at line 311 of file ppc-tdep.h.
Referenced by ppc_deal_with_atomic_sequence(), ppc_displaced_step_fixup(), ppc_linux_displaced_step_location(), ppcfbsd_sigtramp_frame_cache(), ppcfbsd_sigtramp_frame_sniffer(), ppcobsd_sigtramp_frame_cache(), ppcobsd_sigtramp_frame_sniffer(), rs6000_gdbarch_init(), rs6000_in_function_epilogue_p(), and rs6000_software_single_step().
#define PPC_MAX_EPILOGUE_INSTRUCTIONS 52 |
Definition at line 314 of file ppc-tdep.h.
Referenced by rs6000_in_function_epilogue_p().
anonymous enum |
ppc_num_gprs | |
ppc_num_fprs | |
ppc_num_srs | |
ppc_num_vrs | |
ppc_num_vshrs | |
ppc_num_vsrs | |
ppc_num_efprs |
Definition at line 255 of file ppc-tdep.h.
anonymous enum |
Definition at line 272 of file ppc-tdep.h.
enum powerpc_vector_abi |
POWERPC_VEC_AUTO | |
POWERPC_VEC_GENERIC | |
POWERPC_VEC_ALTIVEC | |
POWERPC_VEC_SPE | |
POWERPC_VEC_LAST |
Definition at line 186 of file ppc-tdep.h.
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().
CORE_ADDR ppc64_sysv_abi_push_dummy_call | ( | struct gdbarch * | gdbarch, |
struct value * | function, | ||
struct regcache * | regcache, | ||
CORE_ADDR | bp_addr, | ||
int | nargs, | ||
struct value ** | args, | ||
CORE_ADDR | sp, | ||
int | struct_return, | ||
CORE_ADDR | struct_addr | ||
) |
Definition at line 1190 of file ppc-sysv-tdep.c.
References align_down(), align_up(), check_typedef(), convert_code_addr_to_desc_addr(), convert_typed_floating(), find_function_addr(), floatformats_ibm_long_double, gdb_assert, gdbarch_byte_order(), gdbarch_long_double_format(), gdbarch_sp_regnum(), gdbarch_tdep(), len, LONGEST, MAX_REGISTER_SIZE, memcpy(), memset(), p, POWERPC_VEC_ALTIVEC, ppc64_sysv_abi_push_float(), ppc_floating_point_unit_p(), gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_gp0_regnum, gdbarch_tdep::ppc_lr_regnum, ppc_sysv_use_opencl_abi(), gdbarch_tdep::ppc_vr0_regnum, read_memory_unsigned_integer(), regcache_cooked_read_unsigned(), regcache_cooked_write(), regcache_cooked_write_signed(), regcache_cooked_write_unsigned(), register_type(), regnum, regtype, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_BOOL, TYPE_CODE_CHAR, TYPE_CODE_COMPLEX, TYPE_CODE_DECFLOAT, TYPE_CODE_ENUM, TYPE_CODE_FLT, TYPE_CODE_FUNC, TYPE_CODE_INT, TYPE_CODE_METHOD, TYPE_CODE_PTR, TYPE_CODE_REF, TYPE_CODE_STRUCT, TYPE_FIELD_TYPE, TYPE_LENGTH, TYPE_NFIELDS, TYPE_TARGET_TYPE, TYPE_VECTOR, ULONGEST, unpack_long(), value_as_address(), value_contents(), value_type(), gdbarch_tdep::vector_abi, word, gdbarch_tdep::wordsize, wordsize, write_memory(), write_memory_signed_integer(), and write_memory_unsigned_integer().
Referenced by rs6000_gdbarch_init().
enum return_value_convention ppc64_sysv_abi_return_value | ( | struct gdbarch * | gdbarch, |
struct value * | function, | ||
struct type * | valtype, | ||
struct regcache * | regcache, | ||
gdb_byte * | readbuf, | ||
const gdb_byte * | writebuf | ||
) |
Definition at line 1770 of file ppc-sysv-tdep.c.
References check_typedef(), convert_typed_floating(), gdb_assert, gdbarch_byte_order(), gdbarch_tdep(), get_decimal_float_return_value(), MAX_REGISTER_SIZE, offset, POWERPC_VEC_ALTIVEC, ppc_floating_point_unit_p(), gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_gp0_regnum, ppc_sysv_use_opencl_abi(), gdbarch_tdep::ppc_vr0_regnum, regcache_cooked_read(), regcache_cooked_read_part(), regcache_cooked_read_unsigned(), regcache_cooked_write(), regcache_cooked_write_part(), regcache_cooked_write_unsigned(), register_size(), register_type(), regnum, regtype, RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, store_unsigned_integer(), TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_BOOL, TYPE_CODE_CHAR, TYPE_CODE_COMPLEX, TYPE_CODE_DECFLOAT, TYPE_CODE_ENUM, TYPE_CODE_FLT, TYPE_CODE_INT, TYPE_CODE_PTR, TYPE_CODE_REF, TYPE_LENGTH, TYPE_TARGET_TYPE, TYPE_VECTOR, ULONGEST, unpack_long(), value_type(), and gdbarch_tdep::vector_abi.
Referenced by rs6000_gdbarch_init().
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().
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().
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().
enum return_value_convention ppc_sysv_abi_broken_return_value | ( | struct gdbarch * | gdbarch, |
struct value * | function, | ||
struct type * | valtype, | ||
struct regcache * | regcache, | ||
gdb_byte * | readbuf, | ||
const gdb_byte * | writebuf | ||
) |
Definition at line 1053 of file ppc-sysv-tdep.c.
References do_ppc_sysv_return_value(), and value_type().
Referenced by ppcfbsd_return_value(), ppcnbsd_return_value(), and ppcobsd_init_abi().
CORE_ADDR ppc_sysv_abi_push_dummy_call | ( | struct gdbarch * | gdbarch, |
struct value * | function, | ||
struct regcache * | regcache, | ||
CORE_ADDR | bp_addr, | ||
int | nargs, | ||
struct value ** | args, | ||
CORE_ADDR | sp, | ||
int | struct_return, | ||
CORE_ADDR | struct_addr | ||
) |
Definition at line 62 of file ppc-sysv-tdep.c.
References align_down(), align_up(), check_typedef(), convert_typed_floating(), floatformats_ibm_long_double, gdb_assert, gdbarch_byte_order(), gdbarch_long_double_format(), gdbarch_sp_regnum(), gdbarch_tdep(), len, MAX_REGISTER_SIZE, memcpy(), memset(), p, POWERPC_VEC_ALTIVEC, POWERPC_VEC_SPE, gdbarch_tdep::ppc_cr_regnum, gdbarch_tdep::ppc_ev0_regnum, gdbarch_tdep::ppc_fp0_regnum, gdbarch_tdep::ppc_gp0_regnum, gdbarch_tdep::ppc_lr_regnum, ppc_sysv_use_opencl_abi(), gdbarch_tdep::ppc_vr0_regnum, regcache_cooked_read_unsigned(), regcache_cooked_write(), regcache_cooked_write_signed(), regcache_cooked_write_unsigned(), register_type(), regnum, regtype, gdbarch_tdep::soft_float, store_unsigned_integer(), TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_DECFLOAT, TYPE_CODE_FLT, TYPE_CODE_INT, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_LENGTH, TYPE_TARGET_TYPE, TYPE_VECTOR, ULONGEST, unpack_long(), value_contents(), value_type(), gdbarch_tdep::vector_abi, word, gdbarch_tdep::wordsize, write_memory(), and write_memory_signed_integer().
Referenced by rs6000_gdbarch_init().
enum return_value_convention ppc_sysv_abi_return_value | ( | struct gdbarch * | gdbarch, |
struct value * | function, | ||
struct type * | valtype, | ||
struct regcache * | regcache, | ||
gdb_byte * | readbuf, | ||
const gdb_byte * | writebuf | ||
) |
Definition at line 1043 of file ppc-sysv-tdep.c.
References do_ppc_sysv_return_value(), and value_type().
Referenced by ppc_linux_return_value(), and rs6000_gdbarch_init().
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().
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().
int vsx_support_p | ( | struct gdbarch * | gdbarch | ) |