GDB (xrefs)
Classes | Macros | Typedefs | Enumerations | Functions | Variables
/tmp/gdb-8.1/gdb/s390-linux-tdep.c File Reference
#include "defs.h"
#include "arch-utils.h"
#include "frame.h"
#include "inferior.h"
#include "infrun.h"
#include "symtab.h"
#include "target.h"
#include "gdbcore.h"
#include "gdbcmd.h"
#include "objfiles.h"
#include "regcache.h"
#include "trad-frame.h"
#include "frame-base.h"
#include "frame-unwind.h"
#include "dwarf2-frame.h"
#include "reggroups.h"
#include "regset.h"
#include "value.h"
#include "dis-asm.h"
#include "solib-svr4.h"
#include "prologue-value.h"
#include "linux-tdep.h"
#include "s390-linux-tdep.h"
#include "linux-record.h"
#include "record-full.h"
#include "auxv.h"
#include "xml-syscall.h"
#include "stap-probe.h"
#include "ax.h"
#include "ax-gdb.h"
#include "user-regs.h"
#include "cli/cli-utils.h"
#include <ctype.h>
#include "elf/common.h"
#include "elf/s390.h"
#include "elf-bfd.h"
#include <algorithm>
#include "features/s390-linux32.c"
#include "features/s390-linux32v1.c"
#include "features/s390-linux32v2.c"
#include "features/s390-linux64.c"
#include "features/s390-linux64v1.c"
#include "features/s390-linux64v2.c"
#include "features/s390-te-linux64.c"
#include "features/s390-vx-linux64.c"
#include "features/s390-tevx-linux64.c"
#include "features/s390-gs-linux64.c"
#include "features/s390x-linux64.c"
#include "features/s390x-linux64v1.c"
#include "features/s390x-linux64v2.c"
#include "features/s390x-te-linux64.c"
#include "features/s390x-vx-linux64.c"
#include "features/s390x-tevx-linux64.c"
#include "features/s390x-gs-linux64.c"

Go to the source code of this file.

Classes

struct  gdbarch_tdep
 
struct  s390_prologue_data
 
struct  s390_unwind_cache
 
struct  s390_stub_unwind_cache
 
struct  s390_sigtramp_unwind_cache
 
struct  s390_arg_state
 

Macros

#define XML_SYSCALL_FILENAME_S390   "syscalls/s390-linux.xml"
 
#define XML_SYSCALL_FILENAME_S390X   "syscalls/s390x-linux.xml"
 
#define S390_MAX_INSTR_SIZE   6
 
#define S390_NUM_GPRS   16
 
#define S390_NUM_FPRS   16
 

Typedefs

typedef buf_displaced_step_closure s390_displaced_step_closure
 

Enumerations

enum  s390_abi_kind { ABI_LINUX_S390, ABI_LINUX_ZSERIES }
 
enum  s390_vector_abi_kind { S390_VECTOR_ABI_NONE, S390_VECTOR_ABI_128 }
 
enum  { s390_dwarf_reg_r0l = ARRAY_SIZE (s390_dwarf_regmap) - 16 }
 
enum  {
  op1_lhi = 0xa7, op2_lhi = 0x08, op1_lghi = 0xa7, op2_lghi = 0x09,
  op1_lgfi = 0xc0, op2_lgfi = 0x01, op_lr = 0x18, op_lgr = 0xb904,
  op_l = 0x58, op1_ly = 0xe3, op2_ly = 0x58, op1_lg = 0xe3,
  op2_lg = 0x04, op_lm = 0x98, op1_lmy = 0xeb, op2_lmy = 0x98,
  op1_lmg = 0xeb, op2_lmg = 0x04, op_st = 0x50, op1_sty = 0xe3,
  op2_sty = 0x50, op1_stg = 0xe3, op2_stg = 0x24, op_std = 0x60,
  op_stm = 0x90, op1_stmy = 0xeb, op2_stmy = 0x90, op1_stmg = 0xeb,
  op2_stmg = 0x24, op1_aghi = 0xa7, op2_aghi = 0x0b, op1_ahi = 0xa7,
  op2_ahi = 0x0a, op1_agfi = 0xc2, op2_agfi = 0x08, op1_afi = 0xc2,
  op2_afi = 0x09, op1_algfi = 0xc2, op2_algfi = 0x0a, op1_alfi = 0xc2,
  op2_alfi = 0x0b, op_ar = 0x1a, op_agr = 0xb908, op_a = 0x5a,
  op1_ay = 0xe3, op2_ay = 0x5a, op1_ag = 0xe3, op2_ag = 0x08,
  op1_slgfi = 0xc2, op2_slgfi = 0x04, op1_slfi = 0xc2, op2_slfi = 0x05,
  op_sr = 0x1b, op_sgr = 0xb909, op_s = 0x5b, op1_sy = 0xe3,
  op2_sy = 0x5b, op1_sg = 0xe3, op2_sg = 0x09, op_nr = 0x14,
  op_ngr = 0xb980, op_la = 0x41, op1_lay = 0xe3, op2_lay = 0x71,
  op1_larl = 0xc0, op2_larl = 0x00, op_basr = 0x0d, op_bas = 0x4d,
  op_bcr = 0x07, op_bc = 0x0d, op_bctr = 0x06, op_bctgr = 0xb946,
  op_bct = 0x46, op1_bctg = 0xe3, op2_bctg = 0x46, op_bxh = 0x86,
  op1_bxhg = 0xeb, op2_bxhg = 0x44, op_bxle = 0x87, op1_bxleg = 0xeb,
  op2_bxleg = 0x45, op1_bras = 0xa7, op2_bras = 0x05, op1_brasl = 0xc0,
  op2_brasl = 0x05, op1_brc = 0xa7, op2_brc = 0x04, op1_brcl = 0xc0,
  op2_brcl = 0x04, op1_brct = 0xa7, op2_brct = 0x06, op1_brctg = 0xa7,
  op2_brctg = 0x07, op_brxh = 0x84, op1_brxhg = 0xec, op2_brxhg = 0x44,
  op_brxle = 0x85, op1_brxlg = 0xec, op2_brxlg = 0x45, op_svc = 0x0a
}
 

Functions

static int s390_register_call_saved (struct gdbarch *gdbarch, int regnum)
 
static int s390_cannot_store_register (struct gdbarch *gdbarch, int regnum)
 
static void s390_write_pc (struct regcache *regcache, CORE_ADDR pc)
 
static void s390_guess_tracepoint_registers (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr)
 
static int s390_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg)
 
static int s390_adjust_frame_regnum (struct gdbarch *gdbarch, int num, int eh_frame_p)
 
static int regnum_is_gpr_full (struct gdbarch_tdep *tdep, int regnum)
 
static int regnum_is_vxr_full (struct gdbarch_tdep *tdep, int regnum)
 
static const char * s390_register_name (struct gdbarch *gdbarch, int regnum)
 
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, struct 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 struct values390_value_from_register (struct gdbarch *gdbarch, struct type *type, int regnum, struct frame_id frame_id)
 
static int s390_pseudo_register_reggroup_p (struct gdbarch *gdbarch, int regnum, 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 int s390_is_partial_instruction (struct gdbarch *gdbarch, CORE_ADDR loc, int *len)
 
static std::vector< CORE_ADDRs390_software_single_step (struct regcache *regcache)
 
static int s390_displaced_step_hw_singlestep (struct gdbarch *gdbarch, struct displaced_step_closure *closure)
 
static void s390_supply_tdb_regset (const struct regset *regset, struct regcache *regcache, int regnum, const void *regs, size_t len)
 
static void s390_iterate_over_regset_sections (struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
 
static const struct target_descs390_core_read_description (struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd)
 
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 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_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static int is_non_branch_ril (gdb_byte *insn)
 
static struct displaced_step_closures390_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, struct displaced_step_closure *closure_, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
 
static struct values390_unwind_pseudo_register (struct frame_info *this_frame, int regnum)
 
static struct values390_trad_frame_prev_register (struct frame_info *this_frame, struct trad_frame_saved_reg saved_regs[], int regnum)
 
static int s390_prologue_frame_unwind_cache (struct frame_info *this_frame, struct s390_unwind_cache *info)
 
static void s390_backchain_frame_unwind_cache (struct frame_info *this_frame, struct s390_unwind_cache *info)
 
static struct s390_unwind_caches390_frame_unwind_cache (struct frame_info *this_frame, void **this_prologue_cache)
 
static void s390_frame_this_id (struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
 
static struct values390_frame_prev_register (struct frame_info *this_frame, void **this_prologue_cache, int regnum)
 
static struct s390_stub_unwind_caches390_stub_frame_unwind_cache (struct frame_info *this_frame, void **this_prologue_cache)
 
static void s390_stub_frame_this_id (struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
 
static struct values390_stub_frame_prev_register (struct frame_info *this_frame, void **this_prologue_cache, int regnum)
 
static int s390_stub_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
 
static struct s390_sigtramp_unwind_caches390_sigtramp_frame_unwind_cache (struct frame_info *this_frame, void **this_prologue_cache)
 
static void s390_sigtramp_frame_this_id (struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
 
static struct values390_sigtramp_frame_prev_register (struct frame_info *this_frame, void **this_prologue_cache, int regnum)
 
static int s390_sigtramp_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
 
static LONGEST s390_linux_get_syscall_number (struct gdbarch *gdbarch, ptid_t ptid)
 
static int s390_all_but_pc_registers_record (struct regcache *regcache)
 
static enum gdb_syscall s390_canonicalize_syscall (int syscall, enum s390_abi_kind abi)
 
static int s390_linux_syscall_record (struct regcache *regcache, LONGEST syscall_native)
 
static int s390_linux_record_signal (struct gdbarch *gdbarch, struct regcache *regcache, enum gdb_signal signal)
 
static CORE_ADDR s390_frame_base_address (struct frame_info *this_frame, void **this_cache)
 
static CORE_ADDR s390_local_base_address (struct frame_info *this_frame, void **this_cache)
 
static CORE_ADDR s390_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
 
static CORE_ADDR s390_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
 
static struct values390_dwarf2_prev_register (struct frame_info *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, struct frame_info *this_frame)
 
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, struct 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, int struct_return, CORE_ADDR struct_addr)
 
static struct frame_id s390_dummy_id (struct gdbarch *gdbarch, struct frame_info *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)
 
typedef BP_MANIPULATION (s390_break_insn)
 
static int 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, int type_flags)
 
static int s390_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, int *type_flags_ptr)
 
static char * 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 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 void s390_init_linux_record_tdep (struct linux_record_tdep *record_tdep, enum s390_abi_kind abi)
 
static struct gdbarchs390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 
void _initialize_s390_tdep (void)
 

Variables

static char * s390_disassembler_options
 
static const short s390_dwarf_regmap []
 
static const struct regcache_map_entry s390_gregmap []
 
static const struct regcache_map_entry s390_fpregmap []
 
static const struct regcache_map_entry s390_regmap_upper []
 
static const struct regcache_map_entry s390_regmap_last_break []
 
static const struct regcache_map_entry s390x_regmap_last_break []
 
static const struct regcache_map_entry s390_regmap_system_call []
 
static const struct regcache_map_entry s390_regmap_tdb []
 
static const struct regcache_map_entry s390_regmap_vxrs_low []
 
static const struct regcache_map_entry s390_regmap_vxrs_high []
 
static const struct regcache_map_entry s390_regmap_gs []
 
static const struct regcache_map_entry s390_regmap_gsbc []
 
const struct regset s390_gregset
 
const struct regset s390_fpregset
 
static const struct regset s390_upper_regset
 
const struct regset s390_last_break_regset
 
const struct regset s390x_last_break_regset
 
const struct regset s390_system_call_regset
 
const struct regset s390_tdb_regset
 
const struct regset s390_vxrs_low_regset
 
const struct regset s390_vxrs_high_regset
 
const struct regset s390_gs_regset
 
const struct regset s390_gsbc_regset
 
static const struct frame_unwind s390_frame_unwind
 
static const struct frame_unwind s390_stub_frame_unwind
 
static const struct frame_unwind s390_sigtramp_frame_unwind
 
static struct linux_record_tdep s390_linux_record_tdep
 
static struct linux_record_tdep s390x_linux_record_tdep
 
static const struct frame_base s390_frame_base
 
constexpr gdb_byte s390_break_insn [] = { 0x0, 0x1 }
 

Macro Definition Documentation

◆ S390_MAX_INSTR_SIZE

#define S390_MAX_INSTR_SIZE   6

◆ S390_NUM_FPRS

#define S390_NUM_FPRS   16

Definition at line 1303 of file s390-linux-tdep.c.

Referenced by s390_analyze_prologue(), and s390_check_for_saved().

◆ S390_NUM_GPRS

#define S390_NUM_GPRS   16

Definition at line 1302 of file s390-linux-tdep.c.

Referenced by s390_analyze_prologue(), and s390_check_for_saved().

◆ XML_SYSCALL_FILENAME_S390

#define XML_SYSCALL_FILENAME_S390   "syscalls/s390-linux.xml"

Definition at line 80 of file s390-linux-tdep.c.

Referenced by s390_gdbarch_init().

◆ XML_SYSCALL_FILENAME_S390X

#define XML_SYSCALL_FILENAME_S390X   "syscalls/s390x-linux.xml"

Definition at line 81 of file s390-linux-tdep.c.

Referenced by s390_gdbarch_init().

Typedef Documentation

◆ s390_displaced_step_closure

Definition at line 1864 of file s390-linux-tdep.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
s390_dwarf_reg_r0l 

Definition at line 260 of file s390-linux-tdep.c.

◆ anonymous enum

anonymous enum
Enumerator
op1_lhi 
op2_lhi 
op1_lghi 
op2_lghi 
op1_lgfi 
op2_lgfi 
op_lr 
op_lgr 
op_l 
op1_ly 
op2_ly 
op1_lg 
op2_lg 
op_lm 
op1_lmy 
op2_lmy 
op1_lmg 
op2_lmg 
op_st 
op1_sty 
op2_sty 
op1_stg 
op2_stg 
op_std 
op_stm 
op1_stmy 
op2_stmy 
op1_stmg 
op2_stmg 
op1_aghi 
op2_aghi 
op1_ahi 
op2_ahi 
op1_agfi 
op2_agfi 
op1_afi 
op2_afi 
op1_algfi 
op2_algfi 
op1_alfi 
op2_alfi 
op_ar 
op_agr 
op_a 
op1_ay 
op2_ay 
op1_ag 
op2_ag 
op1_slgfi 
op2_slgfi 
op1_slfi 
op2_slfi 
op_sr 
op_sgr 
op_s 
op1_sy 
op2_sy 
op1_sg 
op2_sg 
op_nr 
op_ngr 
op_la 
op1_lay 
op2_lay 
op1_larl 
op2_larl 
op_basr 
op_bas 
op_bcr 
op_bc 
op_bctr 
op_bctgr 
op_bct 
op1_bctg 
op2_bctg 
op_bxh 
op1_bxhg 
op2_bxhg 
op_bxle 
op1_bxleg 
op2_bxleg 
op1_bras 
op2_bras 
op1_brasl 
op2_brasl 
op1_brc 
op2_brc 
op1_brcl 
op2_brcl 
op1_brct 
op2_brct 
op1_brctg 
op2_brctg 
op_brxh 
op1_brxhg 
op2_brxhg 
op_brxle 
op1_brxlg 
op2_brxlg 
op_svc 

Definition at line 1058 of file s390-linux-tdep.c.

◆ s390_abi_kind

Enumerator
ABI_LINUX_S390 
ABI_LINUX_ZSERIES 

Definition at line 86 of file s390-linux-tdep.c.

◆ s390_vector_abi_kind

Enumerator
S390_VECTOR_ABI_NONE 
S390_VECTOR_ABI_128 

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

Function Documentation

◆ _initialize_s390_tdep()

void _initialize_s390_tdep ( void  )

◆ BP_MANIPULATION()

typedef BP_MANIPULATION ( s390_break_insn  )

Definition at line 3561 of file s390-linux-tdep.c.

References frame_info::addr.

◆ is_non_branch_ril()

static int is_non_branch_ril ( gdb_byte insn)
static

Definition at line 1815 of file s390-linux-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 3135 of file s390-linux-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 1162 of file s390-linux-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 1177 of file s390-linux-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 1198 of file s390-linux-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 1212 of file s390-linux-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 1264 of file s390-linux-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 1281 of file s390-linux-tdep.c.

Referenced by s390_analyze_prologue(), and s390_displaced_step_fixup().

◆ regnum_is_gpr_full()

static int regnum_is_gpr_full ( struct gdbarch_tdep tdep,
int  regnum 
)
static

◆ regnum_is_vxr_full()

static int regnum_is_vxr_full ( struct 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 1342 of file s390-linux-tdep.c.

References s390_prologue_data::gpr, pv_add(), and pv_constant().

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

◆ s390_address_class_name_to_type_flags()

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

Definition at line 3590 of file s390-linux-tdep.c.

References name, and TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1.

Referenced by s390_gdbarch_init().

◆ s390_address_class_type_flags()

static int s390_address_class_type_flags ( int  byte_size,
int  dwarf2_addr_class 
)
static

Definition at line 3572 of file s390-linux-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,
int  type_flags 
)
static

Definition at line 3581 of file s390-linux-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 297 of file s390-linux-tdep.c.

References s390_dwarf_reg_r0l.

Referenced by s390_gdbarch_init().

◆ s390_all_but_pc_registers_record()

static int s390_all_but_pc_registers_record ( struct regcache regcache)
static

◆ 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

Definition at line 1470 of file s390-linux-tdep.c.

References s390_prologue_data::back_chain_saved_p, s390_prologue_data::byte_order, dummy, s390_prologue_data::fpr, s390_prologue_data::fpr_size, s390_prologue_data::fpr_slot, gdbarch_addr_bit(), gdbarch_byte_order(), gdbarch_ptr_bit(), s390_prologue_data::gpr, s390_prologue_data::gpr_size, s390_prologue_data::gpr_slot, is_ri(), is_ril(), is_rr(), is_rre(), is_rs(), is_rsy(), is_rx(), is_rxy(), prologue_value::kind, make_scoped_restore(), 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(), pv_area::scan(), and s390_prologue_data::stack.

Referenced by s390_prologue_frame_unwind_cache(), and s390_skip_prologue().

◆ 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 ( struct frame_info this_frame,
struct s390_unwind_cache info 
)
static

◆ s390_cannot_store_register()

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

Definition at line 151 of file s390-linux-tdep.c.

References regnum, and S390_LAST_BREAK_REGNUM.

Referenced by s390_gdbarch_init().

◆ s390_canonicalize_syscall()

static enum gdb_syscall s390_canonicalize_syscall ( int  syscall,
enum s390_abi_kind  abi 
)
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_core_read_description()

static const struct target_desc* s390_core_read_description ( struct gdbarch gdbarch,
struct target_ops target,
bfd *  abfd 
)
static

◆ s390_displaced_step_copy_insn()

static struct displaced_step_closure* 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,
struct displaced_step_closure closure_,
CORE_ADDR  from,
CORE_ADDR  to,
struct regcache regs 
)
static

◆ s390_displaced_step_hw_singlestep()

static int s390_displaced_step_hw_singlestep ( struct gdbarch gdbarch,
struct displaced_step_closure closure 
)
static

Definition at line 765 of file s390-linux-tdep.c.

Referenced by s390_gdbarch_init().

◆ s390_dummy_id()

static struct frame_id s390_dummy_id ( struct gdbarch gdbarch,
struct frame_info 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,
struct frame_info this_frame 
)
static

◆ s390_dwarf2_prev_register()

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

Definition at line 3032 of file s390-linux-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 3437 of file s390-linux-tdep.c.

References frame_info::addr.

Referenced by s390_gdbarch_init().

◆ s390_frame_base_address()

static CORE_ADDR s390_frame_base_address ( struct frame_info this_frame,
void **  this_cache 
)
static

Definition at line 2989 of file s390-linux-tdep.c.

References s390_unwind_cache::frame_base, and s390_frame_unwind_cache().

◆ s390_frame_prev_register()

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

◆ s390_frame_this_id()

static void s390_frame_this_id ( struct frame_info 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 ( struct frame_info this_frame,
void **  this_prologue_cache 
)
static

◆ s390_function_arg_float()

static int s390_function_arg_float ( struct type type)
static

◆ s390_function_arg_integer()

static int s390_function_arg_integer ( struct type type)
static

◆ s390_function_arg_vector()

static int s390_function_arg_vector ( struct type type)
static

◆ s390_gcc_target_options()

static char* s390_gcc_target_options ( struct gdbarch gdbarch)
static

Definition at line 3607 of file s390-linux-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 7811 of file s390-linux-tdep.c.

References gdbarch_info::abfd, gdbarch_tdep::abi, ABI_LINUX_S390, ABI_LINUX_ZSERIES, gdbarch_info::bfd_arch_info, gdbarch_tdep::cc_regnum, core_addr_lessthan(), dwarf2_append_unwinders(), dwarf2_frame_base_sniffer(), dwarf2_frame_set_adjust_regnum(), dwarf2_frame_set_init_reg(), find_solib_trampoline_target(), floatformats_ia64_quad, frame_base_append_sniffer(), frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_list_lookup_by_info(), gdbarch_num_regs(), gdbarch_tdep(), gdbarch_tdep::gpr_full_regnum, gdbarch_tdep::have_gs, gdbarch_tdep::have_linux_v1, gdbarch_tdep::have_linux_v2, gdbarch_tdep::have_tdb, linux_displaced_step_location(), linux_init_abi(), gdbarch_list::next, gdbarch_tdep::pc_regnum, S390_A0_REGNUM, 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_BC_GSD_REGNUM, s390_cannot_store_register(), s390_core_read_description(), 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_FPC_REGNUM, s390_frame_align(), s390_frame_base, s390_frame_unwind, s390_gcc_target_options(), s390_gen_return_address(), s390_gnu_triplet_regexp(), S390_GSD_REGNUM, s390_guess_tracepoint_registers(), s390_init_linux_record_tdep(), s390_iterate_over_regset_sections(), S390_LAST_BREAK_REGNUM, s390_linux_get_syscall_number(), s390_linux_record_signal(), s390_linux_record_tdep, S390_MAX_INSTR_SIZE, S390_NUM_REGS, S390_ORIG_R2_REGNUM, 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_PSWA_REGNUM, S390_PSWM_REGNUM, s390_push_dummy_call(), S390_R0_REGNUM, S390_R0_UPPER_REGNUM, s390_register_name(), s390_return_value(), s390_sigtramp_frame_unwind, 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_SYSTEM_CALL_REGNUM, S390_TDB_DWORD0_REGNUM, s390_unwind_pc(), s390_unwind_sp(), S390_V0_LOWER_REGNUM, S390_V16_REGNUM, s390_value_from_register(), S390_VECTOR_ABI_128, S390_VECTOR_ABI_NONE, s390_write_pc(), s390x_linux_record_tdep, 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_cannot_store_register(), set_gdbarch_char_signed(), set_gdbarch_core_read_description(), 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_displaced_step_location(), set_gdbarch_dummy_id(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_fetch_tls_load_module_address(), set_gdbarch_fp0_regnum(), set_gdbarch_frame_align(), set_gdbarch_gcc_target_options(), set_gdbarch_gen_return_address(), set_gdbarch_get_syscall_number(), set_gdbarch_gnu_triplet_regexp(), set_gdbarch_guess_tracepoint_registers(), set_gdbarch_inner_than(), set_gdbarch_iterate_over_regset_sections(), 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_process_record_signal(), 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_skip_trampoline_code(), 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_unwind_pc(), set_gdbarch_unwind_sp(), set_gdbarch_valid_disassembler_options(), set_gdbarch_value_from_register(), set_gdbarch_write_pc(), set_solib_svr4_fetch_link_map_offsets(), set_tdesc_pseudo_register_name(), set_tdesc_pseudo_register_reggroup_p(), set_tdesc_pseudo_register_type(), set_xml_syscall_file_name(), svr4_fetch_objfile_link_map(), svr4_ilp32_fetch_link_map_offsets(), svr4_lp64_fetch_link_map_offsets(), gdbarch_info::target_desc, gdbarch_tdep::tdesc, tdesc_data, tdesc_data_alloc(), tdesc_data_cleanup(), tdesc_find_feature(), tdesc_has_registers(), tdesc_numbered_register(), tdesc_s390_linux32, tdesc_s390x_linux64, tdesc_unnumbered_register(), tdesc_use_registers(), gdbarch_tdep::v0_full_regnum, gdbarch_tdep::vector_abi, XCNEW, XML_SYSCALL_FILENAME_S390, and XML_SYSCALL_FILENAME_S390X.

Referenced by _initialize_s390_tdep().

◆ 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

◆ s390_gnu_triplet_regexp()

static const char* s390_gnu_triplet_regexp ( struct gdbarch gdbarch)
static

Definition at line 3618 of file s390-linux-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,
struct gdbarch_tdep tdep,
int  word_size,
enum bfd_endian  byte_order,
int  is_unnamed 
)
static

◆ s390_init_linux_record_tdep()

static void s390_init_linux_record_tdep ( struct linux_record_tdep record_tdep,
enum s390_abi_kind  abi 
)
static

Definition at line 7587 of file s390-linux-tdep.c.

References gdbarch_tdep::abi, ABI_LINUX_S390, ABI_LINUX_ZSERIES, linux_record_tdep::arg1, linux_record_tdep::arg2, linux_record_tdep::arg3, linux_record_tdep::arg4, linux_record_tdep::arg5, linux_record_tdep::fcntl_F_GETLK, linux_record_tdep::fcntl_F_GETLK64, linux_record_tdep::fcntl_F_SETLK64, linux_record_tdep::fcntl_F_SETLKW64, linux_record_tdep::ioctl_FIOASYNC, linux_record_tdep::ioctl_FIOCLEX, linux_record_tdep::ioctl_FIONBIO, linux_record_tdep::ioctl_FIONCLEX, linux_record_tdep::ioctl_FIONREAD, linux_record_tdep::ioctl_FIOQSIZE, linux_record_tdep::ioctl_TCFLSH, linux_record_tdep::ioctl_TCGETA, linux_record_tdep::ioctl_TCGETS, linux_record_tdep::ioctl_TCGETS2, linux_record_tdep::ioctl_TCSBRK, linux_record_tdep::ioctl_TCSBRKP, linux_record_tdep::ioctl_TCSETA, linux_record_tdep::ioctl_TCSETAF, linux_record_tdep::ioctl_TCSETAW, linux_record_tdep::ioctl_TCSETS, linux_record_tdep::ioctl_TCSETS2, linux_record_tdep::ioctl_TCSETSF, linux_record_tdep::ioctl_TCSETSF2, linux_record_tdep::ioctl_TCSETSW, linux_record_tdep::ioctl_TCSETSW2, linux_record_tdep::ioctl_TCXONC, linux_record_tdep::ioctl_TIOCCBRK, linux_record_tdep::ioctl_TIOCCONS, linux_record_tdep::ioctl_TIOCEXCL, linux_record_tdep::ioctl_TIOCGETD, linux_record_tdep::ioctl_TIOCGICOUNT, linux_record_tdep::ioctl_TIOCGLCKTRMIOS, linux_record_tdep::ioctl_TIOCGPGRP, linux_record_tdep::ioctl_TIOCGPTN, linux_record_tdep::ioctl_TIOCGSERIAL, linux_record_tdep::ioctl_TIOCGSID, linux_record_tdep::ioctl_TIOCGSOFTCAR, linux_record_tdep::ioctl_TIOCGWINSZ, linux_record_tdep::ioctl_TIOCINQ, linux_record_tdep::ioctl_TIOCLINUX, linux_record_tdep::ioctl_TIOCMBIC, linux_record_tdep::ioctl_TIOCMBIS, linux_record_tdep::ioctl_TIOCMGET, linux_record_tdep::ioctl_TIOCMIWAIT, linux_record_tdep::ioctl_TIOCMSET, linux_record_tdep::ioctl_TIOCNOTTY, linux_record_tdep::ioctl_TIOCNXCL, linux_record_tdep::ioctl_TIOCOUTQ, linux_record_tdep::ioctl_TIOCPKT, linux_record_tdep::ioctl_TIOCSBRK, linux_record_tdep::ioctl_TIOCSCTTY, linux_record_tdep::ioctl_TIOCSERCONFIG, linux_record_tdep::ioctl_TIOCSERGETLSR, linux_record_tdep::ioctl_TIOCSERGETMULTI, linux_record_tdep::ioctl_TIOCSERGSTRUCT, linux_record_tdep::ioctl_TIOCSERGWILD, linux_record_tdep::ioctl_TIOCSERSETMULTI, linux_record_tdep::ioctl_TIOCSERSWILD, linux_record_tdep::ioctl_TIOCSETD, linux_record_tdep::ioctl_TIOCSLCKTRMIOS, linux_record_tdep::ioctl_TIOCSPGRP, linux_record_tdep::ioctl_TIOCSPTLCK, linux_record_tdep::ioctl_TIOCSSERIAL, linux_record_tdep::ioctl_TIOCSSOFTCAR, linux_record_tdep::ioctl_TIOCSTI, linux_record_tdep::ioctl_TIOCSWINSZ, S390_R2_REGNUM, S390_R3_REGNUM, S390_R4_REGNUM, S390_R5_REGNUM, S390_R6_REGNUM, linux_record_tdep::size__old_kernel_stat, linux_record_tdep::size_cap_user_data_t, linux_record_tdep::size_epoll_event, linux_record_tdep::size_fd_set, linux_record_tdep::size_flock, linux_record_tdep::size_flock64, linux_record_tdep::size_fs_quota_stat, linux_record_tdep::size_gid_t, linux_record_tdep::size_if_dqblk, linux_record_tdep::size_int, linux_record_tdep::size_io_event, linux_record_tdep::size_iocb, linux_record_tdep::size_iovec, linux_record_tdep::size_itimerspec, linux_record_tdep::size_itimerval, linux_record_tdep::size_knfsd_fh, linux_record_tdep::size_loff_t, linux_record_tdep::size_long, linux_record_tdep::size_mem_dqinfo, linux_record_tdep::size_mq_attr, linux_record_tdep::size_msghdr, linux_record_tdep::size_msqid_ds, linux_record_tdep::size_new_utsname, linux_record_tdep::size_NFS_FHSIZE, linux_record_tdep::size_off_t, linux_record_tdep::size_old_dirent, linux_record_tdep::size_old_gid_t, linux_record_tdep::size_old_sigaction, linux_record_tdep::size_old_sigset_t, linux_record_tdep::size_old_uid_t, linux_record_tdep::size_PAGE_SIZE, linux_record_tdep::size_pid_t, linux_record_tdep::size_pointer, linux_record_tdep::size_pollfd, linux_record_tdep::size_rlimit, linux_record_tdep::size_rusage, linux_record_tdep::size_serial_icounter_struct, linux_record_tdep::size_serial_struct, linux_record_tdep::size_shmid_ds, linux_record_tdep::size_sigaction, linux_record_tdep::size_siginfo_t, linux_record_tdep::size_sigset_t, linux_record_tdep::size_size_t, linux_record_tdep::size_sockaddr, linux_record_tdep::size_stack_t, linux_record_tdep::size_stat, linux_record_tdep::size_stat64, linux_record_tdep::size_statfs, linux_record_tdep::size_statfs64, linux_record_tdep::size_sysinfo, linux_record_tdep::size_TASK_COMM_LEN, linux_record_tdep::size_termios, linux_record_tdep::size_termios2, linux_record_tdep::size_time_t, linux_record_tdep::size_timespec, linux_record_tdep::size_timeval, linux_record_tdep::size_timex, linux_record_tdep::size_timezone, linux_record_tdep::size_tms, linux_record_tdep::size_uid_t, linux_record_tdep::size_ulong, linux_record_tdep::size_ustat, and linux_record_tdep::size_winsize.

Referenced by s390_gdbarch_init().

◆ s390_is_partial_instruction()

static int s390_is_partial_instruction ( struct gdbarch gdbarch,
CORE_ADDR  loc,
int *  len 
)
static

Definition at line 669 of file s390-linux-tdep.c.

References gdbarch_byte_order(), loc, and read_memory_integer().

Referenced by s390_software_single_step().

◆ s390_iterate_over_regset_sections()

static void s390_iterate_over_regset_sections ( struct gdbarch gdbarch,
iterate_over_regset_sections_cb cb,
void *  cb_data,
const struct regcache regcache 
)
static

◆ s390_linux_get_syscall_number()

static LONGEST s390_linux_get_syscall_number ( struct gdbarch gdbarch,
ptid_t  ptid 
)
static

◆ s390_linux_record_signal()

static int s390_linux_record_signal ( struct gdbarch gdbarch,
struct regcache regcache,
enum gdb_signal  signal 
)
static

◆ s390_linux_syscall_record()

static int s390_linux_syscall_record ( struct regcache regcache,
LONGEST  syscall_native 
)
static

◆ 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 ( struct frame_info this_frame,
void **  this_cache 
)
static

Definition at line 2997 of file s390-linux-tdep.c.

References s390_unwind_cache::local_base, and s390_frame_unwind_cache().

◆ s390_popcnt()

static int s390_popcnt ( unsigned int  x)
static

Definition at line 3737 of file s390-linux-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 ( struct frame_info 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,
struct 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,
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,
int  struct_return,
CORE_ADDR  struct_addr 
)
static

◆ s390_readinstruction()

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

Definition at line 1131 of file s390-linux-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 3728 of file s390-linux-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

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

static struct value* s390_sigtramp_frame_prev_register ( struct frame_info this_frame,
void **  this_prologue_cache,
int  regnum 
)
static

◆ s390_sigtramp_frame_sniffer()

static int s390_sigtramp_frame_sniffer ( const struct frame_unwind self,
struct frame_info this_frame,
void **  this_prologue_cache 
)
static

Definition at line 2631 of file s390-linux-tdep.c.

References get_frame_pc(), op_svc, and target_read_memory().

◆ s390_sigtramp_frame_this_id()

static void s390_sigtramp_frame_this_id ( struct frame_info this_frame,
void **  this_prologue_cache,
struct frame_id this_id 
)
static

◆ s390_sigtramp_frame_unwind_cache()

static struct s390_sigtramp_unwind_cache* s390_sigtramp_frame_unwind_cache ( struct frame_info this_frame,
void **  this_prologue_cache 
)
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 3627 of file s390-linux-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 ( struct frame_info this_frame,
void **  this_prologue_cache,
int  regnum 
)
static

◆ s390_stub_frame_sniffer()

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

◆ s390_stub_frame_this_id()

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

◆ s390_stub_frame_unwind_cache()

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

◆ s390_supply_tdb_regset()

static void s390_supply_tdb_regset ( const struct regset regset,
struct regcache regcache,
int  regnum,
const void *  regs,
size_t  len 
)
static

◆ s390_trad_frame_prev_register()

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

◆ s390_unwind_pc()

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

◆ s390_unwind_pseudo_register()

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

◆ s390_unwind_sp()

static CORE_ADDR s390_unwind_sp ( struct gdbarch gdbarch,
struct frame_info 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

◆ s390_write_pc()

static void s390_write_pc ( struct regcache regcache,
CORE_ADDR  pc 
)
static

Variable Documentation

◆ s390_break_insn

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

Definition at line 3559 of file s390-linux-tdep.c.

◆ s390_disassembler_options

char* s390_disassembler_options
static

Definition at line 84 of file s390-linux-tdep.c.

Referenced by s390_gdbarch_init().

◆ s390_dwarf_regmap

const short s390_dwarf_regmap[]
static

Definition at line 213 of file s390-linux-tdep.c.

Referenced by s390_dwarf_reg_to_regnum().

◆ s390_fpregmap

const struct regcache_map_entry s390_fpregmap[]
static
Initial value:
=
{
{ 1, S390_FPC_REGNUM, 8 },
{ 16, S390_F0_REGNUM, 8 },
{ 0 }
}
#define S390_FPC_REGNUM
#define S390_F0_REGNUM

Definition at line 784 of file s390-linux-tdep.c.

◆ s390_fpregset

const struct regset s390_fpregset
Initial value:
= {
}
void regcache_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
Definition: regcache.c:1192
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
Definition: regcache.c:1211
static const struct regcache_map_entry s390_fpregmap[]

Definition at line 880 of file s390-linux-tdep.c.

Referenced by fill_fpregset(), s390_iterate_over_regset_sections(), and supply_fpregset().

◆ s390_frame_base

const struct frame_base s390_frame_base
static
Initial value:
= {
}
static CORE_ADDR s390_frame_base_address(struct frame_info *this_frame, void **this_cache)
static CORE_ADDR s390_local_base_address(struct frame_info *this_frame, void **this_cache)
static const struct frame_unwind s390_frame_unwind

Definition at line 3004 of file s390-linux-tdep.c.

Referenced by s390_gdbarch_init().

◆ s390_frame_unwind

const struct frame_unwind s390_frame_unwind
static
Initial value:
= {
NULL,
}
static struct value * s390_frame_prev_register(struct frame_info *this_frame, void **this_prologue_cache, int regnum)
int default_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
Definition: frame-unwind.c:174
static void s390_frame_this_id(struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:184

Definition at line 2403 of file s390-linux-tdep.c.

Referenced by s390_gdbarch_init().

◆ s390_gregmap

const struct regcache_map_entry s390_gregmap[]
static
Initial value:
=
{
{ 16, S390_R0_REGNUM },
{ 16, S390_A0_REGNUM },
{ 0 }
}
#define S390_R0_REGNUM
#define S390_PSWM_REGNUM
#define S390_A0_REGNUM
#define S390_ORIG_R2_REGNUM
#define S390_PSWA_REGNUM

Definition at line 774 of file s390-linux-tdep.c.

◆ s390_gregset

const struct regset s390_gregset
Initial value:
= {
}
void regcache_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
Definition: regcache.c:1192
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
Definition: regcache.c:1211
static const struct regcache_map_entry s390_gregmap[]

Definition at line 874 of file s390-linux-tdep.c.

Referenced by fill_gregset(), s390_iterate_over_regset_sections(), and supply_gregset().

◆ s390_gs_regset

const struct regset s390_gs_regset
Initial value:
= {
}
void regcache_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
Definition: regcache.c:1192
static const struct regcache_map_entry s390_regmap_gs[]
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
Definition: regcache.c:1211

Definition at line 928 of file s390-linux-tdep.c.

Referenced by s390_iterate_over_regset_sections(), and s390_linux_fetch_inferior_registers().

◆ s390_gsbc_regset

const struct regset s390_gsbc_regset
Initial value:
= {
}
void regcache_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
Definition: regcache.c:1192
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
Definition: regcache.c:1211
static const struct regcache_map_entry s390_regmap_gsbc[]

Definition at line 934 of file s390-linux-tdep.c.

Referenced by s390_iterate_over_regset_sections(), and s390_linux_fetch_inferior_registers().

◆ s390_last_break_regset

const struct regset s390_last_break_regset
Initial value:
= {
}
void regcache_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
Definition: regcache.c:1192
static const struct regcache_map_entry s390_regmap_last_break[]
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
Definition: regcache.c:1211

Definition at line 892 of file s390-linux-tdep.c.

Referenced by s390_iterate_over_regset_sections(), and s390_linux_fetch_inferior_registers().

◆ s390_linux_record_tdep

struct linux_record_tdep s390_linux_record_tdep
static

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

Referenced by s390_gdbarch_init(), and s390_linux_syscall_record().

◆ s390_regmap_gs

const struct regcache_map_entry s390_regmap_gs[]
static
Initial value:
=
{
{ 1, REGCACHE_MAP_SKIP, 8 },
{ 1, S390_GSD_REGNUM, 8 },
{ 1, S390_GSSM_REGNUM, 8 },
{ 1, S390_GSEPLA_REGNUM, 8 },
{ 0 }
}
#define S390_GSSM_REGNUM
#define S390_GSD_REGNUM
#define S390_GSEPLA_REGNUM

Definition at line 839 of file s390-linux-tdep.c.

◆ s390_regmap_gsbc

const struct regcache_map_entry s390_regmap_gsbc[]
static
Initial value:
=
{
{ 1, REGCACHE_MAP_SKIP, 8 },
{ 1, S390_BC_GSD_REGNUM, 8 },
{ 0 }
}
#define S390_BC_GSSM_REGNUM
#define S390_BC_GSD_REGNUM
#define S390_BC_GSEPLA_REGNUM

Definition at line 848 of file s390-linux-tdep.c.

◆ s390_regmap_last_break

const struct regcache_map_entry s390_regmap_last_break[]
static
Initial value:
=
{
{ 1, REGCACHE_MAP_SKIP, 4 },
{ 0 }
}
#define S390_LAST_BREAK_REGNUM

Definition at line 797 of file s390-linux-tdep.c.

◆ s390_regmap_system_call

const struct regcache_map_entry s390_regmap_system_call[]
static
Initial value:
=
{
{ 0 }
}
#define S390_SYSTEM_CALL_REGNUM

Definition at line 810 of file s390-linux-tdep.c.

◆ s390_regmap_tdb

const struct regcache_map_entry s390_regmap_tdb[]
static
Initial value:
=
{
{ 12, REGCACHE_MAP_SKIP, 8 },
{ 16, S390_TDB_R0_REGNUM, 8 },
{ 0 }
}
#define S390_TDB_ATIA_REGNUM
#define S390_TDB_DWORD0_REGNUM
#define S390_TDB_R0_REGNUM
#define S390_TDB_ABORT_CODE_REGNUM
#define S390_TDB_CONFLICT_TOKEN_REGNUM

Definition at line 816 of file s390-linux-tdep.c.

◆ s390_regmap_upper

const struct regcache_map_entry s390_regmap_upper[]
static
Initial value:
=
{
{ 0 }
}
#define S390_R0_UPPER_REGNUM

Definition at line 791 of file s390-linux-tdep.c.

◆ s390_regmap_vxrs_high

const struct regcache_map_entry s390_regmap_vxrs_high[]
static
Initial value:
=
{
{ 16, S390_V16_REGNUM, 16 },
{ 0 }
}
#define S390_V16_REGNUM

Definition at line 833 of file s390-linux-tdep.c.

◆ s390_regmap_vxrs_low

const struct regcache_map_entry s390_regmap_vxrs_low[]
static
Initial value:
=
{
{ 0 }
}
#define S390_V0_LOWER_REGNUM

Definition at line 827 of file s390-linux-tdep.c.

◆ s390_sigtramp_frame_unwind

const struct frame_unwind s390_sigtramp_frame_unwind
static
Initial value:
= {
NULL,
}
static int s390_sigtramp_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
static struct value * s390_sigtramp_frame_prev_register(struct frame_info *this_frame, void **this_prologue_cache, int regnum)
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:184
static void s390_sigtramp_frame_this_id(struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)

Definition at line 2651 of file s390-linux-tdep.c.

Referenced by s390_gdbarch_init().

◆ s390_stub_frame_unwind

const struct frame_unwind s390_stub_frame_unwind
static
Initial value:
= {
NULL,
}
static int s390_stub_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
static void s390_stub_frame_this_id(struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:184
static struct value * s390_stub_frame_prev_register(struct frame_info *this_frame, void **this_prologue_cache, int regnum)

Definition at line 2486 of file s390-linux-tdep.c.

Referenced by s390_gdbarch_init().

◆ s390_system_call_regset

const struct regset s390_system_call_regset
Initial value:
= {
}
void regcache_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
Definition: regcache.c:1192
static const struct regcache_map_entry s390_regmap_system_call[]
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
Definition: regcache.c:1211

Definition at line 904 of file s390-linux-tdep.c.

Referenced by s390_iterate_over_regset_sections(), s390_linux_fetch_inferior_registers(), and s390_linux_store_inferior_registers().

◆ s390_tdb_regset

const struct regset s390_tdb_regset
Initial value:
= {
}
static void s390_supply_tdb_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *regs, size_t len)
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
Definition: regcache.c:1211
static const struct regcache_map_entry s390_regmap_tdb[]

Definition at line 910 of file s390-linux-tdep.c.

Referenced by s390_iterate_over_regset_sections(), and s390_linux_fetch_inferior_registers().

◆ s390_upper_regset

const struct regset s390_upper_regset
static
Initial value:
= {
}
static const struct regcache_map_entry s390_regmap_upper[]
void regcache_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
Definition: regcache.c:1192
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
Definition: regcache.c:1211

Definition at line 886 of file s390-linux-tdep.c.

Referenced by s390_iterate_over_regset_sections().

◆ s390_vxrs_high_regset

const struct regset s390_vxrs_high_regset
Initial value:
= {
}
static const struct regcache_map_entry s390_regmap_vxrs_high[]
void regcache_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
Definition: regcache.c:1192
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
Definition: regcache.c:1211

Definition at line 922 of file s390-linux-tdep.c.

Referenced by s390_iterate_over_regset_sections(), s390_linux_fetch_inferior_registers(), and s390_linux_store_inferior_registers().

◆ s390_vxrs_low_regset

const struct regset s390_vxrs_low_regset
Initial value:
= {
}
void regcache_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
Definition: regcache.c:1192
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
Definition: regcache.c:1211
static const struct regcache_map_entry s390_regmap_vxrs_low[]

Definition at line 916 of file s390-linux-tdep.c.

Referenced by s390_iterate_over_regset_sections(), s390_linux_fetch_inferior_registers(), and s390_linux_store_inferior_registers().

◆ s390x_last_break_regset

const struct regset s390x_last_break_regset
Initial value:
= {
}
static const struct regcache_map_entry s390x_regmap_last_break[]
void regcache_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
Definition: regcache.c:1192
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
Definition: regcache.c:1211

Definition at line 898 of file s390-linux-tdep.c.

Referenced by s390_iterate_over_regset_sections(), and s390_linux_fetch_inferior_registers().

◆ s390x_linux_record_tdep

struct linux_record_tdep s390x_linux_record_tdep
static

Definition at line 2693 of file s390-linux-tdep.c.

Referenced by s390_gdbarch_init(), and s390_linux_syscall_record().

◆ s390x_regmap_last_break

const struct regcache_map_entry s390x_regmap_last_break[]
static
Initial value:
=
{
{ 0 }
}
#define S390_LAST_BREAK_REGNUM

Definition at line 804 of file s390-linux-tdep.c.