GDB (xrefs)
Classes | Defines | Enumerations | Functions | Variables
/home/stan/gdb/src/gdb/s390-tdep.c File Reference
#include "defs.h"
#include "arch-utils.h"
#include "frame.h"
#include "inferior.h"
#include "symtab.h"
#include "target.h"
#include "gdbcore.h"
#include "gdbcmd.h"
#include "objfiles.h"
#include "floatformat.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 "gdb_assert.h"
#include "dis-asm.h"
#include "solib-svr4.h"
#include "prologue-value.h"
#include "linux-tdep.h"
#include "s390-tdep.h"
#include "auxv.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 "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/s390x-linux64.c"
#include "features/s390x-linux64v1.c"
#include "features/s390x-linux64v2.c"
#include "features/s390x-te-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

Defines

#define S390_MAX_INSTR_SIZE   6
#define S390_NUM_GPRS   16
#define S390_NUM_FPRS   16

Enumerations

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
}

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 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 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 type *type, int regnum, struct frame_info *frame)
static int s390_pseudo_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *group)
static void s390_supply_regset (const struct regset *regset, struct regcache *regcache, int regnum, const void *regs, size_t len)
static void s390_supply_tdb_regset (const struct regset *regset, struct regcache *regcache, int regnum, const void *regs, size_t len)
static void s390_collect_regset (const struct regset *regset, const struct regcache *regcache, int regnum, void *regs, size_t len)
static struct regsets390_regset_from_core_section (struct gdbarch *gdbarch, const char *sect_name, size_t sect_size)
static 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_rsi (bfd_byte *insn, int op, unsigned int *r1, unsigned int *r3, int *i2)
static int is_rie (bfd_byte *insn, int op1, int op2, unsigned int *r1, unsigned int *r3, int *i2)
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_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR pc)
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_cache
s390_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_cache
s390_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 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 int is_integer_like (struct type *type)
static int is_pointer_like (struct type *type)
static int is_float_singleton (struct type *type)
static int is_struct_like (struct type *type)
static int is_float_like (struct type *type)
static int is_power_of_two (unsigned int n)
static int s390_function_arg_pass_by_reference (struct type *type)
static int s390_function_arg_float (struct type *type)
static int s390_function_arg_integer (struct type *type)
static LONGEST extend_simple_arg (struct gdbarch *gdbarch, struct value *arg)
static int alignment_of (struct type *type)
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 enum return_value_convention s390_return_value_convention (struct gdbarch *gdbarch, struct type *type)
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 const gdb_bytes390_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
static CORE_ADDR s390_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr)
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 int s390_stap_is_single_operand (struct gdbarch *gdbarch, const char *s)
static struct gdbarchs390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
void _initialize_s390_tdep (void)

Variables

static const short s390_dwarf_regmap []
const short s390_regmap_gregset []
const short s390x_regmap_gregset []
const short s390_regmap_fpregset []
const short s390_regmap_upper []
const short s390_regmap_last_break []
const short s390x_regmap_last_break []
const short s390_regmap_system_call []
const short s390_regmap_tdb []
static struct regset s390_gregset
static struct regset s390x_gregset
static struct regset s390_fpregset
static struct regset s390_upper_regset
static struct regset s390_last_break_regset
static struct regset s390x_last_break_regset
static struct regset s390_system_call_regset
static struct regset s390_tdb_regset
static struct core_regset_section s390_linux32_regset_sections []
static struct core_regset_section s390_linux32v1_regset_sections []
static struct core_regset_section s390_linux32v2_regset_sections []
static struct core_regset_section s390_linux64_regset_sections []
static struct core_regset_section s390_linux64v1_regset_sections []
static struct core_regset_section s390_linux64v2_regset_sections []
static struct core_regset_section s390x_linux64_regset_sections []
static struct core_regset_section s390x_linux64v1_regset_sections []
static struct core_regset_section s390x_linux64v2_regset_sections []
static struct frame_unwind s390_frame_unwind
static struct frame_unwind s390_stub_frame_unwind
static struct frame_unwind s390_sigtramp_frame_unwind
static struct frame_base s390_frame_base
initialize_file_ftype _initialize_s390_tdep

Define Documentation

#define S390_MAX_INSTR_SIZE   6

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

Referenced by s390_analyze_prologue(), s390_gdbarch_init(), and s390_stub_frame_sniffer().

#define S390_NUM_FPRS   16

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

Referenced by s390_analyze_prologue(), and s390_check_for_saved().

#define S390_NUM_GPRS   16

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

Referenced by s390_analyze_prologue(), and s390_check_for_saved().


Enumeration Type Documentation

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 

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


Function Documentation

void _initialize_s390_tdep ( void  )
static int alignment_of ( struct type type) [static]
static LONGEST extend_simple_arg ( struct gdbarch gdbarch,
struct value arg 
) [static]
static int is_float_like ( struct type type) [static]

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

References is_float_singleton(), TYPE_CODE, TYPE_CODE_DECFLOAT, and TYPE_CODE_FLT.

Referenced by s390_function_arg_float().

static int is_float_singleton ( struct type type) [static]
static int is_integer_like ( struct type type) [static]
static int is_pointer_like ( struct type type) [static]

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

References code, TYPE_CODE, TYPE_CODE_PTR, and TYPE_CODE_REF.

Referenced by alignment_of(), and s390_function_arg_integer().

static int is_power_of_two ( unsigned int  n) [static]

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

Referenced by s390_function_arg_integer(), and s390_function_arg_pass_by_reference().

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

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

Referenced by s390_analyze_prologue(), and s390_displaced_step_fixup().

static int is_rie ( bfd_byte *  insn,
int  op1,
int  op2,
unsigned int r1,
unsigned int r3,
int i2 
) [static]

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

Referenced by s390_displaced_step_fixup().

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

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

Referenced by s390_analyze_prologue(), and s390_displaced_step_fixup().

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

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

Referenced by s390_analyze_prologue(), and s390_displaced_step_fixup().

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

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

Referenced by s390_analyze_prologue(), and s390_displaced_step_fixup().

static int is_rs ( bfd_byte *  insn,
int  op,
unsigned int r1,
unsigned int r3,
int d2,
unsigned int b2 
) [static]
static int is_rsi ( bfd_byte *  insn,
int  op,
unsigned int r1,
unsigned int r3,
int i2 
) [static]

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

Referenced by s390_displaced_step_fixup().

static int is_rsy ( bfd_byte *  insn,
int  op1,
int  op2,
unsigned int r1,
unsigned int r3,
int d2,
unsigned int b2 
) [static]
static int is_rx ( bfd_byte *  insn,
int  op,
unsigned int r1,
int d2,
unsigned int x2,
unsigned int b2 
) [static]

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

Referenced by s390_analyze_prologue(), and s390_displaced_step_fixup().

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 1100 of file s390-tdep.c.

Referenced by s390_analyze_prologue(), and s390_displaced_step_fixup().

static int is_struct_like ( struct type type) [static]
static int regnum_is_gpr_full ( struct gdbarch_tdep tdep,
int  regnum 
) [static]
static pv_t s390_addr ( struct s390_prologue_data data,
int  d2,
unsigned int  x2,
unsigned int  b2 
) [static]

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

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

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

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

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

Referenced by s390_gdbarch_init().

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

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

References TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1.

Referenced by s390_gdbarch_init().

static int s390_address_class_type_flags ( int  byte_size,
int  dwarf2_addr_class 
) [static]

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

References TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1.

Referenced by s390_gdbarch_init().

static const char* s390_address_class_type_flags_to_name ( struct gdbarch gdbarch,
int  type_flags 
) [static]

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

References TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1.

Referenced by s390_gdbarch_init().

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

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

Referenced by s390_gdbarch_init().

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 1289 of file s390-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, free_pv_area(), 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_pv_area(), 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_area_scan(), pv_constant(), pv_is_identical(), pv_is_register_k(), pv_register(), pv_subtract(), 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(), sp, and s390_prologue_data::stack.

Referenced by s390_prologue_frame_unwind_cache(), and s390_skip_prologue().

static void s390_backchain_frame_unwind_cache ( struct frame_info this_frame,
struct s390_unwind_cache info 
) [static]
static const gdb_byte* s390_breakpoint_from_pc ( struct gdbarch gdbarch,
CORE_ADDR pcptr,
int lenptr 
) [static]

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

Referenced by s390_gdbarch_init().

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

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

References S390_LAST_BREAK_REGNUM.

Referenced by s390_gdbarch_init().

static void s390_check_for_saved ( void *  data_untyped,
pv_t  addr,
CORE_ADDR  size,
pv_t  value 
) [static]
static void s390_collect_regset ( const struct regset regset,
const struct regcache regcache,
int  regnum,
void *  regs,
size_t  len 
) [static]

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

References regset::descr, and regcache_raw_collect().

static struct target_desc* s390_core_read_description ( struct gdbarch gdbarch,
struct target_ops target,
bfd *  abfd 
) [static, read]
static void s390_displaced_step_fixup ( struct gdbarch gdbarch,
struct displaced_step_closure closure,
CORE_ADDR  from,
CORE_ADDR  to,
struct regcache regs 
) [static]
static struct frame_id s390_dummy_id ( struct gdbarch gdbarch,
struct frame_info this_frame 
) [static, read]
static void s390_dwarf2_frame_init_reg ( struct gdbarch gdbarch,
int  regnum,
struct dwarf2_frame_state_reg reg,
struct frame_info this_frame 
) [static]
static struct value* s390_dwarf2_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
) [static, read]

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

References s390_unwind_pseudo_register().

Referenced by s390_dwarf2_frame_init_reg().

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

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

References _, gdbarch_tdep(), gdbarch_tdep::gpr_full_regnum, s390_dwarf_regmap, and warning().

Referenced by s390_gdbarch_init().

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

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

Referenced by s390_gdbarch_init().

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

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

References s390_unwind_cache::frame_base, and s390_frame_unwind_cache().

static struct value* s390_frame_prev_register ( struct frame_info this_frame,
void **  this_prologue_cache,
int  regnum 
) [static, read]
static void s390_frame_this_id ( struct frame_info this_frame,
void **  this_prologue_cache,
struct frame_id this_id 
) [static]
static struct s390_unwind_cache* s390_frame_unwind_cache ( struct frame_info this_frame,
void **  this_prologue_cache 
) [static, read]
static int s390_function_arg_float ( struct type type) [static]

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

References is_float_like(), and TYPE_LENGTH.

Referenced by s390_push_dummy_call().

static int s390_function_arg_integer ( struct type type) [static]
static int s390_function_arg_pass_by_reference ( struct type type) [static]
static struct gdbarch* s390_gdbarch_init ( struct gdbarch_info  info,
struct gdbarch_list arches 
) [static, read]

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

References gdbarch_tdep::abi, gdbarch_tdep::ABI_LINUX_S390, gdbarch_tdep::ABI_LINUX_ZSERIES, gdbarch_info::bfd_arch_info, gdbarch_tdep::cc_regnum, core_addr_lessthan(), displaced_step_at_entry_point(), dwarf2_append_unwinders(), dwarf2_frame_base_sniffer(), dwarf2_frame_set_adjust_regnum(), dwarf2_frame_set_init_reg(), find_solib_trampoline_target(), floatformats_ia64_quad, gdbarch_tdep::fpregset, 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::gregset, linux_get_siginfo_type(), linux_init_abi(), gdbarch_list::next, gdbarch_tdep::pc_regnum, S390_A0_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_breakpoint_from_pc(), s390_cannot_store_register(), s390_core_read_description(), s390_displaced_step_fixup(), s390_dummy_id(), s390_dwarf2_frame_init_reg(), s390_dwarf_reg_to_regnum(), S390_F0_REGNUM, S390_FPC_REGNUM, s390_fpregset, s390_frame_align(), s390_gregset, s390_in_function_epilogue_p(), S390_LAST_BREAK_REGNUM, S390_MAX_INSTR_SIZE, S390_NUM_REGS, S390_ORIG_R2_REGNUM, 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_regset_from_core_section(), s390_return_value(), s390_sizeof_fpregset, s390_sizeof_gregset, s390_skip_prologue(), S390_SP_REGNUM, s390_stap_is_single_operand(), S390_SYSTEM_CALL_REGNUM, S390_TDB_DWORD0_REGNUM, s390_unwind_pc(), s390_unwind_sp(), s390_value_from_register(), s390_write_pc(), s390x_gregset, s390x_sizeof_gregset, 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_believe_pcc_promotion(), set_gdbarch_breakpoint_from_pc(), set_gdbarch_cannot_store_register(), set_gdbarch_char_signed(), set_gdbarch_core_read_description(), set_gdbarch_core_regset_sections(), set_gdbarch_decr_pc_after_break(), set_gdbarch_displaced_step_copy_insn(), set_gdbarch_displaced_step_fixup(), set_gdbarch_displaced_step_free_closure(), 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_get_siginfo_type(), set_gdbarch_in_function_epilogue_p(), 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_print_insn(), set_gdbarch_pseudo_register_read(), set_gdbarch_pseudo_register_write(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_regset_from_core_section(), set_gdbarch_return_value(), set_gdbarch_skip_prologue(), set_gdbarch_skip_trampoline_code(), set_gdbarch_sp_regnum(), set_gdbarch_stab_reg_to_regnum(), set_gdbarch_stap_is_single_operand(), set_gdbarch_stap_register_indirection_prefix(), set_gdbarch_stap_register_indirection_suffix(), set_gdbarch_stap_register_prefix(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), 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(), simple_displaced_step_copy_insn(), simple_displaced_step_free_closure(), gdbarch_tdep::sizeof_fpregset, gdbarch_tdep::sizeof_gregset, svr4_fetch_objfile_link_map(), svr4_ilp32_fetch_link_map_offsets(), svr4_lp64_fetch_link_map_offsets(), gdbarch_info::target_desc, 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(), and XCALLOC.

Referenced by _initialize_s390_tdep().

static int s390_in_function_epilogue_p ( struct gdbarch gdbarch,
CORE_ADDR  pc 
) [static]
static pv_t s390_load ( struct s390_prologue_data data,
int  d2,
unsigned int  x2,
unsigned int  b2,
CORE_ADDR  size 
) [static]
static CORE_ADDR s390_local_base_address ( struct frame_info this_frame,
void **  this_cache 
) [static]

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

References s390_unwind_cache::local_base, and s390_frame_unwind_cache().

static int s390_prologue_frame_unwind_cache ( struct frame_info this_frame,
struct s390_unwind_cache info 
) [static]
static const char* s390_pseudo_register_name ( struct gdbarch gdbarch,
int  regnum 
) [static]
static enum register_status s390_pseudo_register_read ( struct gdbarch gdbarch,
struct regcache regcache,
int  regnum,
gdb_byte buf 
) [static]
static int s390_pseudo_register_reggroup_p ( struct gdbarch gdbarch,
int  regnum,
struct reggroup group 
) [static]
static struct type* s390_pseudo_register_type ( struct gdbarch gdbarch,
int  regnum 
) [static, read]
static void s390_pseudo_register_write ( struct gdbarch gdbarch,
struct regcache regcache,
int  regnum,
const gdb_byte buf 
) [static]
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]
static int s390_readinstruction ( bfd_byte  instr[],
CORE_ADDR  at 
) [static]

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

References target_read_memory().

Referenced by s390_analyze_prologue(), and s390_stub_frame_sniffer().

static int s390_register_call_saved ( struct gdbarch gdbarch,
int  regnum 
) [static]
static struct regset* s390_regset_from_core_section ( struct gdbarch gdbarch,
const char *  sect_name,
size_t  sect_size 
) [static, read]
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]
static enum return_value_convention s390_return_value_convention ( struct gdbarch gdbarch,
struct type type 
) [static]
static struct value* s390_sigtramp_frame_prev_register ( struct frame_info this_frame,
void **  this_prologue_cache,
int  regnum 
) [static, read]
static int s390_sigtramp_frame_sniffer ( const struct frame_unwind self,
struct frame_info this_frame,
void **  this_prologue_cache 
) [static]

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

References get_frame_pc(), and target_read_memory().

static void s390_sigtramp_frame_this_id ( struct frame_info this_frame,
void **  this_prologue_cache,
struct frame_id this_id 
) [static]
static struct s390_sigtramp_unwind_cache* s390_sigtramp_frame_unwind_cache ( struct frame_info this_frame,
void **  this_prologue_cache 
) [static, read]
static CORE_ADDR s390_skip_prologue ( struct gdbarch gdbarch,
CORE_ADDR  pc 
) [static]

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

References s390_analyze_prologue().

Referenced by s390_gdbarch_init().

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

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

Referenced by s390_gdbarch_init().

static void s390_store ( struct s390_prologue_data data,
int  d2,
unsigned int  x2,
unsigned int  b2,
CORE_ADDR  size,
pv_t  value 
) [static]
static struct value* s390_stub_frame_prev_register ( struct frame_info this_frame,
void **  this_prologue_cache,
int  regnum 
) [static, read]
static int s390_stub_frame_sniffer ( const struct frame_unwind self,
struct frame_info this_frame,
void **  this_prologue_cache 
) [static]
static void s390_stub_frame_this_id ( struct frame_info this_frame,
void **  this_prologue_cache,
struct frame_id this_id 
) [static]
static struct s390_stub_unwind_cache* s390_stub_frame_unwind_cache ( struct frame_info this_frame,
void **  this_prologue_cache 
) [static, read]
static void s390_supply_regset ( const struct regset regset,
struct regcache regcache,
int  regnum,
const void *  regs,
size_t  len 
) [static]

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

References regset::descr, and regcache_raw_supply().

Referenced by 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]
static struct value* s390_trad_frame_prev_register ( struct frame_info this_frame,
struct trad_frame_saved_reg  saved_regs[],
int  regnum 
) [static, read]
static CORE_ADDR s390_unwind_pc ( struct gdbarch gdbarch,
struct frame_info next_frame 
) [static]
static struct value* s390_unwind_pseudo_register ( struct frame_info this_frame,
int  regnum 
) [static, read]
static CORE_ADDR s390_unwind_sp ( struct gdbarch gdbarch,
struct frame_info next_frame 
) [static]
static struct value* s390_value_from_register ( struct type type,
int  regnum,
struct frame_info frame 
) [static, read]
static void s390_write_pc ( struct regcache regcache,
CORE_ADDR  pc 
) [static]

Variable Documentation

const short s390_dwarf_regmap[] [static]

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

Referenced by s390_dwarf_reg_to_regnum().

struct regset s390_fpregset [static]
Initial value:

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

Referenced by s390_gdbarch_init().

struct frame_base s390_frame_base [static]
Initial value:

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

struct regset s390_gregset [static]
Initial value:

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

Referenced by s390_gdbarch_init().

struct regset s390_last_break_regset [static]
Initial value:

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

Initial value:
{
  { ".reg", s390_sizeof_gregset, "general-purpose" },
  { ".reg2", s390_sizeof_fpregset, "floating-point" },
  { NULL, 0}
}

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

Initial value:
{
  { ".reg", s390_sizeof_gregset, "general-purpose" },
  { ".reg2", s390_sizeof_fpregset, "floating-point" },
  { ".reg-s390-last-break", 8, "s390 last-break address" },
  { NULL, 0}
}

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

Initial value:
{
  { ".reg", s390_sizeof_gregset, "general-purpose" },
  { ".reg2", s390_sizeof_fpregset, "floating-point" },
  { ".reg-s390-last-break", 8, "s390 last-break address" },
  { ".reg-s390-system-call", 4, "s390 system-call" },
  { NULL, 0}
}

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

Initial value:
{
  { ".reg", s390_sizeof_gregset, "general-purpose" },
  { ".reg2", s390_sizeof_fpregset, "floating-point" },
  { ".reg-s390-high-gprs", 16*4, "s390 GPR upper halves" },
  { NULL, 0}
}

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

Initial value:
{
  { ".reg", s390_sizeof_gregset, "general-purpose" },
  { ".reg2", s390_sizeof_fpregset, "floating-point" },
  { ".reg-s390-high-gprs", 16*4, "s390 GPR upper halves" },
  { ".reg-s390-last-break", 8, "s930 last-break address" },
  { NULL, 0}
}

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

Initial value:
{
  { ".reg", s390_sizeof_gregset, "general-purpose" },
  { ".reg2", s390_sizeof_fpregset, "floating-point" },
  { ".reg-s390-high-gprs", 16*4, "s390 GPR upper halves" },
  { ".reg-s390-last-break", 8, "s930 last-break address" },
  { ".reg-s390-system-call", 4, "s390 system-call" },
  { ".reg-s390-tdb", s390_sizeof_tdbregset, "s390 TDB" },
  { NULL, 0}
}

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

Initial value:

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

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

Initial value:
  {
    0x04, S390_LAST_BREAK_REGNUM,
    -1, -1
  }

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

Referenced by s390_linux_fetch_inferior_registers().

Initial value:
  {
    0x00, S390_SYSTEM_CALL_REGNUM,
    -1, -1
  }

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

Referenced by s390_linux_fetch_inferior_registers(), and s390_linux_store_inferior_registers().

Initial value:

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

Referenced by s390_regset_from_core_section().

struct regset s390_tdb_regset [static]
Initial value:

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

Referenced by s390_regset_from_core_section().

struct regset s390_upper_regset [static]
Initial value:

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

Referenced by s390_regset_from_core_section().

struct regset s390x_gregset [static]
Initial value:

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

Referenced by s390_gdbarch_init().

Initial value:

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

Initial value:
{
  { ".reg", s390x_sizeof_gregset, "general-purpose" },
  { ".reg2", s390_sizeof_fpregset, "floating-point" },
  { NULL, 0}
}

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

Initial value:
{
  { ".reg", s390x_sizeof_gregset, "general-purpose" },
  { ".reg2", s390_sizeof_fpregset, "floating-point" },
  { ".reg-s390-last-break", 8, "s930 last-break address" },
  { NULL, 0}
}

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

Initial value:
{
  { ".reg", s390x_sizeof_gregset, "general-purpose" },
  { ".reg2", s390_sizeof_fpregset, "floating-point" },
  { ".reg-s390-last-break", 8, "s930 last-break address" },
  { ".reg-s390-system-call", 4, "s390 system-call" },
  { ".reg-s390-tdb", s390_sizeof_tdbregset, "s390 TDB" },
  { NULL, 0}
}

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

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

Initial value:
  {
    0x00, S390_LAST_BREAK_REGNUM,
    -1, -1
  }

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

Referenced by s390_linux_fetch_inferior_registers().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines