GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Enumerations | Functions | Variables
/tmp/gdb-13.1/gdb/s390-tdep.c File Reference
#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)
 
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 values390_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 types390_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 types390_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 values390_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 values390_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 values390_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_caches390_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 values390_frame_prev_register (frame_info_ptr this_frame, void **this_prologue_cache, int regnum)
 
static struct s390_stub_unwind_caches390_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 values390_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_tdeps390_gdbarch_tdep_alloc ()
 
static struct gdbarchs390_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
 

Macro Definition Documentation

◆ s390_validate_reg_range

#define s390_validate_reg_range (   feature,
  tdesc_data,
  start,
  names 
)
Value:
do \
{ \
for (int i = 0; i < ARRAY_SIZE (names); i++) \
if (!tdesc_numbered_register (feature, tdesc_data, start + i, names[i])) \
return false; \
} \
while (0)
int tdesc_numbered_register(const struct tdesc_feature *feature, struct tdesc_arch_data *data, int regno, const char *name)
static const registry< gdbarch >::key< tdesc_arch_data > tdesc_data

Definition at line 6824 of file s390-tdep.c.

Typedef Documentation

◆ s390_displaced_step_copy_insn_closure

Definition at line 426 of file s390-tdep.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
s390_dwarf_reg_r0l 

Definition at line 1167 of file s390-tdep.c.

Function Documentation

◆ _initialize_s390_tdep()

void _initialize_s390_tdep ( )

◆ BP_MANIPULATION()

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().

◆ is_non_branch_ril()

static int is_non_branch_ril ( gdb_byte *  insn)
static

Definition at line 376 of file s390-tdep.c.

Referenced by s390_displaced_step_copy_insn().

◆ is_power_of_two()

static int is_power_of_two ( unsigned int  n)
static

Definition at line 1696 of file s390-tdep.c.

Referenced by s390_function_arg_integer().

◆ is_ri()

static int is_ri ( bfd_byte *  insn,
int  op1,
int  op2,
unsigned int *  r1,
int *  i2 
)
static

Definition at line 125 of file s390-tdep.c.

Referenced by s390_analyze_prologue(), and s390_displaced_step_fixup().

◆ is_ril()

static int is_ril ( bfd_byte *  insn,
int  op1,
int  op2,
unsigned int *  r1,
int *  i2 
)
static

Definition at line 141 of file s390-tdep.c.

Referenced by s390_analyze_prologue(), and s390_displaced_step_fixup().

◆ is_rr()

static int is_rr ( bfd_byte *  insn,
int  op,
unsigned int *  r1,
unsigned int *  r2 
)
static

Definition at line 163 of file s390-tdep.c.

Referenced by s390_analyze_prologue(), and s390_displaced_step_fixup().

◆ is_rre()

static int is_rre ( bfd_byte *  insn,
int  op,
unsigned int *  r1,
unsigned int *  r2 
)
static

Definition at line 178 of file s390-tdep.c.

Referenced by s390_analyze_prologue(), and s390_displaced_step_fixup().

◆ is_rs()

static int is_rs ( bfd_byte *  insn,
int  op,
unsigned int *  r1,
unsigned int *  r3,
int *  d2,
unsigned int *  b2 
)
static

◆ is_rsy()

static int is_rsy ( bfd_byte *  insn,
int  op1,
int  op2,
unsigned int *  r1,
unsigned int *  r3,
int *  d2,
unsigned int *  b2 
)
static

◆ is_rx()

static int is_rx ( bfd_byte *  insn,
int  op,
unsigned int *  r1,
int *  d2,
unsigned int *  x2,
unsigned int *  b2 
)
static

Definition at line 233 of file s390-tdep.c.

Referenced by s390_analyze_prologue(), and s390_displaced_step_fixup().

◆ is_rxy()

static int is_rxy ( bfd_byte *  insn,
int  op1,
int  op2,
unsigned int *  r1,
int *  d2,
unsigned int *  x2,
unsigned int *  b2 
)
static

Definition at line 251 of file s390-tdep.c.

Referenced by s390_analyze_prologue(), and s390_displaced_step_fixup().

◆ regnum_is_gpr_full()

static int regnum_is_gpr_full ( s390_gdbarch_tdep tdep,
int  regnum 
)
static

◆ regnum_is_vxr_full()

static int regnum_is_vxr_full ( s390_gdbarch_tdep tdep,
int  regnum 
)
static

◆ s390_addr()

static pv_t s390_addr ( struct s390_prologue_data data,
int  d2,
unsigned int  x2,
unsigned int  b2 
)
static

Definition at line 625 of file s390-tdep.c.

References pv_add(), and pv_constant().

Referenced by s390_analyze_prologue(), s390_load(), and s390_store().

◆ s390_addr_bits_remove()

static CORE_ADDR s390_addr_bits_remove ( struct gdbarch gdbarch,
CORE_ADDR  addr 
)
static

Definition at line 1567 of file s390-tdep.c.

Referenced by s390_gdbarch_init().

◆ s390_address_class_name_to_type_flags()

static bool s390_address_class_name_to_type_flags ( struct gdbarch gdbarch,
const char *  name,
type_instance_flags *  type_flags_ptr 
)
static

Definition at line 1601 of file s390-tdep.c.

References name, and TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1.

Referenced by s390_gdbarch_init().

◆ s390_address_class_type_flags()

static type_instance_flags s390_address_class_type_flags ( int  byte_size,
int  dwarf2_addr_class 
)
static

Definition at line 1576 of file s390-tdep.c.

References TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1.

Referenced by s390_gdbarch_init().

◆ s390_address_class_type_flags_to_name()

static const char * s390_address_class_type_flags_to_name ( struct gdbarch gdbarch,
type_instance_flags  type_flags 
)
static

Definition at line 1588 of file s390-tdep.c.

References TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1.

Referenced by s390_gdbarch_init().

◆ s390_adjust_frame_regnum()

static int s390_adjust_frame_regnum ( struct gdbarch gdbarch,
int  num,
int  eh_frame_p 
)
static

Definition at line 2249 of file s390-tdep.c.

References s390_dwarf_reg_r0l.

Referenced by s390_gdbarch_init().

◆ s390_analyze_prologue()

static CORE_ADDR s390_analyze_prologue ( struct gdbarch gdbarch,
CORE_ADDR  start_pc,
CORE_ADDR  current_pc,
struct s390_prologue_data data 
)
static

◆ s390_ax_pseudo_register_collect()

static int s390_ax_pseudo_register_collect ( struct gdbarch gdbarch,
struct agent_expr ax,
int  regnum 
)
static

◆ s390_ax_pseudo_register_push_stack()

static int s390_ax_pseudo_register_push_stack ( struct gdbarch gdbarch,
struct agent_expr ax,
int  regnum 
)
static

◆ s390_backchain_frame_unwind_cache()

static void s390_backchain_frame_unwind_cache ( frame_info_ptr  this_frame,
struct s390_unwind_cache info 
)
static

◆ s390_check_for_saved()

static void s390_check_for_saved ( void *  data_untyped,
pv_t  addr,
CORE_ADDR  size,
pv_t  value 
)
static

◆ s390_displaced_step_copy_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

◆ s390_displaced_step_fixup()

static void s390_displaced_step_fixup ( struct gdbarch gdbarch,
displaced_step_copy_insn_closure closure_,
CORE_ADDR  from,
CORE_ADDR  to,
struct regcache regs 
)
static

◆ s390_displaced_step_hw_singlestep()

static bool s390_displaced_step_hw_singlestep ( struct gdbarch gdbarch)
static

Definition at line 580 of file s390-tdep.c.

Referenced by s390_gdbarch_init().

◆ s390_dummy_id()

static struct frame_id s390_dummy_id ( struct gdbarch gdbarch,
frame_info_ptr  this_frame 
)
static

◆ s390_dwarf2_frame_init_reg()

static void s390_dwarf2_frame_init_reg ( struct gdbarch gdbarch,
int  regnum,
struct dwarf2_frame_state_reg reg,
frame_info_ptr  this_frame 
)
static

◆ s390_dwarf2_prev_register()

static struct value * s390_dwarf2_prev_register ( frame_info_ptr  this_frame,
void **  this_cache,
int  regnum 
)
static

Definition at line 2261 of file s390-tdep.c.

References regnum, and s390_unwind_pseudo_register().

Referenced by s390_dwarf2_frame_init_reg().

◆ s390_dwarf_reg_to_regnum()

static int s390_dwarf_reg_to_regnum ( struct gdbarch gdbarch,
int  reg 
)
static

◆ s390_effective_inner_type()

static struct type * s390_effective_inner_type ( struct type type,
unsigned int  min_size 
)
static

◆ s390_frame_align()

static CORE_ADDR s390_frame_align ( struct gdbarch gdbarch,
CORE_ADDR  addr 
)
static

Definition at line 1998 of file s390-tdep.c.

Referenced by s390_gdbarch_init().

◆ s390_frame_base_address()

static CORE_ADDR s390_frame_base_address ( frame_info_ptr  this_frame,
void **  this_cache 
)
static

Definition at line 2747 of file s390-tdep.c.

References s390_frame_unwind_cache().

◆ s390_frame_prev_register()

static struct value * s390_frame_prev_register ( frame_info_ptr  this_frame,
void **  this_prologue_cache,
int  regnum 
)
static

Definition at line 2629 of file s390-tdep.c.

References regnum, s390_frame_unwind_cache(), and s390_trad_frame_prev_register().

◆ s390_frame_this_id()

static void s390_frame_this_id ( frame_info_ptr  this_frame,
void **  this_prologue_cache,
struct frame_id this_id 
)
static

◆ s390_frame_unwind_cache()

static struct s390_unwind_cache * s390_frame_unwind_cache ( frame_info_ptr  this_frame,
void **  this_prologue_cache 
)
static

◆ s390_function_arg_float()

static int s390_function_arg_float ( struct type type)
static

Definition at line 1664 of file s390-tdep.c.

References type::code(), type::length(), and s390_effective_inner_type().

Referenced by s390_handle_arg().

◆ s390_function_arg_integer()

static int s390_function_arg_integer ( struct type type)
static

Definition at line 1706 of file s390-tdep.c.

References code, type::code(), is_power_of_two(), type::length(), and TYPE_IS_REFERENCE.

Referenced by s390_handle_arg().

◆ s390_function_arg_vector()

static int s390_function_arg_vector ( struct type type)
static

Definition at line 1682 of file s390-tdep.c.

References type::code(), type::is_vector(), type::length(), and s390_effective_inner_type().

Referenced by s390_handle_arg().

◆ s390_gcc_target_options()

static std::string s390_gcc_target_options ( struct gdbarch gdbarch)
static

Definition at line 6792 of file s390-tdep.c.

References gdbarch_ptr_bit().

Referenced by s390_gdbarch_init().

◆ s390_gdbarch_init()

static struct gdbarch * s390_gdbarch_init ( struct gdbarch_info  info,
struct gdbarch_list arches 
)
static

Definition at line 7019 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, gdbarch::info(), 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(), 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().

◆ s390_gdbarch_tdep_alloc()

static s390_gdbarch_tdep * s390_gdbarch_tdep_alloc ( )
static

◆ s390_gen_return_address()

static void s390_gen_return_address ( struct gdbarch gdbarch,
struct agent_expr ax,
struct axs_value value,
CORE_ADDR  scope 
)
static

Definition at line 1552 of file s390-tdep.c.

References axs_lvalue_register, value::reg, register_type(), S390_R14_REGNUM, and value::type.

Referenced by s390_gdbarch_init().

◆ s390_gnu_triplet_regexp()

static const char * s390_gnu_triplet_regexp ( struct gdbarch gdbarch)
static

Definition at line 6803 of file s390-tdep.c.

Referenced by s390_gdbarch_init().

◆ s390_guess_tracepoint_registers()

static void s390_guess_tracepoint_registers ( struct gdbarch gdbarch,
struct regcache regcache,
CORE_ADDR  addr 
)
static

◆ s390_handle_arg()

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

◆ s390_is_partial_instruction()

static int s390_is_partial_instruction ( struct gdbarch gdbarch,
CORE_ADDR  loc,
int *  len 
)
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().

◆ s390_load()

static pv_t s390_load ( struct s390_prologue_data data,
int  d2,
unsigned int  x2,
unsigned int  b2,
CORE_ADDR  size 
)
static

◆ s390_local_base_address()

static CORE_ADDR s390_local_base_address ( frame_info_ptr  this_frame,
void **  this_cache 
)
static

Definition at line 2755 of file s390-tdep.c.

References s390_frame_unwind_cache().

◆ s390_popcnt()

static int s390_popcnt ( unsigned int  x)
static

Definition at line 2872 of file s390-tdep.c.

Referenced by s390_process_record().

◆ s390_process_record()

static int s390_process_record ( struct gdbarch gdbarch,
struct regcache regcache,
CORE_ADDR  addr 
)
static

◆ s390_prologue_frame_unwind_cache()

static int s390_prologue_frame_unwind_cache ( frame_info_ptr  this_frame,
struct s390_unwind_cache info 
)
static

◆ s390_pseudo_register_name()

static const char * s390_pseudo_register_name ( struct gdbarch gdbarch,
int  regnum 
)
static

◆ s390_pseudo_register_read()

static enum register_status s390_pseudo_register_read ( struct gdbarch gdbarch,
readable_regcache regcache,
int  regnum,
gdb_byte *  buf 
)
static

◆ s390_pseudo_register_reggroup_p()

static int s390_pseudo_register_reggroup_p ( struct gdbarch gdbarch,
int  regnum,
const struct reggroup group 
)
static

◆ s390_pseudo_register_type()

static struct type * s390_pseudo_register_type ( struct gdbarch gdbarch,
int  regnum 
)
static

◆ s390_pseudo_register_write()

static void s390_pseudo_register_write ( struct gdbarch gdbarch,
struct regcache regcache,
int  regnum,
const gdb_byte *  buf 
)
static

◆ s390_push_dummy_call()

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

◆ s390_readinstruction()

static int s390_readinstruction ( bfd_byte  instr[],
CORE_ADDR  at 
)
static

Definition at line 92 of file s390-tdep.c.

References target_read_memory().

Referenced by s390_analyze_prologue(), and s390_stub_frame_sniffer().

◆ s390_record_address_mask()

static CORE_ADDR s390_record_address_mask ( struct gdbarch gdbarch,
struct regcache regcache,
CORE_ADDR  val 
)
static

◆ s390_record_calc_disp()

static CORE_ADDR s390_record_calc_disp ( struct gdbarch gdbarch,
struct regcache regcache,
uint8_t  rx,
uint16_t  bd,
int8_t  dh 
)
static

◆ s390_record_calc_disp_common()

static CORE_ADDR s390_record_calc_disp_common ( struct gdbarch gdbarch,
struct regcache regcache,
ULONGEST  x,
uint16_t  bd,
int8_t  dh 
)
static

◆ s390_record_calc_disp_vsce()

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

◆ s390_record_calc_rl()

static CORE_ADDR s390_record_calc_rl ( struct gdbarch gdbarch,
struct regcache regcache,
CORE_ADDR  addr,
uint16_t  i1,
uint16_t  i2 
)
static

Definition at line 2863 of file s390-tdep.c.

References s390_record_address_mask().

Referenced by s390_process_record().

◆ s390_record_gpr_g()

static int s390_record_gpr_g ( struct gdbarch gdbarch,
struct regcache regcache,
int  i 
)
static

◆ s390_record_gpr_h()

static int s390_record_gpr_h ( struct gdbarch gdbarch,
struct regcache regcache,
int  i 
)
static

◆ s390_record_vr()

static int s390_record_vr ( struct gdbarch gdbarch,
struct regcache regcache,
int  i 
)
static

◆ s390_register_call_saved()

static int s390_register_call_saved ( struct gdbarch gdbarch,
int  regnum 
)
static

◆ s390_register_name()

static const char * s390_register_name ( struct gdbarch gdbarch,
int  regnum 
)
static

Definition at line 1110 of file s390-tdep.c.

References regnum, S390_V0_LOWER_REGNUM, S390_V15_LOWER_REGNUM, and tdesc_register_name().

Referenced by s390_gdbarch_init().

◆ s390_register_return_value()

static void s390_register_return_value ( struct gdbarch gdbarch,
struct type type,
struct regcache regcache,
gdb_byte *  out,
const gdb_byte *  in 
)
static

◆ s390_return_value()

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

◆ s390_skip_prologue()

static CORE_ADDR s390_skip_prologue ( struct gdbarch gdbarch,
CORE_ADDR  pc 
)
static

◆ s390_software_single_step()

static std::vector< CORE_ADDR > s390_software_single_step ( struct regcache regcache)
static

◆ s390_stack_frame_destroyed_p()

static int s390_stack_frame_destroyed_p ( struct gdbarch gdbarch,
CORE_ADDR  pc 
)
static

◆ s390_stap_is_single_operand()

static int s390_stap_is_single_operand ( struct gdbarch gdbarch,
const char *  s 
)
static

Definition at line 6812 of file s390-tdep.c.

Referenced by s390_gdbarch_init().

◆ s390_store()

static void s390_store ( struct s390_prologue_data data,
int  d2,
unsigned int  x2,
unsigned int  b2,
CORE_ADDR  size,
pv_t  value 
)
static

◆ s390_stub_frame_prev_register()

static struct value * s390_stub_frame_prev_register ( frame_info_ptr  this_frame,
void **  this_prologue_cache,
int  regnum 
)
static

◆ s390_stub_frame_sniffer()

static int s390_stub_frame_sniffer ( const struct frame_unwind self,
frame_info_ptr  this_frame,
void **  this_prologue_cache 
)
static

◆ s390_stub_frame_this_id()

static void s390_stub_frame_this_id ( frame_info_ptr  this_frame,
void **  this_prologue_cache,
struct frame_id this_id 
)
static

Definition at line 2692 of file s390-tdep.c.

References frame_id_build(), get_frame_pc(), and s390_stub_frame_unwind_cache().

◆ s390_stub_frame_unwind_cache()

static struct s390_stub_unwind_cache * s390_stub_frame_unwind_cache ( frame_info_ptr  this_frame,
void **  this_prologue_cache 
)
static

◆ s390_tdesc_valid()

static bool s390_tdesc_valid ( s390_gdbarch_tdep tdep,
struct tdesc_arch_data tdesc_data 
)
static

◆ s390_trad_frame_prev_register()

struct value * s390_trad_frame_prev_register ( frame_info_ptr  this_frame,
trad_frame_saved_reg  saved_regs[],
int  regnum 
)

◆ s390_unwind_pc()

static CORE_ADDR s390_unwind_pc ( struct gdbarch gdbarch,
frame_info_ptr  next_frame 
)
static

◆ s390_unwind_pseudo_register()

static struct value * s390_unwind_pseudo_register ( frame_info_ptr  this_frame,
int  regnum 
)
static

◆ s390_unwind_sp()

static CORE_ADDR s390_unwind_sp ( struct gdbarch gdbarch,
frame_info_ptr  next_frame 
)
static

◆ s390_value_from_register()

static struct value * s390_value_from_register ( struct gdbarch gdbarch,
struct type type,
int  regnum,
struct frame_id  frame_id 
)
static

Variable Documentation

◆ s390_break_insn

constexpr gdb_byte s390_break_insn[] = { 0x0, 0x1 }
constexpr

Definition at line 52 of file s390-tdep.c.

◆ s390_disassembler_options

char* s390_disassembler_options
static

Definition at line 48 of file s390-tdep.c.

Referenced by s390_gdbarch_init().

◆ s390_dwarf_regmap

const short s390_dwarf_regmap[]
static

Definition at line 1120 of file s390-tdep.c.

Referenced by s390_dwarf_reg_to_regnum().

◆ s390_frame_base

const struct frame_base s390_frame_base
static
Initial value:
= {
}
static const struct frame_unwind s390_frame_unwind
Definition: s390-tdep.c:2640
static CORE_ADDR s390_local_base_address(frame_info_ptr this_frame, void **this_cache)
Definition: s390-tdep.c:2755
static CORE_ADDR s390_frame_base_address(frame_info_ptr this_frame, void **this_cache)
Definition: s390-tdep.c:2747

Definition at line 2762 of file s390-tdep.c.

Referenced by s390_gdbarch_init().

◆ s390_frame_unwind

const struct frame_unwind s390_frame_unwind
static
Initial value:
= {
"s390 prologue",
NULL,
}
int default_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
Definition: frame-unwind.c:217
enum unwind_stop_reason default_frame_unwind_stop_reason(frame_info_ptr this_frame, void **this_cache)
Definition: frame-unwind.c:227
@ NORMAL_FRAME
Definition: frame.h:179
static void s390_frame_this_id(frame_info_ptr this_frame, void **this_prologue_cache, struct frame_id *this_id)
Definition: s390-tdep.c:2609
static struct value * s390_frame_prev_register(frame_info_ptr this_frame, void **this_prologue_cache, int regnum)
Definition: s390-tdep.c:2629

Definition at line 2640 of file s390-tdep.c.

Referenced by s390_gdbarch_init().

◆ s390_stub_frame_unwind

const struct frame_unwind s390_stub_frame_unwind
static
Initial value:
= {
"s390 stub",
NULL,
}
static struct value * s390_stub_frame_prev_register(frame_info_ptr this_frame, void **this_prologue_cache, int regnum)
Definition: s390-tdep.c:2704
static void s390_stub_frame_this_id(frame_info_ptr this_frame, void **this_prologue_cache, struct frame_id *this_id)
Definition: s390-tdep.c:2692
static int s390_stub_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
Definition: s390-tdep.c:2715

Definition at line 2734 of file s390-tdep.c.

Referenced by s390_gdbarch_init().