GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Enumerations | Functions | Variables
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, 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 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_tdep_up s390_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 6833 of file s390-tdep.c.

Referenced by s390_tdesc_valid().

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 1176 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 1705 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 634 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 1576 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 1610 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 1585 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 1597 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 2258 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,
bool completed_p )
static

◆ s390_displaced_step_hw_singlestep()

static bool s390_displaced_step_hw_singlestep ( struct gdbarch * gdbarch)
static

Definition at line 589 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 2270 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 2007 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 2756 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 2638 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 1673 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 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().

◆ s390_function_arg_vector()

static int s390_function_arg_vector ( struct type * type)
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().

◆ s390_gcc_target_options()

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

Definition at line 6801 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 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().

◆ s390_gdbarch_tdep_alloc()

static s390_gdbarch_tdep_up s390_gdbarch_tdep_alloc ( )
static

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

References ABI_NONE, and S390_VECTOR_ABI_NONE.

Referenced by s390_gdbarch_init().

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

◆ s390_gnu_triplet_regexp()

static const char * s390_gnu_triplet_regexp ( struct gdbarch * gdbarch)
static

Definition at line 6812 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 2764 of file s390-tdep.c.

References s390_frame_unwind_cache().

◆ s390_popcnt()

static int s390_popcnt ( unsigned int x)
static

Definition at line 2881 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 2872 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 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().

◆ 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 6821 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 2701 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 1129 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:2649
static CORE_ADDR s390_local_base_address(frame_info_ptr this_frame, void **this_cache)
Definition s390-tdep.c:2764
static CORE_ADDR s390_frame_base_address(frame_info_ptr this_frame, void **this_cache)
Definition s390-tdep.c:2756

Definition at line 2771 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)
enum unwind_stop_reason default_frame_unwind_stop_reason(frame_info_ptr this_frame, void **this_cache)
@ NORMAL_FRAME
Definition frame.h:187
static void s390_frame_this_id(frame_info_ptr this_frame, void **this_prologue_cache, struct frame_id *this_id)
Definition s390-tdep.c:2618
static struct value * s390_frame_prev_register(frame_info_ptr this_frame, void **this_prologue_cache, int regnum)
Definition s390-tdep.c:2638

Definition at line 2649 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:2713
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:2701
static int s390_stub_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
Definition s390-tdep.c:2724

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

Referenced by s390_gdbarch_init().