GDB (xrefs)

Classes | Macros | Functions | Variables
/tmp/gdb-8.1/gdb/alpha-tdep.c File Reference
`#include "defs.h"`
`#include "frame.h"`
`#include "frame-unwind.h"`
`#include "frame-base.h"`
`#include "dwarf2-frame.h"`
`#include "inferior.h"`
`#include "symtab.h"`
`#include "value.h"`
`#include "gdbcmd.h"`
`#include "gdbcore.h"`
`#include "dis-asm.h"`
`#include "symfile.h"`
`#include "objfiles.h"`
`#include "linespec.h"`
`#include "regcache.h"`
`#include "reggroups.h"`
`#include "arch-utils.h"`
`#include "osabi.h"`
`#include "block.h"`
`#include "infcall.h"`
`#include "trad-frame.h"`
`#include "elf-bfd.h"`
`#include "alpha-tdep.h"`
`#include <algorithm>`

Go to the source code of this file.

## Classes
struct | alpha_sigtramp_unwind_cache
struct | alpha_heuristic_unwind_cache

## Macros
#define | INSN_OPCODE(insn) ((insn & 0xfc000000) >> 26)
#define | MEM_RA(insn) ((insn & 0x03e00000) >> 21)
#define | MEM_RB(insn) ((insn & 0x001f0000) >> 16)
#define | MEM_DISP(insn) (((insn & 0x8000) == 0) ? (insn & 0xffff) : -((-insn) & 0xffff))
#define | BR_RA(insn) MEM_RA(insn)
#define | OPR_FUNCTION(insn) ((insn & 0xfe0) >> 5)
#define | OPR_HAS_IMMEDIATE(insn) ((insn & 0x1000) == 0x1000)
#define | OPR_RA(insn) MEM_RA(insn)
#define | OPR_RC(insn) ((insn & 0x1f))
#define | OPR_LIT(insn) ((insn & 0x1fe000) >> 13)

## Functions
static const char * | alpha_register_name (struct gdbarch *gdbarch, int regno)
static int | alpha_cannot_fetch_register (struct gdbarch *gdbarch, int regno)
static int | alpha_cannot_store_register (struct gdbarch *gdbarch, int regno)
static struct type * | alpha_register_type (struct gdbarch *gdbarch, int regno)
static int | alpha_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *group)
static void | alpha_lds (struct gdbarch *gdbarch, void *out, const void *in)
static void | alpha_sts (struct gdbarch *gdbarch, void *out, const void *in)
static int | alpha_convert_register_p (struct gdbarch *gdbarch, int regno, struct type *type)
static int | alpha_register_to_value (struct frame_info *frame, int regnum, struct type *valtype, gdb_byte *out, int *optimizedp, int *unavailablep)
static void | alpha_value_to_register (struct frame_info *frame, int regnum, struct type *valtype, const gdb_byte *in)
static CORE_ADDR | alpha_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 void | alpha_extract_return_value (struct type *valtype, struct regcache *regcache, gdb_byte *valbuf)
static void | alpha_store_return_value (struct type *valtype, struct regcache *regcache, const gdb_byte *valbuf)
static enum return_value_convention | alpha_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
static int | alpha_return_in_memory_always (struct type *type)
typedef | BP_MANIPULATION (alpha_break_insn)
unsigned int | alpha_read_insn (struct gdbarch *gdbarch, CORE_ADDR pc)
static CORE_ADDR | alpha_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
static std::vector< CORE_ADDR > | alpha_deal_with_atomic_sequence (struct gdbarch *gdbarch, CORE_ADDR pc)
static int | alpha_get_longjmp_target (struct frame_info *frame, CORE_ADDR *pc)
static struct alpha_sigtramp_unwind_cache * | alpha_sigtramp_frame_unwind_cache (struct frame_info *this_frame, void **this_prologue_cache)
static CORE_ADDR | alpha_sigtramp_register_address (struct gdbarch *gdbarch, CORE_ADDR sigcontext_addr, int regnum)
static void | alpha_sigtramp_frame_this_id (struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
static struct value * | alpha_sigtramp_frame_prev_register (struct frame_info *this_frame, void **this_prologue_cache, int regnum)
static int | alpha_sigtramp_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
static CORE_ADDR | alpha_heuristic_proc_start (struct gdbarch *gdbarch, CORE_ADDR pc)
static void | alpha_heuristic_analyze_probing_loop (struct gdbarch *gdbarch, CORE_ADDR *pc, int *frame_size)
static struct alpha_heuristic_unwind_cache * | alpha_heuristic_frame_unwind_cache (struct frame_info *this_frame, void **this_prologue_cache, CORE_ADDR start_pc)
static void | alpha_heuristic_frame_this_id (struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
static struct value * | alpha_heuristic_frame_prev_register (struct frame_info *this_frame, void **this_prologue_cache, int regnum)
static CORE_ADDR | alpha_heuristic_frame_base_address (struct frame_info *this_frame, void **this_prologue_cache)
static void | reinit_frame_cache_sfunc (const char *args, int from_tty, struct cmd_list_element *c)
static struct frame_id | alpha_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
static CORE_ADDR | alpha_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
void | alpha_supply_int_regs (struct regcache *regcache, int regno, const void *r0_r30, const void *pc, const void *unique)
void | alpha_fill_int_regs (const struct regcache *regcache, int regno, void *r0_r30, void *pc, void *unique)
void | alpha_supply_fp_regs (struct regcache *regcache, int regno, const void *f0_f30, const void *fpcr)
void | alpha_fill_fp_regs (const struct regcache *regcache, int regno, void *f0_f30, void *fpcr)
static int | fp_register_zero_p (LONGEST reg)
static int | fp_register_sign_bit (LONGEST reg)
static CORE_ADDR | alpha_next_pc (struct regcache *regcache, CORE_ADDR pc)
std::vector< CORE_ADDR > | alpha_software_single_step (struct regcache *regcache)
static struct gdbarch * | alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
void | alpha_dwarf2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
void | _initialize_alpha_tdep (void)

## Variables
static const int | lda_opcode = 0x08
static const int | stq_opcode = 0x2d
static const int | br_opcode = 0x30
static const int | bne_opcode = 0x3d
static const int | subq_opcode = 0x10
static const int | subq_function = 0x29
constexpr gdb_byte | alpha_break_insn [] = { 0x80, 0, 0, 0 }
static const int | ldl_l_opcode = 0x2a
static const int | ldq_l_opcode = 0x2b
static const int | stl_c_opcode = 0x2e
static const int | stq_c_opcode = 0x2f
static const struct frame_unwind | alpha_sigtramp_frame_unwind
static int | heuristic_fence_post = 0
static const struct frame_unwind | alpha_heuristic_frame_unwind
static const struct frame_base | alpha_heuristic_frame_base

## Macro Definition Documentation

## ◆ BR_RA

#define BR_RA | ( |  | insn | ) | MEM_RA(insn)

Definition at line 63 of file alpha-tdep.c.

## ◆ INSN_OPCODE

#define INSN_OPCODE | ( |  | insn | ) | ((insn & 0xfc000000) >> 26)

Definition at line 51 of file alpha-tdep.c.

Referenced by alpha_deal_with_atomic_sequence(), and alpha_heuristic_analyze_probing_loop().

## ◆ MEM_DISP

#define MEM_DISP | ( |  | insn | ) | (((insn & 0x8000) == 0) ? (insn & 0xffff) : -((-insn) & 0xffff))

Definition at line 56 of file alpha-tdep.c.

Referenced by alpha_heuristic_analyze_probing_loop().

## ◆ MEM_RA

#define MEM_RA | ( |  | insn | ) | ((insn & 0x03e00000) >> 21)

Definition at line 54 of file alpha-tdep.c.

Referenced by alpha_heuristic_analyze_probing_loop().

## ◆ MEM_RB

#define MEM_RB | ( |  | insn | ) | ((insn & 0x001f0000) >> 16)

Definition at line 55 of file alpha-tdep.c.

Referenced by alpha_heuristic_analyze_probing_loop().

## ◆ OPR_FUNCTION

#define OPR_FUNCTION | ( |  | insn | ) | ((insn & 0xfe0) >> 5)

Definition at line 69 of file alpha-tdep.c.

Referenced by alpha_heuristic_analyze_probing_loop().

## ◆ OPR_HAS_IMMEDIATE

#define OPR_HAS_IMMEDIATE | ( |  | insn | ) | ((insn & 0x1000) == 0x1000)

Definition at line 70 of file alpha-tdep.c.

Referenced by alpha_heuristic_analyze_probing_loop().

## ◆ OPR_LIT

#define OPR_LIT | ( |  | insn | ) | ((insn & 0x1fe000) >> 13)

Definition at line 73 of file alpha-tdep.c.

Referenced by alpha_heuristic_analyze_probing_loop().

## ◆ OPR_RA

#define OPR_RA | ( |  | insn | ) | MEM_RA(insn)

Definition at line 71 of file alpha-tdep.c.

Referenced by alpha_heuristic_analyze_probing_loop().

## ◆ OPR_RC

#define OPR_RC | ( |  | insn | ) | ((insn & 0x1f))

Definition at line 72 of file alpha-tdep.c.

Referenced by alpha_heuristic_analyze_probing_loop().

## Function Documentation

## ◆ _initialize_alpha_tdep()

void _initialize_alpha_tdep | ( | void |  | ) |

Definition at line 1857 of file alpha-tdep.c.

References _, add_setshow_zinteger_cmd(), alpha_gdbarch_init(), class_support, gdbarch_register(), heuristic_fence_post, reinit_frame_cache_sfunc(), setlist, and showlist.

## ◆ alpha_cannot_fetch_register()

static int alpha_cannot_fetch_register | ( | struct gdbarch * | gdbarch,
|  | int | regno
| ) |  |
| static

Definition at line 110 of file alpha-tdep.c.

References alpha_register_name().

Referenced by alpha_gdbarch_init().

## ◆ alpha_cannot_store_register()

static int alpha_cannot_store_register | ( | struct gdbarch * | gdbarch,
|  | int | regno
| ) |  |
| static

Definition at line 116 of file alpha-tdep.c.

References alpha_register_name(), and ALPHA_ZERO_REGNUM.

Referenced by alpha_gdbarch_init().

## ◆ alpha_convert_register_p()

static int alpha_convert_register_p | ( | struct gdbarch * | gdbarch,
|  | int | regno,
|  | struct type * | type
| ) |  |
| static

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

References ALPHA_FP0_REGNUM, and TYPE_LENGTH.

Referenced by alpha_gdbarch_init().

## ◆ alpha_deal_with_atomic_sequence()

static std::vector<CORE_ADDR> alpha_deal_with_atomic_sequence | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | pc
| ) |  |
| static

Definition at line 770 of file alpha-tdep.c.

References ALPHA_INSN_SIZE, alpha_read_insn(), br_opcode, INSN_OPCODE, ldl_l_opcode, ldq_l_opcode, loc, symtab_and_line::pc, stl_c_opcode, and stq_c_opcode.

Referenced by alpha_software_single_step().

## ◆ alpha_dummy_id()

static struct frame_id alpha_dummy_id | ( | struct gdbarch * | gdbarch,
|  | struct frame_info * | this_frame
| ) |  |
| static

Definition at line 1475 of file alpha-tdep.c.

References ALPHA_SP_REGNUM, frame_info::base, frame_id_build(), get_frame_pc(), and get_frame_register_unsigned().

Referenced by alpha_gdbarch_init().

## ◆ alpha_dwarf2_init_abi()

void alpha_dwarf2_init_abi | ( | struct gdbarch_info | info,
|  | struct gdbarch * | gdbarch
| ) |  |

Definition at line 1850 of file alpha-tdep.c.

References dwarf2_append_unwinders(), dwarf2_frame_base_sniffer(), and frame_base_append_sniffer().

Referenced by alpha_linux_init_abi(), alphanbsd_init_abi(), and alphaobsd_init_abi().

## ◆ alpha_extract_return_value()

static void alpha_extract_return_value | ( | struct type * | valtype,
|  | struct regcache * | regcache,
|  | gdb_byte * | valbuf
| ) |  |
| static

Definition at line 474 of file alpha-tdep.c.

References _, ALPHA_FP0_REGNUM, ALPHA_REGISTER_SIZE, alpha_sts(), ALPHA_V0_REGNUM, regcache::arch(), gdbarch::byte_order, gdbarch_byte_order(), internal_error(), read_memory(), regcache_cooked_read(), regcache_cooked_read_unsigned(), store_unsigned_integer(), TYPE_CODE, TYPE_CODE_COMPLEX, TYPE_CODE_FLT, and TYPE_LENGTH.

Referenced by alpha_return_value().

## ◆ alpha_fill_fp_regs()

void alpha_fill_fp_regs | ( | const struct regcache * | regcache,
|  | int | regno,
|  | void * | f0_f30,
|  | void * | fpcr
| ) |  |

Definition at line 1555 of file alpha-tdep.c.

References ALPHA_FP0_REGNUM, ALPHA_FPCR_REGNUM, and regcache_raw_collect().

Referenced by alpha_linux_collect_fpregset(), alphabsd_fill_fpreg(), and fill_fpregset().

## ◆ alpha_fill_int_regs()

void alpha_fill_int_regs | ( | const struct regcache * | regcache,
|  | int | regno,
|  | void * | r0_r30,
|  | void * | pc,
|  | void * | unique
| ) |  |

Definition at line 1521 of file alpha-tdep.c.

References ALPHA_PC_REGNUM, ALPHA_UNIQUE_REGNUM, and regcache_raw_collect().

Referenced by alpha_linux_collect_gregset(), alphabsd_fill_reg(), and fill_gregset().

## ◆ alpha_gdbarch_init()

static struct gdbarch* alpha_gdbarch_init | ( | struct gdbarch_info | info,
|  | struct gdbarch_list * | arches
| ) |  |
| static

Definition at line 1746 of file alpha-tdep.c.

References alpha_cannot_fetch_register(), alpha_cannot_store_register(), alpha_convert_register_p(), alpha_dummy_id(), ALPHA_FP0_REGNUM, alpha_get_longjmp_target(), alpha_heuristic_frame_base, alpha_heuristic_frame_unwind, ALPHA_INSN_SIZE, ALPHA_NUM_REGS, ALPHA_PC_REGNUM, alpha_push_dummy_call(), alpha_register_name(), alpha_register_reggroup_p(), alpha_register_to_value(), alpha_register_type(), alpha_return_in_memory_always(), alpha_return_value(), alpha_sigtramp_frame_unwind, alpha_skip_prologue(), alpha_software_single_step(), ALPHA_SP_REGNUM, alpha_unwind_pc(), alpha_value_to_register(), core_addr_lessthan(), gdbarch_tdep::dynamic_sigtramp_offset, find_solib_trampoline_target(), frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), gdbarch_tdep::jb_pc, gdbarch_tdep::return_in_memory, gdbarch_tdep::sc_fpregs_offset, gdbarch_tdep::sc_pc_offset, gdbarch_tdep::sc_regs_offset, set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_cannot_fetch_register(), set_gdbarch_cannot_step_breakpoint(), set_gdbarch_cannot_store_register(), set_gdbarch_convert_register_p(), set_gdbarch_decr_pc_after_break(), set_gdbarch_double_bit(), set_gdbarch_dummy_id(), set_gdbarch_float_bit(), set_gdbarch_fp0_regnum(), set_gdbarch_get_longjmp_target(), set_gdbarch_inner_than(), set_gdbarch_int_bit(), set_gdbarch_long_bit(), set_gdbarch_long_double_bit(), set_gdbarch_long_long_bit(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_register_name(), set_gdbarch_register_reggroup_p(), set_gdbarch_register_to_value(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_skip_prologue(), set_gdbarch_skip_trampoline_code(), set_gdbarch_software_single_step(), set_gdbarch_sp_regnum(), set_gdbarch_sw_breakpoint_from_kind(), set_gdbarch_unwind_pc(), set_gdbarch_value_to_register(), set_gdbarch_wchar_bit(), set_gdbarch_wchar_signed(), gdbarch_tdep::sigcontext_addr, gdbarch::tdep, gdbarch_tdep::vm_min_address, and XCNEW.

Referenced by _initialize_alpha_tdep().

## ◆ alpha_get_longjmp_target()

static int alpha_get_longjmp_target | ( | struct frame_info * | frame,
|  | CORE_ADDR * | pc
| ) |  |
| static

Definition at line 851 of file alpha-tdep.c.

References ALPHA_A0_REGNUM, ALPHA_REGISTER_SIZE, extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_tdep(), get_frame_arch(), get_frame_register_unsigned(), gdbarch_tdep::jb_elt_size, gdbarch_tdep::jb_pc, gdbarch_tdep::pc, and target_read_memory().

Referenced by alpha_gdbarch_init().

## ◆ alpha_heuristic_analyze_probing_loop()

static void alpha_heuristic_analyze_probing_loop | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR * | pc,
|  | int * | frame_size
| ) |  |
| static

Definition at line 1131 of file alpha-tdep.c.

References ALPHA_INSN_SIZE, alpha_read_insn(), ALPHA_SP_REGNUM, bne_opcode, INSN_OPCODE, lda_opcode, MEM_DISP, MEM_RA, MEM_RB, OPR_FUNCTION, OPR_HAS_IMMEDIATE, OPR_LIT, OPR_RA, OPR_RC, stq_opcode, subq_function, and subq_opcode.

Referenced by alpha_heuristic_frame_unwind_cache().

## ◆ alpha_heuristic_frame_base_address()

static CORE_ADDR alpha_heuristic_frame_base_address | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache
| ) |  |
| static

Definition at line 1442 of file alpha-tdep.c.

References alpha_heuristic_frame_unwind_cache(), and alpha_heuristic_unwind_cache::vfp.

## ◆ alpha_heuristic_frame_prev_register()

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

Definition at line 1417 of file alpha-tdep.c.

References alpha_heuristic_frame_unwind_cache(), ALPHA_PC_REGNUM, regnum, alpha_heuristic_unwind_cache::return_reg, alpha_heuristic_unwind_cache::saved_regs, and trad_frame_get_prev_register().

## ◆ alpha_heuristic_frame_this_id()

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

Definition at line 1404 of file alpha-tdep.c.

References alpha_heuristic_frame_unwind_cache(), frame_id_build(), alpha_heuristic_unwind_cache::start_pc, and alpha_heuristic_unwind_cache::vfp.

## ◆ alpha_heuristic_frame_unwind_cache()

static struct alpha_heuristic_unwind_cache* alpha_heuristic_frame_unwind_cache | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache,
|  | CORE_ADDR | start_pc
| ) |  |
| static

Definition at line 1228 of file alpha-tdep.c.

References trad_frame_saved_reg::addr, ALPHA_GCC_FP_REGNUM, alpha_heuristic_analyze_probing_loop(), alpha_heuristic_proc_start(), ALPHA_INSN_SIZE, ALPHA_NUM_REGS, ALPHA_RA_REGNUM, alpha_read_insn(), ALPHA_SP_REGNUM, ALPHA_T7_REGNUM, ALPHA_T9_REGNUM, FRAME_OBSTACK_ZALLOC, get_frame_arch(), get_frame_pc(), get_frame_register_unsigned(), alpha_heuristic_unwind_cache::return_reg, alpha_heuristic_unwind_cache::saved_regs, alpha_heuristic_unwind_cache::start_pc, trad_frame_addr_p(), trad_frame_alloc_saved_regs(), trad_frame_set_value(), and alpha_heuristic_unwind_cache::vfp.

Referenced by alpha_heuristic_frame_base_address(), alpha_heuristic_frame_prev_register(), and alpha_heuristic_frame_this_id().

## ◆ alpha_heuristic_proc_start()

static CORE_ADDR alpha_heuristic_proc_start | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | pc
| ) |  |
| static

Definition at line 1038 of file alpha-tdep.c.

References _, ALPHA_INSN_SIZE, alpha_read_insn(), current_inferior(), func, gdbarch_tdep(), get_pc_function_start(), heuristic_fence_post, arm-linux::inf, NO_STOP_QUIETLY, paddress(), gdbarch_tdep::pc, printf_filtered(), gdbarch_tdep::vm_min_address, and warning().

Referenced by alpha_heuristic_frame_unwind_cache().

## ◆ alpha_lds()

static void alpha_lds | ( | struct gdbarch * | gdbarch,
|  | void * | out,
|  | const void * | in
| ) |  |
| static

Definition at line 185 of file alpha-tdep.c.

References extract_unsigned_integer(), gdbarch_byte_order(), and store_unsigned_integer().

Referenced by alpha_store_return_value(), and alpha_value_to_register().

## ◆ alpha_next_pc()

static CORE_ADDR alpha_next_pc | ( | struct regcache * | regcache,
|  | CORE_ADDR | pc
| ) |  |
| static

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

References ALPHA_INSN_SIZE, alpha_read_insn(), regcache::arch(), fp_register_sign_bit(), fp_register_zero_p(), gdbarch_fp0_regnum(), offset, regcache_raw_get_signed(), and regcache_raw_get_unsigned().

Referenced by alpha_software_single_step().

## ◆ alpha_push_dummy_call()

static CORE_ADDR alpha_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

Definition at line 297 of file alpha-tdep.c.

References ALPHA_A0_REGNUM, ALPHA_FPA0_REGNUM, ALPHA_NUM_ARG_REGS, ALPHA_RA_REGNUM, ALPHA_REGISTER_SIZE, ALPHA_SP_REGNUM, ALPHA_T12_REGNUM, builtin_type::builtin_double, builtin_type::builtin_int32, builtin_type::builtin_int64, builtin_type(), check_typedef(), find_function_addr(), gdbarch_byte_order(), lookup_pointer_type(), offset, regcache_cooked_write(), regcache_cooked_write_signed(), store_unsigned_integer(), TYPE_CODE, TYPE_CODE_BOOL, TYPE_CODE_CHAR, TYPE_CODE_COMPLEX, TYPE_CODE_ENUM, TYPE_CODE_FLT, TYPE_CODE_INT, TYPE_CODE_RANGE, TYPE_LENGTH, value_cast(), value_contents(), value_from_pointer(), value_type(), and write_memory().

Referenced by alpha_gdbarch_init().

## ◆ alpha_read_insn()

unsigned int alpha_read_insn | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | pc
| ) |  |

Definition at line 679 of file alpha-tdep.c.

References ALPHA_INSN_SIZE, extract_unsigned_integer(), gdbarch_byte_order(), memory_error(), symtab_and_line::pc, target_read_memory(), and TARGET_XFER_E_IO.

Referenced by alpha_deal_with_atomic_sequence(), alpha_heuristic_analyze_probing_loop(), alpha_heuristic_frame_unwind_cache(), alpha_heuristic_proc_start(), alpha_linux_sigcontext_addr(), alpha_linux_sigtramp_offset_1(), alpha_next_pc(), alpha_skip_prologue(), and alphaobsd_pc_in_sigtramp().

## ◆ alpha_register_name()

static const char* alpha_register_name | ( | struct gdbarch * | gdbarch,
|  | int | regno
| ) |  |
| static

Definition at line 87 of file alpha-tdep.c.

References gdbarch_tdep::register_names.

Referenced by alpha_cannot_fetch_register(), alpha_cannot_store_register(), and alpha_gdbarch_init().

## ◆ alpha_register_reggroup_p()

static int alpha_register_reggroup_p | ( | struct gdbarch * | gdbarch,
|  | int | regnum,
|  | struct reggroup * | group
| ) |  |
| static

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

References all_reggroup, ALPHA_FP0_REGNUM, ALPHA_FPCR_REGNUM, ALPHA_UNIQUE_REGNUM, ALPHA_ZERO_REGNUM, float_reggroup, gdbarch_register_name(), general_reggroup, regnum, restore_reggroup, save_reggroup, and system_reggroup.

Referenced by alpha_gdbarch_init().

## ◆ alpha_register_to_value()

static int alpha_register_to_value | ( | struct frame_info * | frame,
|  | int | regnum,
|  | struct type * | valtype,
|  | gdb_byte * | out,
|  | int * | optimizedp,
|  | int * | unavailablep
| ) |  |
| static

Definition at line 241 of file alpha-tdep.c.

References alpha_sts(), gdb_assert, get_frame_arch(), get_frame_register_value(), regnum, release_value(), TYPE_LENGTH, value_contents_all(), value_entirely_available(), value_free(), and value_optimized_out().

Referenced by alpha_gdbarch_init().

## ◆ alpha_register_type()

static struct type* alpha_register_type | ( | struct gdbarch * | gdbarch,
|  | int | regno
| ) |  |
| static

Definition at line 123 of file alpha-tdep.c.

References ALPHA_FP0_REGNUM, ALPHA_GP_REGNUM, ALPHA_PC_REGNUM, ALPHA_SP_REGNUM, builtin_type::builtin_data_ptr, builtin_type::builtin_double, builtin_type::builtin_func_ptr, builtin_type::builtin_int64, and builtin_type().

Referenced by alpha_gdbarch_init().

## ◆ alpha_return_in_memory_always()

static int alpha_return_in_memory_always | ( | struct type * | type | ) |
| static

Definition at line 644 of file alpha-tdep.c.

Referenced by alpha_gdbarch_init().

## ◆ alpha_return_value()

static enum return_value_convention alpha_return_value | ( | struct gdbarch * | gdbarch,
|  | struct value * | function,
|  | struct type * | type,
|  | struct regcache * | regcache,
|  | gdb_byte * | readbuf,
|  | const gdb_byte * | writebuf
| ) |  |
| static

Definition at line 614 of file alpha-tdep.c.

References alpha_extract_return_value(), alpha_store_return_value(), ALPHA_V0_REGNUM, code, read_memory(), regcache_raw_read_unsigned(), RETURN_VALUE_ABI_RETURNS_ADDRESS, RETURN_VALUE_REGISTER_CONVENTION, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_LENGTH.

Referenced by alpha_gdbarch_init().

## ◆ alpha_sigtramp_frame_prev_register()

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

Definition at line 965 of file alpha-tdep.c.

References alpha_sigtramp_frame_unwind_cache(), alpha_sigtramp_register_address(), frame_unwind_got_memory(), frame_unwind_got_register(), get_frame_arch(), regnum, and alpha_sigtramp_unwind_cache::sigcontext_addr.

## ◆ alpha_sigtramp_frame_sniffer()

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

Definition at line 989 of file alpha-tdep.c.

References find_pc_partial_function(), get_frame_arch(), get_frame_pc(), and name.

## ◆ alpha_sigtramp_frame_this_id()

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

Definition at line 923 of file alpha-tdep.c.

References ALPHA_REGISTER_SIZE, alpha_sigtramp_frame_unwind_cache(), alpha_sigtramp_register_address(), ALPHA_SP_REGNUM, gdbarch_tdep::dynamic_sigtramp_offset, frame_id_build(), gdbarch_tdep(), get_frame_arch(), get_frame_func(), get_frame_memory_unsigned(), get_frame_pc(), offset, and alpha_sigtramp_unwind_cache::sigcontext_addr.

## ◆ alpha_sigtramp_frame_unwind_cache()

static struct alpha_sigtramp_unwind_cache* alpha_sigtramp_frame_unwind_cache | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_cache
| ) |  |
| static

Definition at line 882 of file alpha-tdep.c.

References FRAME_OBSTACK_ZALLOC, gdbarch_tdep(), get_frame_arch(), gdbarch_tdep::sigcontext_addr, and alpha_sigtramp_unwind_cache::sigcontext_addr.

Referenced by alpha_sigtramp_frame_prev_register(), and alpha_sigtramp_frame_this_id().

## ◆ alpha_sigtramp_register_address()

static CORE_ADDR alpha_sigtramp_register_address | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | sigcontext_addr,
|  | int | regnum
| ) |  |
| static

Definition at line 904 of file alpha-tdep.c.

References ALPHA_FP0_REGNUM, ALPHA_PC_REGNUM, gdbarch_tdep(), regnum, gdbarch_tdep::sc_fpregs_offset, gdbarch_tdep::sc_pc_offset, gdbarch_tdep::sc_regs_offset, and gdbarch_tdep::sigcontext_addr.

Referenced by alpha_sigtramp_frame_prev_register(), and alpha_sigtramp_frame_this_id().

## ◆ alpha_skip_prologue()

static CORE_ADDR alpha_skip_prologue | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | pc
| ) |  |
| static

Definition at line 699 of file alpha-tdep.c.

References alpha_after_prologue(), ALPHA_INSN_SIZE, alpha_read_insn(), offset, symtab_and_line::pc, and target_read_memory().

Referenced by alpha_gdbarch_init().

## ◆ alpha_software_single_step()

std::vector<CORE_ADDR> alpha_software_single_step | ( | struct regcache * | regcache | ) |

Definition at line 1722 of file alpha-tdep.c.

References alpha_deal_with_atomic_sequence(), alpha_next_pc(), regcache::arch(), and regcache_read_pc().

Referenced by alpha_gdbarch_init(), alphanbsd_init_abi(), and alphaobsd_init_abi().

## ◆ alpha_store_return_value()

static void alpha_store_return_value | ( | struct type * | valtype,
|  | struct regcache * | regcache,
|  | const gdb_byte * | valbuf
| ) |  |
| static

Definition at line 543 of file alpha-tdep.c.

References _, ALPHA_FP0_REGNUM, alpha_lds(), ALPHA_REGISTER_SIZE, ALPHA_V0_REGNUM, regcache::arch(), builtin_type::builtin_int32, builtin_type(), error(), internal_error(), regcache_cooked_write(), regcache_cooked_write_unsigned(), TYPE_CODE, TYPE_CODE_COMPLEX, TYPE_CODE_FLT, TYPE_LENGTH, and unpack_long().

Referenced by alpha_return_value().

## ◆ alpha_sts()

static void alpha_sts | ( | struct gdbarch * | gdbarch,
|  | void * | out,
|  | const void * | in
| ) |  |
| static

Definition at line 216 of file alpha-tdep.c.

References extract_unsigned_integer(), gdbarch_byte_order(), and store_unsigned_integer().

Referenced by alpha_extract_return_value(), and alpha_register_to_value().

## ◆ alpha_supply_fp_regs()

void alpha_supply_fp_regs | ( | struct regcache * | regcache,
|  | int | regno,
|  | const void * | f0_f30,
|  | const void * | fpcr
| ) |  |

Definition at line 1539 of file alpha-tdep.c.

References ALPHA_FP0_REGNUM, ALPHA_FPCR_REGNUM, and regcache_raw_supply().

Referenced by alpha_linux_supply_fpregset(), alphabsd_supply_fpreg(), and supply_fpregset().

## ◆ alpha_supply_int_regs()

void alpha_supply_int_regs | ( | struct regcache * | regcache,
|  | int | regno,
|  | const void * | r0_r30,
|  | const void * | pc,
|  | const void * | unique
| ) |  |

Definition at line 1496 of file alpha-tdep.c.

References ALPHA_PC_REGNUM, ALPHA_UNIQUE_REGNUM, ALPHA_ZERO_REGNUM, and regcache_raw_supply().

Referenced by alpha_linux_supply_gregset(), alphabsd_supply_reg(), and supply_gregset().

## ◆ alpha_unwind_pc()

static CORE_ADDR alpha_unwind_pc | ( | struct gdbarch * | gdbarch,
|  | struct frame_info * | next_frame
| ) |  |
| static

Definition at line 1483 of file alpha-tdep.c.

References ALPHA_PC_REGNUM, and frame_unwind_register_unsigned().

Referenced by alpha_gdbarch_init().

## ◆ alpha_value_to_register()

static void alpha_value_to_register | ( | struct frame_info * | frame,
|  | int | regnum,
|  | struct type * | valtype,
|  | const gdb_byte * | in
| ) |  |
| static

Definition at line 270 of file alpha-tdep.c.

References alpha_lds(), ALPHA_REGISTER_SIZE, gdb_assert, get_frame_arch(), put_frame_register(), register_size(), regnum, and TYPE_LENGTH.

Referenced by alpha_gdbarch_init().

## ◆ BP_MANIPULATION()

typedef BP_MANIPULATION | ( | alpha_break_insn |  | ) |

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

References symtab_and_line::end, find_pc_line(), find_pc_partial_function(), and symtab_and_line::pc.

## ◆ fp_register_sign_bit()

static int fp_register_sign_bit | ( | LONGEST | reg | ) |
| static

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

Referenced by alpha_next_pc().

## ◆ fp_register_zero_p()

static int fp_register_zero_p | ( | LONGEST | reg | ) |
| static

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

Referenced by alpha_next_pc().

## ◆ reinit_frame_cache_sfunc()

static void reinit_frame_cache_sfunc | ( | const char * | args,
|  | int | from_tty,
|  | struct cmd_list_element * | c
| ) |  |
| static

Definition at line 1462 of file alpha-tdep.c.

References reinit_frame_cache().

Referenced by _initialize_alpha_tdep().

## Variable Documentation

## ◆ alpha_break_insn

constexpr gdb_byte alpha_break_insn[] = { 0x80, 0, 0, 0 }

Definition at line 650 of file alpha-tdep.c.

## ◆ alpha_heuristic_frame_base

const struct frame_base alpha_heuristic_frame_base
| static

Initial value:
= {
&alpha_heuristic_frame_unwind,
alpha_heuristic_frame_base_address,
alpha_heuristic_frame_base_address,
alpha_heuristic_frame_base_address
}
alpha_heuristic_frame_unwind
static const struct frame_unwind alpha_heuristic_frame_unwind
Definition: alpha-tdep.c:1432
alpha_heuristic_frame_base_address
static CORE_ADDR alpha_heuristic_frame_base_address(struct frame_info *this_frame, void **this_prologue_cache)
Definition: alpha-tdep.c:1442

Definition at line 1451 of file alpha-tdep.c.

Referenced by alpha_gdbarch_init().

## ◆ alpha_heuristic_frame_unwind

const struct frame_unwind alpha_heuristic_frame_unwind
| static

Initial value:
= {
NORMAL_FRAME,
default_frame_unwind_stop_reason,
alpha_heuristic_frame_this_id,
alpha_heuristic_frame_prev_register,
NULL,
default_frame_sniffer
}
alpha_heuristic_frame_this_id
static void alpha_heuristic_frame_this_id(struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
Definition: alpha-tdep.c:1404
NORMAL_FRAME
Definition: frame.h:244
default_frame_sniffer
int default_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
Definition: frame-unwind.c:174
default_frame_unwind_stop_reason
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:184
alpha_heuristic_frame_prev_register
static struct value * alpha_heuristic_frame_prev_register(struct frame_info *this_frame, void **this_prologue_cache, int regnum)
Definition: alpha-tdep.c:1417

Definition at line 1432 of file alpha-tdep.c.

Referenced by alpha_gdbarch_init().

## ◆ alpha_sigtramp_frame_unwind

const struct frame_unwind alpha_sigtramp_frame_unwind
| static

Initial value:
= {
SIGTRAMP_FRAME,
default_frame_unwind_stop_reason,
alpha_sigtramp_frame_this_id,
alpha_sigtramp_frame_prev_register,
NULL,
alpha_sigtramp_frame_sniffer
}
alpha_sigtramp_frame_prev_register
static struct value * alpha_sigtramp_frame_prev_register(struct frame_info *this_frame, void **this_prologue_cache, int regnum)
Definition: alpha-tdep.c:965
SIGTRAMP_FRAME
Definition: frame.h:255
alpha_sigtramp_frame_this_id
static void alpha_sigtramp_frame_this_id(struct frame_info *this_frame, void **this_prologue_cache, struct frame_id *this_id)
Definition: alpha-tdep.c:923
alpha_sigtramp_frame_sniffer
static int alpha_sigtramp_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
Definition: alpha-tdep.c:989
default_frame_unwind_stop_reason
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 1016 of file alpha-tdep.c.

Referenced by alpha_gdbarch_init().

## ◆ bne_opcode

const int bne_opcode = 0x3d
| static

Definition at line 66 of file alpha-tdep.c.

Referenced by alpha_heuristic_analyze_probing_loop().

## ◆ br_opcode

const int br_opcode = 0x30
| static

Definition at line 65 of file alpha-tdep.c.

Referenced by alpha_deal_with_atomic_sequence().

## ◆ heuristic_fence_post

int heuristic_fence_post = 0
| static

Definition at line 1030 of file alpha-tdep.c.

Referenced by _initialize_alpha_tdep(), and alpha_heuristic_proc_start().

## ◆ lda_opcode

const int lda_opcode = 0x08
| static

Definition at line 59 of file alpha-tdep.c.

Referenced by alpha_heuristic_analyze_probing_loop().

## ◆ ldl_l_opcode

const int ldl_l_opcode = 0x2a
| static

Definition at line 759 of file alpha-tdep.c.

Referenced by alpha_deal_with_atomic_sequence().

## ◆ ldq_l_opcode

const int ldq_l_opcode = 0x2b
| static

Definition at line 760 of file alpha-tdep.c.

Referenced by alpha_deal_with_atomic_sequence().

## ◆ stl_c_opcode

const int stl_c_opcode = 0x2e
| static

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

Referenced by alpha_deal_with_atomic_sequence().

## ◆ stq_c_opcode

const int stq_c_opcode = 0x2f
| static

Definition at line 762 of file alpha-tdep.c.

Referenced by alpha_deal_with_atomic_sequence().

## ◆ stq_opcode

const int stq_opcode = 0x2d
| static

Definition at line 60 of file alpha-tdep.c.

Referenced by alpha_heuristic_analyze_probing_loop().

## ◆ subq_function

const int subq_function = 0x29
| static

Definition at line 76 of file alpha-tdep.c.

Referenced by alpha_heuristic_analyze_probing_loop().

## ◆ subq_opcode

const int subq_opcode = 0x10
| static

Definition at line 75 of file alpha-tdep.c.

Referenced by alpha_heuristic_analyze_probing_loop().