GDB (xrefs)
|
#include "defs.h"
#include "arch-utils.h"
#include "dwarf2/frame.h"
#include "frame.h"
#include "frame-base.h"
#include "frame-unwind.h"
#include "gdbcore.h"
#include "gdbtypes.h"
#include "inferior.h"
#include "symtab.h"
#include "objfiles.h"
#include "osabi.h"
#include "regcache.h"
#include "target-descriptions.h"
#include "target.h"
#include "value.h"
#include "sparc64-tdep.h"
#include <forward_list>
#include <algorithm>
#include "cli/cli-utils.h"
#include "gdbcmd.h"
#include "auxv.h"
Go to the source code of this file.
Classes | |
struct | adi_stat_t |
struct | sparc64_adi_info |
Macros | |
#define | MAX_PROC_NAME_SIZE sizeof("/proc/99999/lwp/9999/adi/lstatus") |
#define | AT_ADI_BLKSZ 34 |
#define | AT_ADI_NBITS 35 |
#define | AT_ADI_UEONADI 36 |
#define | SPARC64_FPU_REGISTERS |
#define | SPARC64_CP0_REGISTERS |
#define | SPARC64_NUM_REGS ARRAY_SIZE (sparc64_register_names) |
#define | SPARC64_NUM_PSEUDO_REGS ARRAY_SIZE (sparc64_pseudo_register_names) |
#define | TSTATE_CWP 0x000000000000001fULL |
#define | TSTATE_ICC 0x0000000f00000000ULL |
#define | TSTATE_XCC 0x000000f000000000ULL |
#define | PSR_S 0x00000080 |
#define | PSR_ICC 0x00f00000 |
#define | PSR_VERS 0x0f000000 |
#define | PSR_IMPL 0xf0000000 |
#define | PSR_V8PLUS 0xff000000 |
#define | PSR_XCC 0x000f0000 |
Functions | |
static sparc64_adi_info * | get_adi_info_proc (pid_t pid) |
static adi_stat_t | get_adi_info (pid_t pid) |
void | sparc64_forget_process (pid_t pid) |
static void | read_maps_entry (const char *line, ULONGEST *addr, ULONGEST *endaddr) |
static bool | adi_available (void) |
static CORE_ADDR | adi_normalize_address (CORE_ADDR addr) |
static CORE_ADDR | adi_align_address (CORE_ADDR naddr) |
static int | adi_convert_byte_count (CORE_ADDR naddr, int nbytes, CORE_ADDR locl) |
static int | adi_tag_fd (void) |
static bool | adi_is_addr_mapped (CORE_ADDR vaddr, size_t cnt) |
static int | adi_read_versions (CORE_ADDR vaddr, size_t size, gdb_byte *tags) |
static int | adi_write_versions (CORE_ADDR vaddr, size_t size, unsigned char *tags) |
static void | adi_print_versions (CORE_ADDR vaddr, size_t cnt, gdb_byte *tags) |
static void | do_examine (CORE_ADDR start, int bcnt) |
static void | do_assign (CORE_ADDR start, size_t bcnt, int version) |
static void | adi_examine_command (const char *args, int from_tty) |
static void | adi_assign_command (const char *args, int from_tty) |
void | _initialize_sparc64_adi_tdep () |
static int | sparc64_integral_or_pointer_p (const struct type *type) |
static int | sparc64_floating_p (const struct type *type) |
static int | sparc64_complex_floating_p (const struct type *type) |
static int | sparc64_structure_or_union_p (const struct type *type) |
static struct type * | sparc64_pstate_type (struct gdbarch *gdbarch) |
static struct type * | sparc64_ccr_type (struct gdbarch *gdbarch) |
static struct type * | sparc64_fsr_type (struct gdbarch *gdbarch) |
static struct type * | sparc64_fprs_type (struct gdbarch *gdbarch) |
static const char * | sparc64_pseudo_register_name (struct gdbarch *gdbarch, int regnum) |
static const char * | sparc64_register_name (struct gdbarch *gdbarch, int regnum) |
static struct type * | sparc64_pseudo_register_type (struct gdbarch *gdbarch, int regnum) |
static struct type * | sparc64_register_type (struct gdbarch *gdbarch, int regnum) |
static enum register_status | sparc64_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache, int regnum, gdb_byte *buf) |
static void | sparc64_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, const gdb_byte *buf) |
static CORE_ADDR | sparc64_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc) |
static struct sparc_frame_cache * | sparc64_frame_cache (frame_info_ptr this_frame, void **this_cache) |
static void | sparc64_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id) |
static struct value * | sparc64_frame_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum) |
static CORE_ADDR | sparc64_frame_base_address (frame_info_ptr this_frame, void **this_cache) |
static int | sparc64_16_byte_align_p (struct type *type) |
static void | sparc64_store_floating_fields (struct regcache *regcache, struct type *type, const gdb_byte *valbuf, int element, int bitpos) |
static void | sparc64_extract_floating_fields (struct regcache *regcache, struct type *type, gdb_byte *valbuf, int bitpos) |
static CORE_ADDR | sparc64_store_arguments (struct regcache *regcache, int nargs, struct value **args, CORE_ADDR sp, function_call_return_method return_method, CORE_ADDR struct_addr) |
static CORE_ADDR | sparc64_frame_align (struct gdbarch *gdbarch, CORE_ADDR address) |
static CORE_ADDR | sparc64_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, function_call_return_method return_method, CORE_ADDR struct_addr) |
static void | sparc64_extract_return_value (struct type *type, struct regcache *regcache, gdb_byte *valbuf) |
static void | sparc64_store_return_value (struct type *type, struct regcache *regcache, const gdb_byte *valbuf) |
static enum return_value_convention | sparc64_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf) |
static void | sparc64_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum, struct dwarf2_frame_state_reg *reg, frame_info_ptr this_frame) |
static CORE_ADDR | sparc64_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr) |
void | sparc64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) |
void | sparc64_supply_gregset (const struct sparc_gregmap *gregmap, struct regcache *regcache, int regnum, const void *gregs) |
void | sparc64_collect_gregset (const struct sparc_gregmap *gregmap, const struct regcache *regcache, int regnum, void *gregs) |
void | sparc64_supply_fpregset (const struct sparc_fpregmap *fpregmap, struct regcache *regcache, int regnum, const void *fpregs) |
void | sparc64_collect_fpregset (const struct sparc_fpregmap *fpregmap, const struct regcache *regcache, int regnum, void *fpregs) |
Variables | |
static struct cmd_list_element * | sparc64adilist = NULL |
static std::forward_list< sparc64_adi_info > | adi_proc_list |
static const char *const | sparc64_fpu_register_names [] |
static const char *const | sparc64_cp0_register_names [] |
static const char *const | sparc64_register_names [] |
static const char *const | sparc64_pseudo_register_names [] |
static const struct frame_unwind | sparc64_frame_unwind |
static const struct frame_base | sparc64_frame_base |
const struct sparc_fpregmap | sparc64_bsd_fpregmap |
#define AT_ADI_BLKSZ 34 |
Definition at line 76 of file sparc64-tdep.c.
Referenced by adi_available().
#define AT_ADI_NBITS 35 |
Definition at line 79 of file sparc64-tdep.c.
Referenced by adi_available().
#define AT_ADI_UEONADI 36 |
Definition at line 82 of file sparc64-tdep.c.
#define MAX_PROC_NAME_SIZE sizeof("/proc/99999/lwp/9999/adi/lstatus") |
Definition at line 72 of file sparc64-tdep.c.
Referenced by adi_is_addr_mapped(), and adi_tag_fd().
#define PSR_ICC 0x00f00000 |
Definition at line 1865 of file sparc64-tdep.c.
Referenced by sparc64_collect_gregset().
#define PSR_IMPL 0xf0000000 |
Definition at line 1869 of file sparc64-tdep.c.
Referenced by sparc64_collect_gregset().
#define PSR_S 0x00000080 |
Definition at line 1863 of file sparc64-tdep.c.
Referenced by sparc64_supply_gregset().
#define PSR_V8PLUS 0xff000000 |
Definition at line 1871 of file sparc64-tdep.c.
Referenced by sparc64_collect_gregset(), and sparc64_supply_gregset().
#define PSR_VERS 0x0f000000 |
Definition at line 1867 of file sparc64-tdep.c.
Referenced by sparc64_collect_gregset().
#define PSR_XCC 0x000f0000 |
Definition at line 1872 of file sparc64-tdep.c.
Referenced by sparc64_collect_gregset().
#define SPARC64_CP0_REGISTERS |
Definition at line 760 of file sparc64-tdep.c.
#define SPARC64_FPU_REGISTERS |
Definition at line 753 of file sparc64-tdep.c.
#define SPARC64_NUM_PSEUDO_REGS ARRAY_SIZE (sparc64_pseudo_register_names) |
Definition at line 802 of file sparc64-tdep.c.
Referenced by sparc64_init_abi(), and sparc64_pseudo_register_name().
#define SPARC64_NUM_REGS ARRAY_SIZE (sparc64_register_names) |
Definition at line 783 of file sparc64-tdep.c.
Referenced by sparc64_init_abi().
#define TSTATE_CWP 0x000000000000001fULL |
Definition at line 1859 of file sparc64-tdep.c.
Referenced by sparc64_supply_gregset().
#define TSTATE_ICC 0x0000000f00000000ULL |
Definition at line 1860 of file sparc64-tdep.c.
Referenced by sparc64_supply_gregset().
#define TSTATE_XCC 0x000000f000000000ULL |
Definition at line 1861 of file sparc64-tdep.c.
Referenced by sparc64_supply_gregset().
void _initialize_sparc64_adi_tdep | ( | ) |
Definition at line 531 of file sparc64-tdep.c.
References add_alias_cmd(), add_basic_prefix_cmd(), add_cmd(), adi_assign_command(), adi_examine_command(), class_support, cmdlist, no_class, and sparc64adilist.
|
static |
Definition at line 251 of file sparc64-tdep.c.
References adi_stat_t::blksize, get_adi_info(), and inferior_ptid.
Referenced by do_assign(), and do_examine().
|
static |
Definition at line 481 of file sparc64-tdep.c.
References adi_available(), do_assign(), error_no_arg(), get_adi_info(), get_number(), inferior_ptid, adi_stat_t::max_version, next_address, parse_and_eval_address(), parse_and_eval_long(), target_has_execution(), and version.
Referenced by _initialize_sparc64_adi_tdep().
|
static |
Definition at line 207 of file sparc64-tdep.c.
References AT_ADI_BLKSZ, AT_ADI_NBITS, get_adi_info_proc(), inferior_ptid, pid, target_auxv_search(), and value.
Referenced by adi_assign_command(), and adi_examine_command().
|
static |
Definition at line 261 of file sparc64-tdep.c.
References adi_stat_t::blksize, get_adi_info(), and inferior_ptid.
Referenced by do_assign(), and do_examine().
|
static |
Definition at line 448 of file sparc64-tdep.c.
References adi_available(), do_examine(), get_number(), next_address, parse_and_eval_address(), and target_has_execution().
Referenced by _initialize_sparc64_adi_tdep().
|
static |
Definition at line 299 of file sparc64-tdep.c.
References adi_stat_t::blksize, get_adi_info(), inferior_ptid, MAX_PROC_NAME_SIZE, pid, read_maps_entry(), and target_fileio_read_stralloc().
Referenced by adi_read_versions(), and adi_write_versions().
|
static |
Definition at line 231 of file sparc64-tdep.c.
References get_adi_info(), inferior_ptid, and adi_stat_t::nbits.
Referenced by do_assign(), do_examine(), and sparc64_addr_bits_remove().
|
static |
Definition at line 380 of file sparc64-tdep.c.
References adi_stat_t::blksize, gdb_printf(), get_adi_info(), inferior_ptid, paddress(), QUIT, and target_gdbarch().
Referenced by do_examine().
|
static |
Definition at line 338 of file sparc64-tdep.c.
References adi_is_addr_mapped(), adi_tag_fd(), adi_stat_t::blksize, get_adi_info(), inferior_ptid, paddress(), size, target_fileio_pread(), and target_gdbarch().
Referenced by do_examine().
|
static |
Definition at line 278 of file sparc64-tdep.c.
References get_adi_info_proc(), inferior_ptid, MAX_PROC_NAME_SIZE, pid, and target_fileio_open().
Referenced by adi_read_versions(), and adi_write_versions().
|
static |
Definition at line 359 of file sparc64-tdep.c.
References adi_is_addr_mapped(), adi_tag_fd(), adi_stat_t::blksize, get_adi_info(), inferior_ptid, paddress(), size, target_fileio_pwrite(), and target_gdbarch().
Referenced by do_assign().
|
static |
Definition at line 425 of file sparc64-tdep.c.
References adi_align_address(), adi_convert_byte_count(), adi_normalize_address(), adi_write_versions(), paddress(), target_gdbarch(), and version.
Referenced by adi_assign_command().
|
static |
Definition at line 408 of file sparc64-tdep.c.
References adi_align_address(), adi_convert_byte_count(), adi_normalize_address(), adi_print_versions(), adi_read_versions(), paddress(), and target_gdbarch().
Referenced by adi_examine_command().
|
static |
Definition at line 155 of file sparc64-tdep.c.
References get_adi_info_proc(), and pid.
Referenced by adi_align_address(), adi_assign_command(), adi_convert_byte_count(), adi_is_addr_mapped(), adi_normalize_address(), adi_print_versions(), adi_read_versions(), and adi_write_versions().
|
static |
Definition at line 135 of file sparc64-tdep.c.
References adi_proc_list, and pid.
Referenced by adi_available(), adi_tag_fd(), and get_adi_info().
|
static |
Definition at line 192 of file sparc64-tdep.c.
Referenced by adi_is_addr_mapped().
|
static |
Definition at line 1167 of file sparc64-tdep.c.
References check_typedef(), type::code(), type::field(), type::length(), type::num_fields(), sparc64_16_byte_align_p(), sparc64_floating_p(), sparc64_structure_or_union_p(), type::target_type(), and field::type().
Referenced by sparc64_16_byte_align_p(), and sparc64_store_arguments().
|
static |
Definition at line 1794 of file sparc64-tdep.c.
References adi_normalize_address().
Referenced by sparc64_init_abi().
Definition at line 674 of file sparc64-tdep.c.
References append_flags_type_flag(), arch_flags_type(), sparc_gdbarch_tdep::sparc64_ccr_type, and type.
Referenced by sparc64_pseudo_register_type().
void sparc64_collect_fpregset | ( | const struct sparc_fpregmap * | fpregmap, |
const struct regcache * | regcache, | ||
int | regnum, | ||
void * | fpregs ) |
Definition at line 2140 of file sparc64-tdep.c.
References reg_buffer::arch(), gdbarch_ptr_bit(), sparc_fpregmap::r_f0_offset, sparc_fpregmap::r_fsr_offset, reg_buffer::raw_collect(), regnum, SPARC32_FSR_REGNUM, SPARC64_F32_REGNUM, SPARC64_FSR_REGNUM, and SPARC_F0_REGNUM.
Referenced by _initialize_sparc64_nat(), _initialize_sparc64obsd_nat(), fill_fpregset(), sparc64_linux_collect_core_fpregset(), sparc64_sol2_collect_core_fpregset(), sparc64fbsd_collect_fpregset(), and sparc64nbsd_collect_fpregset().
void sparc64_collect_gregset | ( | const struct sparc_gregmap * | gregmap, |
const struct regcache * | regcache, | ||
int | regnum, | ||
void * | gregs ) |
Definition at line 1992 of file sparc64-tdep.c.
References reg_buffer::arch(), extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_ptr_bit(), PSR_ICC, PSR_IMPL, PSR_V8PLUS, PSR_VERS, PSR_XCC, sparc_gregmap::r_g1_offset, sparc_gregmap::r_l0_offset, sparc_gregmap::r_npc_offset, sparc_gregmap::r_pc_offset, sparc_gregmap::r_y_offset, sparc_gregmap::r_y_size, reg_buffer::raw_collect(), regnum, SPARC32_NPC_REGNUM, SPARC32_PC_REGNUM, SPARC32_PSR_REGNUM, SPARC32_Y_REGNUM, SPARC64_FPRS_REGNUM, SPARC64_NPC_REGNUM, SPARC64_PC_REGNUM, SPARC64_STATE_REGNUM, SPARC64_Y_REGNUM, SPARC_G1_REGNUM, SPARC_I7_REGNUM, SPARC_L0_REGNUM, SPARC_O7_REGNUM, and store_unsigned_integer().
Referenced by _initialize_sparc64_nat(), _initialize_sparc64obsd_nat(), fill_gregset(), sparc64_linux_collect_core_gregset(), sparc64_sol2_collect_core_gregset(), sparc64fbsd_collect_gregset(), and sparc64nbsd_collect_gregset().
|
static |
Definition at line 604 of file sparc64-tdep.c.
References type::code(), and type::length().
Referenced by sparc64_extract_return_value(), sparc64_store_arguments(), sparc64_store_floating_fields(), and sparc64_store_return_value().
|
static |
Definition at line 1765 of file sparc64-tdep.c.
References DWARF2_FRAME_REG_CFA, DWARF2_FRAME_REG_RA_OFFSET, DWARF2_FRAME_REG_SAME_VALUE, dwarf2_frame_state_reg::how, dwarf2_frame_state_reg::loc, dwarf2_frame_state_reg::offset, regnum, SPARC64_NPC_REGNUM, SPARC64_PC_REGNUM, SPARC_G0_REGNUM, and SPARC_SP_REGNUM.
Referenced by sparc64_init_abi().
|
static |
Definition at line 1294 of file sparc64-tdep.c.
References reg_buffer::arch(), check_typedef(), type::code(), readable_regcache::cooked_read(), type::field(), gdbarch_num_regs(), type::length(), field::loc_bitpos(), type::num_fields(), regnum, SPARC64_D0_REGNUM, sparc64_extract_floating_fields(), sparc64_floating_p(), SPARC64_Q0_REGNUM, sparc64_structure_or_union_p(), SPARC_F0_REGNUM, and field::type().
Referenced by sparc64_extract_floating_fields(), and sparc64_extract_return_value().
|
static |
Definition at line 1646 of file sparc64-tdep.c.
References type::code(), readable_regcache::cooked_read(), type::length(), sparc64_complex_floating_p(), sparc64_extract_floating_fields(), sparc64_floating_p(), sparc64_integral_or_pointer_p(), sparc64_structure_or_union_p(), SPARC_F0_REGNUM, and SPARC_O0_REGNUM.
Referenced by sparc64_return_value().
|
static |
Definition at line 584 of file sparc64-tdep.c.
References type::code(), and type::length().
Referenced by sparc64_16_byte_align_p(), sparc64_extract_floating_fields(), sparc64_extract_return_value(), sparc64_store_arguments(), sparc64_store_floating_fields(), and sparc64_store_return_value().
void sparc64_forget_process | ( | pid_t | pid | ) |
Definition at line 167 of file sparc64-tdep.c.
References adi_proc_list, pid, and target_fileio_close().
Referenced by sparc64_linux_nat_target::low_forget_process().
Definition at line 732 of file sparc64-tdep.c.
References append_flags_type_flag(), arch_flags_type(), sparc_gdbarch_tdep::sparc64_fprs_type, and type.
Referenced by sparc64_register_type().
|
static |
Definition at line 1609 of file sparc64-tdep.c.
Referenced by sparc64_init_abi().
|
static |
Definition at line 1148 of file sparc64-tdep.c.
References sparc_frame_cache::base, and sparc64_frame_cache().
|
static |
Definition at line 1064 of file sparc64-tdep.c.
References sparc_frame_cache().
Referenced by sparc64_frame_base_address(), sparc64_frame_prev_register(), and sparc64_frame_this_id().
|
static |
Definition at line 1084 of file sparc64-tdep.c.
References sparc_frame_cache::base, sparc_frame_cache::copied_regs_mask, frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_register(), sparc_frame_cache::frameless_p, get_frame_arch(), get_frame_memory_unsigned(), get_frame_register_unsigned(), sparc_frame_cache::pc, regnum, sparc_frame_cache::saved_regs_mask, sparc64_frame_cache(), SPARC64_NPC_REGNUM, SPARC64_PC_REGNUM, sparc_fetch_wcookie(), SPARC_I0_REGNUM, SPARC_I7_REGNUM, SPARC_L0_REGNUM, SPARC_O0_REGNUM, and SPARC_O7_REGNUM.
|
static |
Definition at line 1070 of file sparc64-tdep.c.
References sparc_frame_cache::base, frame_id_build(), sparc_frame_cache::pc, and sparc64_frame_cache().
Definition at line 699 of file sparc64-tdep.c.
References append_flags_type_flag(), arch_flags_type(), sparc_gdbarch_tdep::sparc64_fsr_type, and type.
Referenced by sparc64_register_type().
void sparc64_init_abi | ( | struct gdbarch_info | info, |
struct gdbarch * | gdbarch ) |
Definition at line 1800 of file sparc64-tdep.c.
References AT_ENTRY_POINT, sparc_gdbarch_tdep::cp0_register_names, sparc_gdbarch_tdep::cp0_registers_num, default_gdbarch_return_value(), default_stabs_argument_has_addr(), dwarf2_frame_set_init_reg(), sparc_gdbarch_tdep::fpu_register_names, sparc_gdbarch_tdep::fpu_registers_num, frame_base_set_default(), frame_unwind_append_unwinder(), sparc_gdbarch_tdep::npc_regnum, sparc_gdbarch_tdep::pc_regnum, set_gdbarch_addr_bits_remove(), set_gdbarch_call_dummy_location(), set_gdbarch_frame_align(), set_gdbarch_long_bit(), set_gdbarch_long_long_bit(), set_gdbarch_num_pseudo_regs(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_pseudo_register_read(), set_gdbarch_pseudo_register_write(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_push_dummy_code(), set_gdbarch_register_name(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_return_value_as_value(), set_gdbarch_skip_prologue(), set_gdbarch_stabs_argument_has_addr(), set_gdbarch_stack_frame_destroyed_p(), set_gdbarch_wchar_bit(), set_gdbarch_wchar_signed(), set_tdesc_pseudo_register_name(), set_tdesc_pseudo_register_type(), sparc64_addr_bits_remove(), sparc64_cp0_register_names, sparc64_dwarf2_frame_init_reg(), sparc64_fpu_register_names, sparc64_frame_align(), sparc64_frame_base, sparc64_frame_unwind, SPARC64_NPC_REGNUM, SPARC64_NUM_PSEUDO_REGS, SPARC64_NUM_REGS, SPARC64_PC_REGNUM, sparc64_pseudo_register_name(), sparc64_pseudo_register_read(), sparc64_pseudo_register_type(), sparc64_pseudo_register_write(), sparc64_push_dummy_call(), sparc64_register_name(), sparc64_register_type(), sparc64_return_value(), sparc64_skip_prologue(), and sparc_stack_frame_destroyed_p().
Referenced by sparc64_linux_init_abi(), sparc64_sol2_init_abi(), sparc64fbsd_init_abi(), sparc64nbsd_init_abi(), and sparc64obsd_init_abi().
|
static |
Definition at line 552 of file sparc64-tdep.c.
References type::code(), and type::length().
Referenced by sparc64_extract_return_value(), sparc64_store_arguments(), and sparc64_store_return_value().
|
static |
Definition at line 807 of file sparc64-tdep.c.
References gdbarch_num_regs(), regnum, SPARC64_NUM_PSEUDO_REGS, and sparc64_pseudo_register_names.
Referenced by sparc64_init_abi(), and sparc64_register_name().
|
static |
Definition at line 895 of file sparc64-tdep.c.
References gdbarch_byte_order(), gdbarch_num_regs(), readable_regcache::raw_read(), regnum, SPARC64_ASI_REGNUM, SPARC64_CCR_REGNUM, SPARC64_CWP_REGNUM, SPARC64_D0_REGNUM, SPARC64_D30_REGNUM, SPARC64_D32_REGNUM, SPARC64_D62_REGNUM, SPARC64_F32_REGNUM, SPARC64_PSTATE_REGNUM, SPARC64_Q0_REGNUM, SPARC64_Q28_REGNUM, SPARC64_Q32_REGNUM, SPARC64_Q60_REGNUM, SPARC64_STATE_REGNUM, SPARC_F0_REGNUM, status, and store_unsigned_integer().
Referenced by sparc64_init_abi().
Definition at line 833 of file sparc64-tdep.c.
References builtin_type::builtin_double, builtin_type::builtin_int64, builtin_type::builtin_long_double, builtin_type(), gdbarch_num_regs(), regnum, SPARC64_ASI_REGNUM, SPARC64_CCR_REGNUM, sparc64_ccr_type(), SPARC64_CWP_REGNUM, SPARC64_D0_REGNUM, SPARC64_D62_REGNUM, SPARC64_PSTATE_REGNUM, sparc64_pstate_type(), SPARC64_Q0_REGNUM, and SPARC64_Q60_REGNUM.
Referenced by sparc64_init_abi(), and sparc64_register_type().
|
static |
Definition at line 974 of file sparc64-tdep.c.
References bits, extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_num_regs(), regcache::raw_write(), regcache_raw_read_unsigned(), regcache_raw_write_unsigned(), regnum, SPARC64_ASI_REGNUM, SPARC64_CCR_REGNUM, SPARC64_CWP_REGNUM, SPARC64_D0_REGNUM, SPARC64_D30_REGNUM, SPARC64_D32_REGNUM, SPARC64_D62_REGNUM, SPARC64_F32_REGNUM, SPARC64_PSTATE_REGNUM, SPARC64_Q0_REGNUM, SPARC64_Q28_REGNUM, SPARC64_Q32_REGNUM, SPARC64_Q60_REGNUM, SPARC64_STATE_REGNUM, and SPARC_F0_REGNUM.
Referenced by sparc64_init_abi().
Definition at line 647 of file sparc64-tdep.c.
References append_flags_type_flag(), arch_flags_type(), sparc_gdbarch_tdep::sparc64_pstate_type, and type.
Referenced by sparc64_pseudo_register_type().
|
static |
Definition at line 1616 of file sparc64-tdep.c.
References BIAS, regcache_cooked_write_unsigned(), sparc64_store_arguments(), SPARC_O7_REGNUM, and SPARC_SP_REGNUM.
Referenced by sparc64_init_abi().
|
static |
Definition at line 818 of file sparc64-tdep.c.
References gdbarch_num_regs(), gdbarch_target_desc(), regnum, sparc64_pseudo_register_name(), sparc64_register_names, tdesc_has_registers(), and tdesc_register_name().
Referenced by sparc64_init_abi().
Definition at line 858 of file sparc64-tdep.c.
References builtin_type::builtin_data_ptr, builtin_type::builtin_double, builtin_type::builtin_float, builtin_type::builtin_func_ptr, builtin_type::builtin_int64, builtin_type(), gdbarch_num_regs(), gdbarch_target_desc(), regnum, SPARC64_F32_REGNUM, SPARC64_F62_REGNUM, SPARC64_FPRS_REGNUM, sparc64_fprs_type(), SPARC64_FSR_REGNUM, sparc64_fsr_type(), SPARC64_NPC_REGNUM, SPARC64_PC_REGNUM, sparc64_pseudo_register_type(), SPARC64_STATE_REGNUM, SPARC64_Y_REGNUM, SPARC_F0_REGNUM, SPARC_F31_REGNUM, SPARC_FP_REGNUM, SPARC_G0_REGNUM, SPARC_I7_REGNUM, SPARC_SP_REGNUM, tdesc_has_registers(), and tdesc_register_type().
Referenced by sparc64_init_abi().
|
static |
Definition at line 1748 of file sparc64-tdep.c.
References type::length(), RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, sparc64_extract_return_value(), and sparc64_store_return_value().
Referenced by sparc64_init_abi().
|
static |
Definition at line 1040 of file sparc64-tdep.c.
References symtab_and_line::end, find_pc_line(), find_pc_partial_function(), and sparc_analyze_prologue().
Referenced by sparc64_init_abi().
|
static |
Definition at line 1362 of file sparc64-tdep.c.
References reg_buffer::arch(), BIAS, regcache::cooked_write(), gdbarch_num_regs(), type::length(), lookup_pointer_type(), regcache_cooked_write_unsigned(), regnum, return_method_struct, sparc64_16_byte_align_p(), sparc64_complex_floating_p(), SPARC64_D0_REGNUM, SPARC64_D10_REGNUM, SPARC64_D30_REGNUM, sparc64_floating_p(), sparc64_integral_or_pointer_p(), SPARC64_Q0_REGNUM, SPARC64_Q8_REGNUM, sparc64_store_floating_fields(), sparc64_structure_or_union_p(), SPARC_O0_REGNUM, value_cast(), value_from_pointer(), and write_memory().
Referenced by sparc64_push_dummy_call().
|
static |
Definition at line 1202 of file sparc64-tdep.c.
References reg_buffer::arch(), check_typedef(), type::code(), regcache::cooked_write(), type::field(), gdbarch_num_regs(), type::length(), field::loc_bitpos(), type::num_fields(), regnum, sparc64_complex_floating_p(), SPARC64_D0_REGNUM, sparc64_floating_p(), SPARC64_Q0_REGNUM, sparc64_store_floating_fields(), sparc64_structure_or_union_p(), SPARC_F0_REGNUM, SPARC_F1_REGNUM, and field::type().
Referenced by sparc64_store_arguments(), sparc64_store_floating_fields(), and sparc64_store_return_value().
|
static |
Definition at line 1696 of file sparc64-tdep.c.
References type::code(), regcache::cooked_write(), type::length(), sparc64_complex_floating_p(), sparc64_floating_p(), sparc64_integral_or_pointer_p(), sparc64_store_floating_fields(), sparc64_structure_or_union_p(), SPARC_F0_REGNUM, and SPARC_O0_REGNUM.
Referenced by sparc64_return_value().
|
static |
Definition at line 628 of file sparc64-tdep.c.
References type::code().
Referenced by sparc64_16_byte_align_p(), sparc64_extract_floating_fields(), sparc64_extract_return_value(), sparc64_store_arguments(), sparc64_store_floating_fields(), and sparc64_store_return_value().
void sparc64_supply_fpregset | ( | const struct sparc_fpregmap * | fpregmap, |
struct regcache * | regcache, | ||
int | regnum, | ||
const void * | fpregs ) |
Definition at line 2102 of file sparc64-tdep.c.
References reg_buffer::arch(), gdbarch_ptr_bit(), sparc_fpregmap::r_f0_offset, sparc_fpregmap::r_fsr_offset, reg_buffer::raw_supply(), regnum, SPARC32_FSR_REGNUM, SPARC64_F32_REGNUM, SPARC64_FSR_REGNUM, and SPARC_F0_REGNUM.
Referenced by _initialize_sparc64_nat(), _initialize_sparc64obsd_nat(), sparc64_linux_supply_core_fpregset(), sparc64_sol2_supply_core_fpregset(), sparc64fbsd_supply_fpregset(), sparc64nbsd_supply_fpregset(), sparc64nbsd_supply_fpregset(), sparc64obsd_supply_fpregset(), sparc64obsd_supply_gregset(), and supply_fpregset().
void sparc64_supply_gregset | ( | const struct sparc_gregmap * | gregmap, |
struct regcache * | regcache, | ||
int | regnum, | ||
const void * | gregs ) |
Definition at line 1875 of file sparc64-tdep.c.
References reg_buffer::arch(), extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_ptr_bit(), PSR_S, PSR_V8PLUS, sparc_gregmap::r_g1_offset, sparc_gregmap::r_l0_offset, sparc_gregmap::r_npc_offset, sparc_gregmap::r_pc_offset, sparc_gregmap::r_y_offset, sparc_gregmap::r_y_size, reg_buffer::raw_supply(), regcache_cooked_read_unsigned(), regnum, SPARC32_NPC_REGNUM, SPARC32_PC_REGNUM, SPARC32_PSR_REGNUM, SPARC32_Y_REGNUM, SPARC64_FPRS_REGNUM, SPARC64_NPC_REGNUM, SPARC64_PC_REGNUM, SPARC64_STATE_REGNUM, SPARC64_Y_REGNUM, SPARC_G0_REGNUM, SPARC_G1_REGNUM, SPARC_I7_REGNUM, SPARC_L0_REGNUM, SPARC_O7_REGNUM, SPARC_SP_REGNUM, sparc_supply_rwindow(), store_unsigned_integer(), TSTATE_CWP, TSTATE_ICC, and TSTATE_XCC.
Referenced by _initialize_sparc64_nat(), _initialize_sparc64obsd_nat(), sparc64_linux_supply_core_gregset(), sparc64_sol2_supply_core_gregset(), sparc64fbsd_supply_gregset(), sparc64nbsd_supply_gregset(), sparc64nbsd_supply_gregset(), sparc64obsd_supply_gregset(), and supply_gregset().
|
static |
Definition at line 129 of file sparc64-tdep.c.
Referenced by get_adi_info_proc(), and sparc64_forget_process().
const struct sparc_fpregmap sparc64_bsd_fpregmap |
Definition at line 2177 of file sparc64-tdep.c.
Referenced by _initialize_sparc64_linux_nat(), _initialize_sparc64obsd_nat(), fill_fpregset(), sparc64_linux_collect_core_fpregset(), sparc64_linux_supply_core_fpregset(), sparc64fbsd_collect_fpregset(), sparc64fbsd_supply_fpregset(), sparc64nbsd_collect_fpregset(), sparc64nbsd_supply_fpregset(), sparc64nbsd_supply_fpregset(), sparc64obsd_supply_fpregset(), sparc64obsd_supply_gregset(), and supply_fpregset().
|
static |
Definition at line 771 of file sparc64-tdep.c.
Referenced by sparc64_init_abi().
|
static |
Definition at line 768 of file sparc64-tdep.c.
Referenced by sparc64_init_abi().
|
static |
Definition at line 1156 of file sparc64-tdep.c.
Referenced by sparc64_init_abi().
|
static |
Definition at line 1135 of file sparc64-tdep.c.
Referenced by sparc64_init_abi().
|
static |
Definition at line 788 of file sparc64-tdep.c.
Referenced by sparc64_pseudo_register_name().
|
static |
Definition at line 775 of file sparc64-tdep.c.
Referenced by sparc64_register_name().
|
static |
Definition at line 86 of file sparc64-tdep.c.
Referenced by _initialize_sparc64_adi_tdep().