GDB (xrefs)
|
#include "defs.h"
#include "arch-utils.h"
#include "ax-gdb.h"
#include "dwarf2/frame.h"
#include "elf/s390.h"
#include "elf-bfd.h"
#include "frame-base.h"
#include "frame-unwind.h"
#include "gdbarch.h"
#include "gdbcore.h"
#include "infrun.h"
#include "linux-tdep.h"
#include "objfiles.h"
#include "osabi.h"
#include "record-full.h"
#include "regcache.h"
#include "reggroups.h"
#include "s390-tdep.h"
#include "target-descriptions.h"
#include "trad-frame.h"
#include "value.h"
#include "inferior.h"
#include "features/s390-linux32.c"
#include "features/s390x-linux64.c"
Go to the source code of this file.
Classes | |
struct | s390_prologue_data |
struct | s390_arg_state |
struct | s390_unwind_cache |
struct | s390_stub_unwind_cache |
Macros | |
#define | s390_validate_reg_range(feature, tdesc_data, start, names) |
Typedefs | |
typedef buf_displaced_step_copy_insn_closure | s390_displaced_step_copy_insn_closure |
Enumerations | |
enum | { s390_dwarf_reg_r0l = ARRAY_SIZE (s390_dwarf_regmap) - 16 } |
Functions | |
typedef | BP_MANIPULATION (s390_break_insn) |
static int | s390_readinstruction (bfd_byte instr[], CORE_ADDR at) |
static int | is_ri (bfd_byte *insn, int op1, int op2, unsigned int *r1, int *i2) |
static int | is_ril (bfd_byte *insn, int op1, int op2, unsigned int *r1, int *i2) |
static int | is_rr (bfd_byte *insn, int op, unsigned int *r1, unsigned int *r2) |
static int | is_rre (bfd_byte *insn, int op, unsigned int *r1, unsigned int *r2) |
static int | is_rs (bfd_byte *insn, int op, unsigned int *r1, unsigned int *r3, int *d2, unsigned int *b2) |
static int | is_rsy (bfd_byte *insn, int op1, int op2, unsigned int *r1, unsigned int *r3, int *d2, unsigned int *b2) |
static int | is_rx (bfd_byte *insn, int op, unsigned int *r1, int *d2, unsigned int *x2, unsigned int *b2) |
static int | is_rxy (bfd_byte *insn, int op1, int op2, unsigned int *r1, int *d2, unsigned int *x2, unsigned int *b2) |
static int | s390_is_partial_instruction (struct gdbarch *gdbarch, CORE_ADDR loc, int *len) |
static std::vector< CORE_ADDR > | s390_software_single_step (struct regcache *regcache) |
static int | is_non_branch_ril (gdb_byte *insn) |
static displaced_step_copy_insn_closure_up | s390_displaced_step_copy_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs) |
static void | s390_displaced_step_fixup (struct gdbarch *gdbarch, displaced_step_copy_insn_closure *closure_, CORE_ADDR from, CORE_ADDR to, struct regcache *regs, bool completed_p) |
static bool | s390_displaced_step_hw_singlestep (struct gdbarch *gdbarch) |
static pv_t | s390_addr (struct s390_prologue_data *data, int d2, unsigned int x2, unsigned int b2) |
static void | s390_store (struct s390_prologue_data *data, int d2, unsigned int x2, unsigned int b2, CORE_ADDR size, pv_t value) |
static pv_t | s390_load (struct s390_prologue_data *data, int d2, unsigned int x2, unsigned int b2, CORE_ADDR size) |
static void | s390_check_for_saved (void *data_untyped, pv_t addr, CORE_ADDR size, pv_t value) |
static CORE_ADDR | s390_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc, CORE_ADDR current_pc, struct s390_prologue_data *data) |
static CORE_ADDR | s390_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc) |
static int | s390_register_call_saved (struct gdbarch *gdbarch, int regnum) |
static void | s390_guess_tracepoint_registers (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr) |
static const char * | s390_register_name (struct gdbarch *gdbarch, int regnum) |
static int | s390_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg) |
static int | regnum_is_gpr_full (s390_gdbarch_tdep *tdep, int regnum) |
static int | regnum_is_vxr_full (s390_gdbarch_tdep *tdep, int regnum) |
static struct value * | s390_value_from_register (struct gdbarch *gdbarch, struct type *type, int regnum, struct frame_id frame_id) |
static const char * | s390_pseudo_register_name (struct gdbarch *gdbarch, int regnum) |
static struct type * | s390_pseudo_register_type (struct gdbarch *gdbarch, int regnum) |
static enum register_status | s390_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache, int regnum, gdb_byte *buf) |
static void | s390_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, const gdb_byte *buf) |
static int | s390_pseudo_register_reggroup_p (struct gdbarch *gdbarch, int regnum, const struct reggroup *group) |
static int | s390_ax_pseudo_register_collect (struct gdbarch *gdbarch, struct agent_expr *ax, int regnum) |
static int | s390_ax_pseudo_register_push_stack (struct gdbarch *gdbarch, struct agent_expr *ax, int regnum) |
static void | s390_gen_return_address (struct gdbarch *gdbarch, struct agent_expr *ax, struct axs_value *value, CORE_ADDR scope) |
static CORE_ADDR | s390_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr) |
static type_instance_flags | s390_address_class_type_flags (int byte_size, int dwarf2_addr_class) |
static const char * | s390_address_class_type_flags_to_name (struct gdbarch *gdbarch, type_instance_flags type_flags) |
static bool | s390_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, type_instance_flags *type_flags_ptr) |
static struct type * | s390_effective_inner_type (struct type *type, unsigned int min_size) |
static int | s390_function_arg_float (struct type *type) |
static int | s390_function_arg_vector (struct type *type) |
static int | is_power_of_two (unsigned int n) |
static int | s390_function_arg_integer (struct type *type) |
static void | s390_handle_arg (struct s390_arg_state *as, struct value *arg, s390_gdbarch_tdep *tdep, int word_size, enum bfd_endian byte_order, int is_unnamed) |
static CORE_ADDR | s390_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, function_call_return_method return_method, CORE_ADDR struct_addr) |
static struct frame_id | s390_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame) |
static CORE_ADDR | s390_frame_align (struct gdbarch *gdbarch, CORE_ADDR addr) |
static void | s390_register_return_value (struct gdbarch *gdbarch, struct type *type, struct regcache *regcache, gdb_byte *out, const gdb_byte *in) |
static enum return_value_convention | s390_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *out, const gdb_byte *in) |
static int | s390_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc) |
static CORE_ADDR | s390_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame) |
static CORE_ADDR | s390_unwind_sp (struct gdbarch *gdbarch, frame_info_ptr next_frame) |
static struct value * | s390_unwind_pseudo_register (frame_info_ptr this_frame, int regnum) |
static int | s390_adjust_frame_regnum (struct gdbarch *gdbarch, int num, int eh_frame_p) |
static struct value * | s390_dwarf2_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum) |
static void | s390_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum, struct dwarf2_frame_state_reg *reg, frame_info_ptr this_frame) |
struct value * | s390_trad_frame_prev_register (frame_info_ptr this_frame, trad_frame_saved_reg saved_regs[], int regnum) |
static int | s390_prologue_frame_unwind_cache (frame_info_ptr this_frame, struct s390_unwind_cache *info) |
static void | s390_backchain_frame_unwind_cache (frame_info_ptr this_frame, struct s390_unwind_cache *info) |
static struct s390_unwind_cache * | s390_frame_unwind_cache (frame_info_ptr this_frame, void **this_prologue_cache) |
static void | s390_frame_this_id (frame_info_ptr this_frame, void **this_prologue_cache, struct frame_id *this_id) |
static struct value * | s390_frame_prev_register (frame_info_ptr this_frame, void **this_prologue_cache, int regnum) |
static struct s390_stub_unwind_cache * | s390_stub_frame_unwind_cache (frame_info_ptr this_frame, void **this_prologue_cache) |
static void | s390_stub_frame_this_id (frame_info_ptr this_frame, void **this_prologue_cache, struct frame_id *this_id) |
static struct value * | s390_stub_frame_prev_register (frame_info_ptr this_frame, void **this_prologue_cache, int regnum) |
static int | s390_stub_frame_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache) |
static CORE_ADDR | s390_frame_base_address (frame_info_ptr this_frame, void **this_cache) |
static CORE_ADDR | s390_local_base_address (frame_info_ptr this_frame, void **this_cache) |
static CORE_ADDR | s390_record_address_mask (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR val) |
static CORE_ADDR | s390_record_calc_disp_common (struct gdbarch *gdbarch, struct regcache *regcache, ULONGEST x, uint16_t bd, int8_t dh) |
static CORE_ADDR | s390_record_calc_disp (struct gdbarch *gdbarch, struct regcache *regcache, uint8_t rx, uint16_t bd, int8_t dh) |
static int | s390_record_calc_disp_vsce (struct gdbarch *gdbarch, struct regcache *regcache, uint8_t vx, uint8_t el, uint8_t es, uint16_t bd, int8_t dh, CORE_ADDR *res) |
static CORE_ADDR | s390_record_calc_rl (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr, uint16_t i1, uint16_t i2) |
static int | s390_popcnt (unsigned int x) |
static int | s390_record_gpr_g (struct gdbarch *gdbarch, struct regcache *regcache, int i) |
static int | s390_record_gpr_h (struct gdbarch *gdbarch, struct regcache *regcache, int i) |
static int | s390_record_vr (struct gdbarch *gdbarch, struct regcache *regcache, int i) |
static int | s390_process_record (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr) |
static std::string | s390_gcc_target_options (struct gdbarch *gdbarch) |
static const char * | s390_gnu_triplet_regexp (struct gdbarch *gdbarch) |
static int | s390_stap_is_single_operand (struct gdbarch *gdbarch, const char *s) |
static bool | s390_tdesc_valid (s390_gdbarch_tdep *tdep, struct tdesc_arch_data *tdesc_data) |
static s390_gdbarch_tdep_up | s390_gdbarch_tdep_alloc () |
static struct gdbarch * | s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
void | _initialize_s390_tdep () |
Variables | |
static char * | s390_disassembler_options |
constexpr gdb_byte | s390_break_insn [] = { 0x0, 0x1 } |
static const short | s390_dwarf_regmap [] |
static const struct frame_unwind | s390_frame_unwind |
static const struct frame_unwind | s390_stub_frame_unwind |
static const struct frame_base | s390_frame_base |
#define s390_validate_reg_range | ( | feature, | |
tdesc_data, | |||
start, | |||
names ) |
Definition at line 6833 of file s390-tdep.c.
Referenced by s390_tdesc_valid().
Definition at line 426 of file s390-tdep.c.
anonymous enum |
Enumerator | |
---|---|
s390_dwarf_reg_r0l |
Definition at line 1176 of file s390-tdep.c.
void _initialize_s390_tdep | ( | ) |
Definition at line 7235 of file s390-tdep.c.
References gdbarch_register(), initialize_tdesc_s390_linux32(), initialize_tdesc_s390x_linux64(), and s390_gdbarch_init().
typedef BP_MANIPULATION | ( | s390_break_insn | ) |
Definition at line 54 of file s390-tdep.c.
References check_typedef(), type::code(), type::is_vector(), and type::length().
|
static |
Definition at line 376 of file s390-tdep.c.
Referenced by s390_displaced_step_copy_insn().
|
static |
Definition at line 1705 of file s390-tdep.c.
Referenced by s390_function_arg_integer().
|
static |
Definition at line 125 of file s390-tdep.c.
Referenced by s390_analyze_prologue(), and s390_displaced_step_fixup().
|
static |
Definition at line 141 of file s390-tdep.c.
Referenced by s390_analyze_prologue(), and s390_displaced_step_fixup().
|
static |
Definition at line 163 of file s390-tdep.c.
Referenced by s390_analyze_prologue(), and s390_displaced_step_fixup().
|
static |
Definition at line 178 of file s390-tdep.c.
Referenced by s390_analyze_prologue(), and s390_displaced_step_fixup().
|
static |
Definition at line 194 of file s390-tdep.c.
Referenced by s390_analyze_prologue(), s390_displaced_step_fixup(), and s390_stack_frame_destroyed_p().
|
static |
Definition at line 212 of file s390-tdep.c.
Referenced by s390_analyze_prologue(), s390_displaced_step_fixup(), and s390_stack_frame_destroyed_p().
|
static |
Definition at line 233 of file s390-tdep.c.
Referenced by s390_analyze_prologue(), and s390_displaced_step_fixup().
|
static |
Definition at line 251 of file s390-tdep.c.
Referenced by s390_analyze_prologue(), and s390_displaced_step_fixup().
|
static |
Definition at line 1217 of file s390-tdep.c.
References s390_gdbarch_tdep::gpr_full_regnum, and regnum.
Referenced by s390_ax_pseudo_register_collect(), s390_ax_pseudo_register_push_stack(), s390_pseudo_register_name(), s390_pseudo_register_read(), s390_pseudo_register_type(), s390_pseudo_register_write(), and s390_unwind_pseudo_register().
|
static |
Definition at line 1228 of file s390-tdep.c.
References regnum, and s390_gdbarch_tdep::v0_full_regnum.
Referenced by s390_ax_pseudo_register_collect(), s390_ax_pseudo_register_push_stack(), s390_pseudo_register_name(), s390_pseudo_register_read(), s390_pseudo_register_reggroup_p(), s390_pseudo_register_type(), s390_pseudo_register_write(), and s390_value_from_register().
|
static |
Definition at line 634 of file s390-tdep.c.
References pv_add(), and pv_constant().
Referenced by s390_analyze_prologue(), s390_load(), and s390_store().
|
static |
Definition at line 1576 of file s390-tdep.c.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 1610 of file s390-tdep.c.
References name, and TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 1585 of file s390-tdep.c.
References TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 1597 of file s390-tdep.c.
References TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 2258 of file s390-tdep.c.
References s390_dwarf_reg_r0l.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 761 of file s390-tdep.c.
References dummy, gdbarch_addr_bit(), gdbarch_byte_order(), gdbarch_ptr_bit(), is_ri(), is_ril(), is_rr(), is_rre(), is_rs(), is_rsy(), is_rx(), is_rxy(), prologue_value::kind, op1_afi, op1_ag, op1_agfi, op1_aghi, op1_ahi, op1_alfi, op1_algfi, op1_ay, op1_bras, op1_brasl, op1_brc, op1_brcl, op1_larl, op1_lay, op1_lg, op1_lgfi, op1_lghi, op1_lhi, op1_ly, op1_sg, op1_slfi, op1_slgfi, op1_stg, op1_stmg, op1_stmy, op1_sty, op1_sy, op2_afi, op2_ag, op2_agfi, op2_aghi, op2_ahi, op2_alfi, op2_algfi, op2_ay, op2_bras, op2_brasl, op2_brc, op2_brcl, op2_larl, op2_lay, op2_lg, op2_lgfi, op2_lghi, op2_lhi, op2_ly, op2_sg, op2_slfi, op2_slgfi, op2_stg, op2_stmg, op2_stmy, op2_sty, op2_sy, op_a, op_agr, op_ar, op_bas, op_basr, op_bc, op_bcr, op_l, op_la, op_lgr, op_lr, op_s, op_sgr, op_sr, op_st, op_std, op_stm, pv_add(), pv_add_constant(), pv_constant(), pv_is_identical(), pv_is_register_k(), pv_register(), pv_subtract(), pvk_unknown, s390_addr(), s390_check_for_saved(), S390_F0_REGNUM, S390_FRAME_REGNUM, s390_load(), S390_MAX_INSTR_SIZE, S390_NUM_FPRS, S390_NUM_GPRS, S390_R0_REGNUM, s390_readinstruction(), S390_SP_REGNUM, s390_store(), and s390_prologue_data::stack.
Referenced by s390_prologue_frame_unwind_cache(), and s390_skip_prologue().
|
static |
Definition at line 1479 of file s390-tdep.c.
References ax_reg_mask(), s390_gdbarch_tdep::cc_regnum, s390_gdbarch_tdep::gpr_full_regnum, s390_gdbarch_tdep::pc_regnum, regnum, regnum_is_gpr_full(), regnum_is_vxr_full(), S390_F0_REGNUM, S390_PSWA_REGNUM, S390_PSWM_REGNUM, S390_R0_REGNUM, S390_R0_UPPER_REGNUM, S390_V0_LOWER_REGNUM, and s390_gdbarch_tdep::v0_full_regnum.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 1513 of file s390-tdep.c.
References ax_const_l(), ax_reg(), ax_simple(), ax_zero_ext(), s390_gdbarch_tdep::cc_regnum, s390_gdbarch_tdep::gpr_full_regnum, s390_gdbarch_tdep::pc_regnum, register_size(), regnum, regnum_is_gpr_full(), regnum_is_vxr_full(), S390_PSWA_REGNUM, S390_PSWM_REGNUM, S390_R0_REGNUM, and S390_R0_UPPER_REGNUM.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 2527 of file s390-tdep.c.
References gdbarch_byte_order(), gdbarch_ptr_bit(), get_frame_arch(), get_frame_pc(), get_frame_register_unsigned(), gdbarch::info(), S390_NUM_REGS, S390_PSWA_REGNUM, S390_PSWM_REGNUM, s390_register_call_saved(), S390_RETADDR_REGNUM, S390_SP_REGNUM, and safe_read_memory_integer().
Referenced by s390_frame_unwind_cache().
|
static |
Definition at line 718 of file s390-tdep.c.
References prologue_value::k, pv_is_register(), pv_is_register_k(), S390_F0_REGNUM, S390_NUM_FPRS, S390_NUM_GPRS, S390_R0_REGNUM, S390_SP_REGNUM, and size.
Referenced by s390_analyze_prologue().
|
static |
Definition at line 431 of file s390-tdep.c.
References displaced_debug_printf, extract_signed_integer(), gdbarch_max_insn_length(), INT32_MAX, is_non_branch_ril(), paddress(), read_memory(), store_signed_integer(), and write_memory().
Referenced by s390_gdbarch_init().
|
static |
Definition at line 482 of file s390-tdep.c.
References buf_displaced_step_copy_insn_closure::buf, displaced_debug_printf, is_ri(), is_ril(), is_rr(), is_rre(), is_rs(), is_rsy(), is_rx(), is_rxy(), op1_bctg, op1_bras, op1_brasl, op1_bxhg, op1_bxleg, op1_larl, op2_bras, op2_brasl, op2_brctg, op2_bxhg, op2_bxleg, op2_larl, op_bas, op_basr, op_bc, op_bcr, op_bct, op_bctgr, op_bctr, op_bxh, op_bxle, paddress(), regcache_cooked_read_unsigned(), regcache_cooked_write_unsigned(), regcache_read_pc(), regcache_write_pc(), register_size(), S390_PSWA_REGNUM, and S390_R0_REGNUM.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 589 of file s390-tdep.c.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 1994 of file s390-tdep.c.
References frame_id_build(), gdbarch_addr_bits_remove(), gdbarch_ptr_bit(), get_frame_pc(), get_frame_register_unsigned(), and S390_SP_REGNUM.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 2279 of file s390-tdep.c.
References DWARF2_FRAME_REG_FN, DWARF2_FRAME_REG_RA, DWARF2_FRAME_REG_SAME_VALUE, DWARF2_FRAME_REG_UNDEFINED, value::reg, regnum, s390_dwarf2_prev_register(), S390_NUM_REGS, S390_PSWA_REGNUM, S390_PSWM_REGNUM, and s390_register_call_saved().
Referenced by s390_gdbarch_init().
|
static |
Definition at line 2270 of file s390-tdep.c.
References regnum, and s390_unwind_pseudo_register().
Referenced by s390_dwarf2_frame_init_reg().
|
static |
Definition at line 1182 of file s390-tdep.c.
References s390_gdbarch_tdep::gpr_full_regnum, s390_dwarf_regmap, S390_F0_REGNUM, S390_F15_REGNUM, S390_V16_REGNUM, S390_V31_REGNUM, and s390_gdbarch_tdep::v0_full_regnum.
Referenced by s390_gdbarch_init().
Definition at line 1639 of file s390-tdep.c.
References check_typedef(), type::code(), f(), type::field(), type::length(), type::num_fields(), and type.
Referenced by s390_function_arg_float(), and s390_function_arg_vector().
|
static |
Definition at line 2007 of file s390-tdep.c.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 2756 of file s390-tdep.c.
References s390_frame_unwind_cache().
|
static |
Definition at line 2638 of file s390-tdep.c.
References regnum, s390_frame_unwind_cache(), and s390_trad_frame_prev_register().
|
static |
Definition at line 2618 of file s390-tdep.c.
References frame_id_build(), frame_id_build_unavailable_stack(), and s390_frame_unwind_cache().
|
static |
Definition at line 2584 of file s390-tdep.c.
References FRAME_OBSTACK_ZALLOC, s390_backchain_frame_unwind_cache(), s390_prologue_frame_unwind_cache(), and trad_frame_alloc_saved_regs().
Referenced by s390_frame_base_address(), s390_frame_prev_register(), s390_frame_this_id(), and s390_local_base_address().
|
static |
Definition at line 1673 of file s390-tdep.c.
References type::code(), type::length(), and s390_effective_inner_type().
Referenced by s390_handle_arg().
|
static |
Definition at line 1715 of file s390-tdep.c.
References code, type::code(), is_power_of_two(), type::length(), and TYPE_IS_REFERENCE.
Referenced by s390_handle_arg().
|
static |
Definition at line 1691 of file s390-tdep.c.
References type::code(), type::is_vector(), type::length(), and s390_effective_inner_type().
Referenced by s390_handle_arg().
|
static |
Definition at line 6801 of file s390-tdep.c.
References gdbarch_ptr_bit().
Referenced by s390_gdbarch_init().
|
static |
Definition at line 7027 of file s390-tdep.c.
References arches, s390_gdbarch_tdep::cc_regnum, core_addr_lessthan(), dwarf2_append_unwinders(), dwarf2_frame_base_sniffer(), dwarf2_frame_set_adjust_regnum(), dwarf2_frame_set_init_reg(), floatformats_ieee_quad, frame_base_append_sniffer(), frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_alloc(), gdbarch_free(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), gdbarch_num_regs(), registry< T >::get(), s390_gdbarch_tdep::gpr_full_regnum, s390_gdbarch_tdep::have_upper, s390_gdbarch_tdep::have_vx, s390_gdbarch_tdep::pc_regnum, s390_addr_bits_remove(), s390_address_class_name_to_type_flags(), s390_address_class_type_flags(), s390_address_class_type_flags_to_name(), s390_adjust_frame_regnum(), s390_ax_pseudo_register_collect(), s390_ax_pseudo_register_push_stack(), s390_disassembler_options, s390_displaced_step_copy_insn(), s390_displaced_step_fixup(), s390_displaced_step_hw_singlestep(), s390_dummy_id(), s390_dwarf2_frame_init_reg(), s390_dwarf_reg_to_regnum(), S390_F0_REGNUM, s390_frame_align(), s390_frame_base, s390_frame_unwind, s390_gcc_target_options(), s390_gdbarch_tdep_alloc(), s390_gen_return_address(), s390_gnu_triplet_regexp(), s390_guess_tracepoint_registers(), S390_MAX_INSTR_SIZE, S390_NUM_REGS, s390_process_record(), s390_pseudo_register_name(), s390_pseudo_register_read(), s390_pseudo_register_reggroup_p(), s390_pseudo_register_type(), s390_pseudo_register_write(), s390_push_dummy_call(), s390_register_name(), s390_return_value(), s390_skip_prologue(), s390_software_single_step(), S390_SP_REGNUM, s390_stack_frame_destroyed_p(), s390_stap_is_single_operand(), s390_stub_frame_unwind, s390_tdesc_valid(), s390_unwind_pc(), s390_unwind_sp(), s390_value_from_register(), S390_VECTOR_ABI_128, set_gdbarch_addr_bits_remove(), set_gdbarch_address_class_name_to_type_flags(), set_gdbarch_address_class_type_flags(), set_gdbarch_address_class_type_flags_to_name(), set_gdbarch_ax_pseudo_register_collect(), set_gdbarch_ax_pseudo_register_push_stack(), set_gdbarch_believe_pcc_promotion(), set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_char_signed(), set_gdbarch_decr_pc_after_break(), set_gdbarch_disassembler_options(), set_gdbarch_displaced_step_copy_insn(), set_gdbarch_displaced_step_fixup(), set_gdbarch_displaced_step_hw_singlestep(), set_gdbarch_dummy_id(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_fp0_regnum(), set_gdbarch_frame_align(), set_gdbarch_gcc_target_options(), set_gdbarch_gen_return_address(), set_gdbarch_gnu_triplet_regexp(), set_gdbarch_guess_tracepoint_registers(), set_gdbarch_inner_than(), set_gdbarch_long_bit(), set_gdbarch_long_double_bit(), set_gdbarch_long_double_format(), 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_process_record(), 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_return_value(), set_gdbarch_skip_prologue(), set_gdbarch_software_single_step(), set_gdbarch_sp_regnum(), set_gdbarch_stab_reg_to_regnum(), set_gdbarch_stack_frame_destroyed_p(), set_gdbarch_stap_is_single_operand(), set_gdbarch_stap_register_indirection_prefixes(), set_gdbarch_stap_register_indirection_suffixes(), set_gdbarch_stap_register_prefixes(), set_gdbarch_sw_breakpoint_from_kind(), set_gdbarch_type_align(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), set_gdbarch_valid_disassembler_options(), set_gdbarch_value_from_register(), set_tdesc_pseudo_register_name(), set_tdesc_pseudo_register_reggroup_p(), set_tdesc_pseudo_register_type(), stap_register_indirection_prefixes, stap_register_indirection_suffixes, s390_gdbarch_tdep::tdesc, tdesc_data, tdesc_data_alloc(), tdesc_has_registers(), tdesc_s390_linux32, tdesc_s390x_linux64, tdesc_use_registers(), and s390_gdbarch_tdep::v0_full_regnum.
Referenced by _initialize_s390_tdep().
|
static |
Definition at line 6998 of file s390-tdep.c.
References ABI_NONE, and S390_VECTOR_ABI_NONE.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 1561 of file s390-tdep.c.
References axs_lvalue_register, value::reg, register_type(), S390_R14_REGNUM, and value::type().
Referenced by s390_gdbarch_init().
|
static |
Definition at line 6812 of file s390-tdep.c.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 1084 of file s390-tdep.c.
References ABI_LINUX_S390, gdbarch_byte_order(), reg_buffer::raw_supply(), register_size(), S390_PSWA_REGNUM, S390_PSWM_REGNUM, and store_unsigned_integer().
Referenced by s390_gdbarch_init().
|
static |
Definition at line 1757 of file s390-tdep.c.
References ABI_LINUX_S390, s390_arg_state::argp, check_typedef(), value::contents(), regcache::cooked_write(), regcache::cooked_write_part(), s390_arg_state::copy, extract_signed_integer(), extract_unsigned_integer(), s390_arg_state::fr, s390_arg_state::gr, type::is_unsigned(), type::length(), s390_arg_state::regcache, regcache_cooked_write_unsigned(), regnum, S390_F0_REGNUM, s390_function_arg_float(), s390_function_arg_integer(), s390_function_arg_vector(), S390_R0_REGNUM, S390_V24_REGNUM, S390_VECTOR_ABI_128, value::type(), s390_arg_state::vr, write_memory(), and write_memory_unsigned_integer().
Referenced by s390_push_dummy_call().
|
static |
Definition at line 275 of file s390-tdep.c.
References gdbarch_byte_order(), loc, and read_memory_integer().
Referenced by s390_software_single_step().
|
static |
Definition at line 684 of file s390-tdep.c.
References target_section::addr, current_inferior(), pv_constant(), pv_is_constant(), read_memory_integer(), s390_addr(), size, target_section_by_addr(), and target_section::the_bfd_section.
Referenced by s390_analyze_prologue().
|
static |
Definition at line 2764 of file s390-tdep.c.
References s390_frame_unwind_cache().
|
static |
Definition at line 2881 of file s390-tdep.c.
Referenced by s390_process_record().
|
static |
Definition at line 2948 of file s390-tdep.c.
References extract_unsigned_integer(), gdb_printf(), gdb_stderr, gdb_stdlog, gdbarch_byte_order(), paddress(), read_memory_unsigned_integer(), record_full_arch_list_add_end(), record_full_arch_list_add_mem(), record_full_arch_list_add_reg(), regcache_raw_read_unsigned(), S390_A0_REGNUM, S390_F0_REGNUM, S390_F2_REGNUM, S390_FPC_REGNUM, s390_popcnt(), S390_PSWA_REGNUM, S390_PSWM_REGNUM, S390_R0_REGNUM, S390_R1_REGNUM, S390_R2_REGNUM, s390_record_address_mask(), s390_record_calc_disp(), s390_record_calc_disp_vsce(), s390_record_calc_rl(), s390_record_gpr_g(), s390_record_gpr_h(), s390_record_vr(), s390_gdbarch_tdep::s390_syscall_record, S390_TDB_ABORT_CODE_REGNUM, S390_TDB_ATIA_REGNUM, S390_TDB_CONFLICT_TOKEN_REGNUM, S390_TDB_DWORD0_REGNUM, S390_TDB_R0_REGNUM, and target_read_memory().
Referenced by s390_gdbarch_init().
|
static |
Definition at line 2340 of file s390-tdep.c.
References func, gdbarch_addr_bits_remove(), gdbarch_ptr_bit(), get_frame_arch(), get_frame_func_if_available(), get_frame_pc(), get_frame_register_unsigned(), get_frame_type(), get_next_frame(), get_pc_function_start(), s390_prologue_data::gpr, INLINE_FRAME, prologue_value::k, NORMAL_FRAME, pv_is_identical(), pv_is_register(), s390_analyze_prologue(), S390_F0_REGNUM, S390_FRAME_REGNUM, S390_NUM_REGS, S390_PSWA_REGNUM, S390_PSWM_REGNUM, S390_R0_REGNUM, s390_register_call_saved(), S390_RETADDR_REGNUM, S390_SP_REGNUM, s390_stack_frame_destroyed_p(), and size.
Referenced by s390_frame_unwind_cache().
|
static |
Definition at line 1260 of file s390-tdep.c.
References s390_gdbarch_tdep::cc_regnum, s390_gdbarch_tdep::gpr_full_regnum, s390_gdbarch_tdep::pc_regnum, regnum, regnum_is_gpr_full(), regnum_is_vxr_full(), and s390_gdbarch_tdep::v0_full_regnum.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 1317 of file s390-tdep.c.
References s390_gdbarch_tdep::cc_regnum, gdbarch_byte_order(), s390_gdbarch_tdep::gpr_full_regnum, s390_gdbarch_tdep::pc_regnum, readable_regcache::raw_read(), register_size(), regnum, regnum_is_gpr_full(), regnum_is_vxr_full(), S390_F0_REGNUM, S390_PSWA_REGNUM, S390_PSWM_REGNUM, S390_R0_REGNUM, S390_R0_UPPER_REGNUM, S390_V0_LOWER_REGNUM, status, store_unsigned_integer(), and s390_gdbarch_tdep::v0_full_regnum.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 1451 of file s390-tdep.c.
References s390_gdbarch_tdep::cc_regnum, default_register_reggroup_p(), general_reggroup, s390_gdbarch_tdep::pc_regnum, regnum, regnum_is_vxr_full(), restore_reggroup, save_reggroup, and vector_reggroup.
Referenced by s390_gdbarch_init().
Definition at line 1294 of file s390-tdep.c.
References builtin_type::builtin_func_ptr, builtin_type::builtin_int, builtin_type(), builtin_type::builtin_uint64, s390_gdbarch_tdep::cc_regnum, s390_gdbarch_tdep::pc_regnum, regnum, regnum_is_gpr_full(), regnum_is_vxr_full(), S390_V16_REGNUM, and tdesc_register_type().
Referenced by s390_gdbarch_init().
|
static |
Definition at line 1392 of file s390-tdep.c.
References s390_gdbarch_tdep::cc_regnum, extract_unsigned_integer(), gdbarch_byte_order(), s390_gdbarch_tdep::gpr_full_regnum, s390_gdbarch_tdep::pc_regnum, regcache::raw_write(), regcache_raw_read_unsigned(), regcache_raw_write_unsigned(), register_size(), regnum, regnum_is_gpr_full(), regnum_is_vxr_full(), S390_F0_REGNUM, S390_PSWA_REGNUM, S390_PSWM_REGNUM, S390_R0_REGNUM, S390_R0_UPPER_REGNUM, S390_V0_LOWER_REGNUM, and s390_gdbarch_tdep::v0_full_regnum.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 1911 of file s390-tdep.c.
References s390_arg_state::argp, check_typedef(), type::code(), s390_arg_state::copy, s390_arg_state::fr, gdbarch_addr_bits_remove(), gdbarch_byte_order(), gdbarch_ptr_bit(), s390_arg_state::gr, type::has_varargs(), type::num_fields(), s390_arg_state::regcache, regcache_cooked_read_unsigned(), regcache_cooked_write_unsigned(), return_method_struct, s390_handle_arg(), S390_PSWA_REGNUM, S390_R2_REGNUM, S390_RETADDR_REGNUM, S390_SP_REGNUM, type::target_type(), value::type(), and s390_arg_state::vr.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 92 of file s390-tdep.c.
References target_read_memory().
Referenced by s390_analyze_prologue(), and s390_stub_frame_sniffer().
|
static |
Definition at line 2784 of file s390-tdep.c.
References ABI_LINUX_S390, gdb_printf(), gdb_stdlog, regcache_raw_read_unsigned(), S390_PSWA_REGNUM, and S390_PSWM_REGNUM.
Referenced by s390_process_record(), s390_record_calc_disp_common(), and s390_record_calc_rl().
|
static |
Definition at line 2838 of file s390-tdep.c.
References regcache_raw_read_unsigned(), S390_R0_REGNUM, and s390_record_calc_disp_common().
Referenced by s390_process_record().
|
static |
Definition at line 2819 of file s390-tdep.c.
References regcache_raw_read_unsigned(), S390_R0_REGNUM, and s390_record_address_mask().
Referenced by s390_record_calc_disp(), and s390_record_calc_disp_vsce().
|
static |
Definition at line 2850 of file s390-tdep.c.
References readable_regcache::cooked_read(), extract_unsigned_integer(), gdbarch_byte_order(), readable_regcache::raw_read(), s390_record_calc_disp_common(), S390_V16_REGNUM, and s390_gdbarch_tdep::v0_full_regnum.
Referenced by s390_process_record().
|
static |
Definition at line 2872 of file s390-tdep.c.
References s390_record_address_mask().
Referenced by s390_process_record().
Definition at line 2895 of file s390-tdep.c.
References ABI_LINUX_S390, record_full_arch_list_add_reg(), S390_R0_REGNUM, and S390_R0_UPPER_REGNUM.
Referenced by s390_process_record().
Definition at line 2909 of file s390-tdep.c.
References ABI_LINUX_S390, record_full_arch_list_add_reg(), S390_R0_REGNUM, and S390_R0_UPPER_REGNUM.
Referenced by s390_process_record().
Definition at line 2928 of file s390-tdep.c.
References record_full_arch_list_add_reg(), S390_F0_REGNUM, S390_V0_LOWER_REGNUM, and S390_V16_REGNUM.
Referenced by s390_process_record().
|
static |
Definition at line 1055 of file s390-tdep.c.
References ABI_LINUX_S390, ABI_LINUX_ZSERIES, regnum, S390_A0_REGNUM, S390_A1_REGNUM, S390_F15_REGNUM, S390_F4_REGNUM, S390_F6_REGNUM, S390_F8_REGNUM, S390_R15_REGNUM, and S390_R6_REGNUM.
Referenced by s390_backchain_frame_unwind_cache(), s390_dwarf2_frame_init_reg(), and s390_prologue_frame_unwind_cache().
|
static |
Definition at line 1119 of file s390-tdep.c.
References regnum, S390_V0_LOWER_REGNUM, S390_V15_LOWER_REGNUM, and tdesc_register_name().
Referenced by s390_gdbarch_init().
|
static |
Definition at line 2018 of file s390-tdep.c.
References code, type::code(), readable_regcache::cooked_read(), readable_regcache::cooked_read_part(), regcache::cooked_write(), regcache::cooked_write_part(), extract_signed_integer(), extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_ptr_bit(), type::is_unsigned(), type::length(), regcache_cooked_write_signed(), regcache_cooked_write_unsigned(), S390_F0_REGNUM, S390_R2_REGNUM, S390_R3_REGNUM, and S390_V24_REGNUM.
Referenced by s390_return_value().
|
static |
Definition at line 2079 of file s390-tdep.c.
References check_typedef(), type::code(), type::is_vector(), type::length(), RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, s390_register_return_value(), and S390_VECTOR_ABI_128.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 1033 of file s390-tdep.c.
References find_pc_partial_function(), s390_analyze_prologue(), and skip_prologue_using_sal().
Referenced by s390_gdbarch_init().
|
static |
Definition at line 337 of file s390-tdep.c.
References reg_buffer::arch(), gdbarch_byte_order(), loc, read_memory_integer(), record_full_is_used(), regcache_read_pc(), and s390_is_partial_instruction().
Referenced by s390_gdbarch_init().
|
static |
Definition at line 2127 of file s390-tdep.c.
References gdbarch_ptr_bit(), is_rs(), is_rsy(), op1_lmg, op1_lmy, op2_lmg, op2_lmy, op_lm, S390_R0_REGNUM, S390_SP_REGNUM, and target_read_memory().
Referenced by s390_gdbarch_init(), and s390_prologue_frame_unwind_cache().
|
static |
Definition at line 6821 of file s390-tdep.c.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 651 of file s390-tdep.c.
References prologue_value::k, pv_is_constant(), pv_is_register_k(), pv_subtract(), s390_addr(), S390_R0_REGNUM, S390_SP_REGNUM, and size.
Referenced by s390_analyze_prologue().
|
static |
Definition at line 2713 of file s390-tdep.c.
References regnum, s390_stub_frame_unwind_cache(), and s390_trad_frame_prev_register().
|
static |
Definition at line 2724 of file s390-tdep.c.
References get_frame_address_in_block(), get_frame_pc(), in_plt_section(), S390_MAX_INSTR_SIZE, and s390_readinstruction().
|
static |
Definition at line 2701 of file s390-tdep.c.
References frame_id_build(), get_frame_pc(), and s390_stub_frame_unwind_cache().
|
static |
Definition at line 2673 of file s390-tdep.c.
References FRAME_OBSTACK_ZALLOC, gdbarch_ptr_bit(), get_frame_arch(), get_frame_register_unsigned(), S390_PSWA_REGNUM, S390_RETADDR_REGNUM, S390_SP_REGNUM, and trad_frame_alloc_saved_regs().
Referenced by s390_stub_frame_prev_register(), and s390_stub_frame_this_id().
|
static |
Definition at line 6846 of file s390-tdep.c.
References s390_gdbarch_tdep::have_gs, s390_gdbarch_tdep::have_linux_v1, s390_gdbarch_tdep::have_linux_v2, s390_gdbarch_tdep::have_tdb, s390_gdbarch_tdep::have_upper, s390_gdbarch_tdep::have_vx, S390_A0_REGNUM, S390_BC_GSD_REGNUM, S390_F0_REGNUM, S390_FPC_REGNUM, S390_GSD_REGNUM, S390_LAST_BREAK_REGNUM, S390_ORIG_R2_REGNUM, S390_PSWM_REGNUM, S390_R0_REGNUM, S390_R0_UPPER_REGNUM, S390_SYSTEM_CALL_REGNUM, S390_TDB_DWORD0_REGNUM, S390_V0_LOWER_REGNUM, S390_V16_REGNUM, s390_validate_reg_range, s390_gdbarch_tdep::tdesc, tdesc_data, tdesc_find_feature(), tdesc_has_registers(), tdesc_numbered_register(), and tdesc_unnumbered_register().
Referenced by s390_gdbarch_init().
struct value * s390_trad_frame_prev_register | ( | frame_info_ptr | this_frame, |
trad_frame_saved_reg | saved_regs[], | ||
int | regnum ) |
Definition at line 2315 of file s390-tdep.c.
References regnum, S390_NUM_REGS, s390_unwind_pseudo_register(), and trad_frame_get_prev_register().
Referenced by s390_frame_prev_register(), s390_sigtramp_frame_prev_register(), and s390_stub_frame_prev_register().
|
static |
Definition at line 2178 of file s390-tdep.c.
References frame_unwind_register_unsigned(), gdbarch_addr_bits_remove(), and s390_gdbarch_tdep::pc_regnum.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 2199 of file s390-tdep.c.
References value::allocate_optimized_out(), s390_gdbarch_tdep::cc_regnum, frame_unwind_register_value(), get_frame_arch(), s390_gdbarch_tdep::gpr_full_regnum, type::length(), value::optimized_out(), s390_gdbarch_tdep::pc_regnum, value::reg, register_type(), regnum, regnum_is_gpr_full(), S390_PSWA_REGNUM, S390_PSWM_REGNUM, S390_R0_REGNUM, value_as_long(), value_cast(), value_from_longest(), and value_from_pointer().
Referenced by s390_dwarf2_prev_register(), and s390_trad_frame_prev_register().
|
static |
Definition at line 2189 of file s390-tdep.c.
References frame_unwind_register_unsigned(), gdbarch_addr_bits_remove(), and S390_SP_REGNUM.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 1240 of file s390-tdep.c.
References check_typedef(), default_value_from_register(), type::length(), regnum, regnum_is_vxr_full(), S390_F0_REGNUM, S390_F15_REGNUM, S390_V16_REGNUM, S390_V31_REGNUM, value::set_offset(), and value.
Referenced by s390_gdbarch_init().
|
constexpr |
Definition at line 52 of file s390-tdep.c.
|
static |
Definition at line 48 of file s390-tdep.c.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 1129 of file s390-tdep.c.
Referenced by s390_dwarf_reg_to_regnum().
|
static |
Definition at line 2771 of file s390-tdep.c.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 2649 of file s390-tdep.c.
Referenced by s390_gdbarch_init().
|
static |
Definition at line 2743 of file s390-tdep.c.
Referenced by s390_gdbarch_init().