GDB (xrefs)
|
#include "defs.h"
#include "arch-utils.h"
#include "dis-asm.h"
#include "dwarf2-frame.h"
#include "floatformat.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.h"
#include "value.h"
#include "gdb_assert.h"
#include "gdb_string.h"
#include "sparc-tdep.h"
#include "sparc-ravenscar-thread.h"
Go to the source code of this file.
#define BIAS 2047 |
Definition at line 73 of file sparc-tdep.c.
Referenced by sparc64_linux_sigframe_init(), sparc64_linux_step_trap(), sparc64_push_dummy_call(), sparc64_sol2_sigtramp_frame_cache(), sparc64_store_arguments(), sparc64fbsd_sigtramp_frame_cache(), sparc64nbsd_sigcontext_frame_cache(), sparc64nbsd_sigcontext_saved_regs(), sparc64nbsd_supply_pcb(), sparc64obsd_frame_cache(), sparc64obsd_trapframe_cache(), sparc_analyze_prologue(), sparc_collect_rwindow(), sparc_dummy_id(), sparc_frame_cache(), and sparc_supply_rwindow().
Definition at line 67 of file sparc-tdep.c.
Referenced by sparc32_gdbarch_init().
#define SPARC32_NUM_PSEUDO_REGS ARRAY_SIZE (sparc32_pseudo_register_names) |
Definition at line 296 of file sparc-tdep.c.
Referenced by sparc32_gdbarch_init(), and sparc32_register_name().
#define SPARC32_NUM_REGS ARRAY_SIZE (sparc32_register_names) |
Definition at line 284 of file sparc-tdep.c.
Referenced by sparc32_gdbarch_init(), and sparc32_register_name().
#define X_A | ( | i | ) | (((i) >> 29) & 1) |
Definition at line 78 of file sparc-tdep.c.
Referenced by sparc_analyze_control_transfer().
#define X_COND | ( | i | ) | (((i) >> 25) & 0xf) |
Definition at line 79 of file sparc-tdep.c.
Referenced by sparc_analyze_control_transfer(), and sparc_skip_stack_check().
#define X_DISP10 | ( | i | ) | ((((((i) >> 11) && 0x300) | (((i) >> 5) & 0xff)) ^ 0x200) - 0x200) |
Definition at line 89 of file sparc-tdep.c.
Referenced by sparc_analyze_control_transfer().
#define X_DISP19 | ( | i | ) | ((((i) & 0x7ffff) ^ 0x40000) - 0x40000) |
Definition at line 88 of file sparc-tdep.c.
Referenced by sparc_analyze_control_transfer().
Definition at line 87 of file sparc-tdep.c.
Referenced by sparc_analyze_control_transfer().
#define X_I | ( | i | ) | (((i) >> 13) & 1) |
Definition at line 85 of file sparc-tdep.c.
Referenced by sparc32_skip_prologue(), sparc_analyze_prologue(), and sparc_skip_stack_check().
#define X_IMM22 | ( | i | ) | ((i) & 0x3fffff) |
Definition at line 81 of file sparc-tdep.c.
#define X_OP | ( | i | ) | (((i) >> 30) & 0x3) |
Definition at line 76 of file sparc-tdep.c.
Referenced by sparc32_skip_prologue(), sparc_analyze_control_transfer(), sparc_analyze_prologue(), and sparc_skip_stack_check().
#define X_OP2 | ( | i | ) | (((i) >> 22) & 0x7) |
Definition at line 80 of file sparc-tdep.c.
Referenced by sparc_analyze_control_transfer(), sparc_analyze_prologue(), and sparc_skip_stack_check().
#define X_OP3 | ( | i | ) | (((i) >> 19) & 0x3f) |
Definition at line 82 of file sparc-tdep.c.
Referenced by sparc32_skip_prologue(), sparc_analyze_control_transfer(), sparc_analyze_prologue(), and sparc_skip_stack_check().
#define X_RD | ( | i | ) | (((i) >> 25) & 0x1f) |
Definition at line 77 of file sparc-tdep.c.
Referenced by sparc32_skip_prologue(), sparc_analyze_prologue(), and sparc_skip_stack_check().
#define X_RS1 | ( | i | ) | (((i) >> 14) & 0x1f) |
Definition at line 83 of file sparc-tdep.c.
Referenced by sparc32_skip_prologue(), sparc_analyze_prologue(), and sparc_skip_stack_check().
#define X_RS2 | ( | i | ) | ((i) & 0x1f) |
Definition at line 84 of file sparc-tdep.c.
Referenced by sparc_analyze_prologue(), and sparc_skip_stack_check().
#define X_SIMM13 | ( | i | ) | ((((i) & 0x1fff) ^ 0x1000) - 0x1000) |
Definition at line 90 of file sparc-tdep.c.
Referenced by sparc32_skip_prologue(), sparc_analyze_prologue(), and sparc_skip_stack_check().
void _initialize_sparc_tdep | ( | void | ) |
void sparc32_collect_fpregset | ( | const struct sparc_fpregset * | fpregset, |
const struct regcache * | regcache, | ||
int | regnum, | ||
void * | fpregs | ||
) |
Definition at line 1985 of file sparc-tdep.c.
References sparc_fpregset::r_f0_offset, sparc_fpregset::r_fsr_offset, regcache_raw_collect(), SPARC32_FSR_REGNUM, and SPARC_F0_REGNUM.
Referenced by _initialize_sparc_nat(), fill_fpregset(), sparc32_linux_collect_core_fpregset(), and sparc64nbsd_collect_fpregset().
void sparc32_collect_gregset | ( | const struct sparc_gregset * | gregset, |
const struct regcache * | regcache, | ||
int | regnum, | ||
void * | gregs | ||
) |
Definition at line 1910 of file sparc-tdep.c.
References offset, sparc_gregset::r_g1_offset, sparc_gregset::r_l0_offset, sparc_gregset::r_npc_offset, sparc_gregset::r_pc_offset, sparc_gregset::r_psr_offset, sparc_gregset::r_y_offset, regcache_raw_collect(), SPARC32_NPC_REGNUM, SPARC32_PC_REGNUM, SPARC32_PSR_REGNUM, SPARC32_Y_REGNUM, SPARC_G1_REGNUM, SPARC_I7_REGNUM, SPARC_L0_REGNUM, and SPARC_O7_REGNUM.
Referenced by _initialize_sparc_nat(), fill_gregset(), sparc32_linux_collect_core_gregset(), and sparc64nbsd_collect_gregset().
static void sparc32_dwarf2_frame_init_reg | ( | struct gdbarch * | gdbarch, |
int | regnum, | ||
struct dwarf2_frame_state_reg * | reg, | ||
struct frame_info * | this_frame | ||
) | [static] |
Definition at line 1420 of file sparc-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, sparc32_dwarf2_struct_return_p(), SPARC32_NPC_REGNUM, SPARC32_PC_REGNUM, SPARC_G0_REGNUM, and SPARC_SP_REGNUM.
Referenced by sparc32_gdbarch_init().
static int sparc32_dwarf2_struct_return_p | ( | struct frame_info * | this_frame | ) | [static] |
Definition at line 1409 of file sparc-tdep.c.
References find_pc_function(), get_frame_address_in_block(), and sparc32_struct_return_from_sym().
Referenced by sparc32_dwarf2_frame_init_reg().
static void sparc32_extract_return_value | ( | struct type * | type, |
struct regcache * | regcache, | ||
gdb_byte * | valbuf | ||
) | [static] |
Definition at line 1252 of file sparc-tdep.c.
References gdb_assert, len, memcpy(), regcache_cooked_read(), sparc_complex_floating_p(), SPARC_F0_REGNUM, SPARC_F1_REGNUM, SPARC_F2_REGNUM, SPARC_F3_REGNUM, SPARC_F4_REGNUM, SPARC_F5_REGNUM, SPARC_F6_REGNUM, SPARC_F7_REGNUM, sparc_floating_p(), sparc_integral_or_pointer_p(), SPARC_O0_REGNUM, SPARC_O1_REGNUM, sparc_structure_or_union_p(), and TYPE_LENGTH.
Referenced by sparc32_return_value().
static CORE_ADDR sparc32_frame_align | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | address | ||
) | [static] |
Definition at line 426 of file sparc-tdep.c.
Referenced by sparc32_gdbarch_init().
static CORE_ADDR sparc32_frame_base_address | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static] |
Definition at line 1220 of file sparc-tdep.c.
References sparc_frame_cache::base, and sparc32_frame_cache().
struct sparc_frame_cache* sparc32_frame_cache | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [read] |
Definition at line 1101 of file sparc-tdep.c.
References sparc_frame_cache::copied_regs_mask, find_pc_function(), get_frame_register_unsigned(), sparc_frame_cache::pc, regnum, sparc32_struct_return_from_sym(), sparc_frame_cache(), SPARC_I7_REGNUM, sparc_is_unimp_insn(), SPARC_O7_REGNUM, and sparc_frame_cache::struct_return_p.
Referenced by sparc32_frame_base_address(), sparc32_frame_prev_register(), and sparc32_frame_this_id().
static struct value* sparc32_frame_prev_register | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 1151 of file sparc-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, sparc_frame_cache::saved_regs_mask, sparc32_frame_cache(), SPARC32_NPC_REGNUM, SPARC32_PC_REGNUM, sparc_fetch_wcookie(), SPARC_I0_REGNUM, SPARC_I7_REGNUM, SPARC_L0_REGNUM, SPARC_O0_REGNUM, SPARC_O7_REGNUM, sparc_frame_cache::struct_return_p, and ULONGEST.
static void sparc32_frame_this_id | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
struct frame_id * | this_id | ||
) | [static] |
Definition at line 1137 of file sparc-tdep.c.
References sparc_frame_cache::base, frame_id_build(), sparc_frame_cache::pc, and sparc32_frame_cache().
static struct gdbarch* sparc32_gdbarch_init | ( | struct gdbarch_info | info, |
struct gdbarch_list * | arches | ||
) | [static, read] |
Definition at line 1615 of file sparc-tdep.c.
References core_addr_lessthan(), dwarf2_frame_set_init_reg(), floatformats_sparc_quad, frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), gdbarch_tdep::gregset, gdbarch_tdep::npc_regnum, ON_STACK, gdbarch_tdep::pc_regnum, register_sparc_ravenscar_ops(), set_gdbarch_breakpoint_from_pc(), set_gdbarch_call_dummy_location(), set_gdbarch_dummy_id(), set_gdbarch_fp0_regnum(), set_gdbarch_frame_align(), set_gdbarch_frame_args_skip(), set_gdbarch_inner_than(), set_gdbarch_long_double_bit(), set_gdbarch_long_double_format(), 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_push_dummy_call(), set_gdbarch_push_dummy_code(), set_gdbarch_register_name(), set_gdbarch_register_type(), set_gdbarch_regset_from_core_section(), set_gdbarch_return_value(), set_gdbarch_skip_prologue(), set_gdbarch_software_single_step(), set_gdbarch_sp_regnum(), set_gdbarch_stabs_argument_has_addr(), set_gdbarch_unwind_pc(), set_gdbarch_write_pc(), sparc32_dwarf2_frame_init_reg(), sparc32_frame_align(), SPARC32_NPC_REGNUM, SPARC32_NUM_PSEUDO_REGS, SPARC32_NUM_REGS, SPARC32_PC_REGNUM, sparc32_pseudo_register_read(), sparc32_pseudo_register_write(), sparc32_push_dummy_call(), sparc32_push_dummy_code(), sparc32_register_name(), sparc32_register_type(), sparc32_return_value(), sparc32_skip_prologue(), sparc32_stabs_argument_has_addr(), sparc_breakpoint_from_pc(), sparc_dummy_id(), SPARC_F0_REGNUM, sparc_regset_from_core_section(), sparc_software_single_step(), SPARC_SP_REGNUM, sparc_step_trap(), sparc_unwind_pc(), sparc_write_pc(), gdbarch_tdep::step_trap, and XZALLOC.
static enum register_status sparc32_pseudo_register_read | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | regnum, | ||
gdb_byte * | buf | ||
) | [static] |
Definition at line 397 of file sparc-tdep.c.
References gdb_assert, REG_VALID, regcache_raw_read(), SPARC32_D0_REGNUM, SPARC32_D30_REGNUM, SPARC_F0_REGNUM, and exsummary::status.
Referenced by sparc32_gdbarch_init().
static void sparc32_pseudo_register_write | ( | struct gdbarch * | gdbarch, |
struct regcache * | regcache, | ||
int | regnum, | ||
const gdb_byte * | buf | ||
) | [static] |
Definition at line 413 of file sparc-tdep.c.
References gdb_assert, regcache_raw_write(), SPARC32_D0_REGNUM, SPARC32_D30_REGNUM, and SPARC_F0_REGNUM.
Referenced by sparc32_gdbarch_init().
static CORE_ADDR sparc32_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 557 of file sparc-tdep.c.
References gdb_assert, regcache_cooked_write_unsigned(), sparc32_store_arguments(), SPARC_O7_REGNUM, and SPARC_SP_REGNUM.
Referenced by sparc32_gdbarch_init().
static CORE_ADDR sparc32_push_dummy_code | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | sp, | ||
CORE_ADDR | funcaddr, | ||
struct value ** | args, | ||
int | nargs, | ||
struct type * | value_type, | ||
CORE_ADDR * | real_pc, | ||
CORE_ADDR * | bp_addr, | ||
struct regcache * | regcache | ||
) | [static] |
Definition at line 433 of file sparc-tdep.c.
References gdbarch_byte_order(), store_unsigned_integer(), TYPE_LENGTH, using_struct_return(), and write_memory().
Referenced by sparc32_gdbarch_init().
static const char* sparc32_register_name | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static] |
Definition at line 301 of file sparc-tdep.c.
References regnum, SPARC32_NUM_PSEUDO_REGS, SPARC32_NUM_REGS, sparc32_pseudo_register_names, and sparc32_register_names.
Referenced by sparc32_gdbarch_init().
static struct type* sparc32_register_type | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static, read] |
Definition at line 373 of file sparc-tdep.c.
References builtin_type::builtin_data_ptr, builtin_type::builtin_double, builtin_type::builtin_float, builtin_type::builtin_func_ptr, builtin_type::builtin_int32, builtin_type(), SPARC32_D0_REGNUM, SPARC32_D30_REGNUM, SPARC32_FSR_REGNUM, SPARC32_NPC_REGNUM, SPARC32_PC_REGNUM, SPARC32_PSR_REGNUM, SPARC_F0_REGNUM, SPARC_F31_REGNUM, SPARC_FP_REGNUM, sparc_fsr_type(), sparc_psr_type(), and SPARC_SP_REGNUM.
Referenced by sparc32_gdbarch_init().
static enum return_value_convention sparc32_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 1357 of file sparc-tdep.c.
References frame_info::addr, gdbarch_byte_order(), read_memory(), read_memory_unsigned_integer(), regcache_cooked_read_unsigned(), RETURN_VALUE_ABI_PRESERVES_ADDRESS, RETURN_VALUE_REGISTER_CONVENTION, sp, sparc32_extract_return_value(), sparc32_store_return_value(), sparc_floating_p(), SPARC_SP_REGNUM, sparc_structure_or_union_p(), TYPE_LENGTH, ULONGEST, and write_memory().
Referenced by sparc32_gdbarch_init().
static CORE_ADDR sparc32_skip_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | start_pc | ||
) | [static] |
Definition at line 977 of file sparc-tdep.c.
References sparc_frame_cache::copied_regs_mask, symtab_and_line::end, find_pc_line(), find_pc_partial_function(), regnum, sparc_analyze_prologue(), sparc_fetch_instruction(), SPARC_FP_REGNUM, SPARC_I0_REGNUM, SPARC_I5_REGNUM, SPARC_O0_REGNUM, SPARC_O5_REGNUM, X_I, X_OP, X_OP3, X_RD, X_RS1, and X_SIMM13.
Referenced by sparc32_gdbarch_init().
static int sparc32_stabs_argument_has_addr | ( | struct gdbarch * | gdbarch, |
struct type * | type | ||
) | [static] |
Definition at line 1401 of file sparc-tdep.c.
References sparc_complex_floating_p(), sparc_floating_p(), sparc_structure_or_union_p(), and TYPE_LENGTH.
Referenced by sparc32_gdbarch_init().
static CORE_ADDR sparc32_store_arguments | ( | struct regcache * | regcache, |
int | nargs, | ||
struct value ** | args, | ||
CORE_ADDR | sp, | ||
int | struct_return, | ||
CORE_ADDR | struct_addr | ||
) | [static] |
Definition at line 460 of file sparc-tdep.c.
References gdbarch::byte_order, gdb_assert, gdbarch_byte_order(), get_regcache_arch(), len, lookup_pointer_type(), max, regcache_cooked_write(), regnum, sparc_complex_floating_p(), sparc_floating_p(), sparc_integral_or_pointer_p(), SPARC_O0_REGNUM, sparc_structure_or_union_p(), store_unsigned_integer(), TYPE_LENGTH, value_cast(), value_contents(), value_from_pointer(), value_type(), and write_memory().
Referenced by sparc32_push_dummy_call().
static void sparc32_store_return_value | ( | struct type * | type, |
struct regcache * | regcache, | ||
const gdb_byte * | valbuf | ||
) | [static] |
Definition at line 1306 of file sparc-tdep.c.
References gdb_assert, len, memcpy(), regcache_cooked_write(), sparc_complex_floating_p(), SPARC_F0_REGNUM, SPARC_F1_REGNUM, SPARC_F2_REGNUM, SPARC_F3_REGNUM, SPARC_F4_REGNUM, SPARC_F5_REGNUM, SPARC_F6_REGNUM, SPARC_F7_REGNUM, sparc_floating_p(), sparc_integral_or_pointer_p(), SPARC_O0_REGNUM, SPARC_O1_REGNUM, sparc_structure_or_union_p(), and TYPE_LENGTH.
Referenced by sparc32_return_value().
static int sparc32_struct_return_from_sym | ( | struct symbol * | sym | ) | [static] |
Definition at line 1084 of file sparc-tdep.c.
References check_typedef(), code, sparc_floating_p(), sparc_structure_or_union_p(), SYMBOL_TYPE, TYPE_CODE, TYPE_CODE_FUNC, TYPE_CODE_METHOD, TYPE_LENGTH, and TYPE_TARGET_TYPE.
Referenced by sparc32_dwarf2_struct_return_p(), and sparc32_frame_cache().
void sparc32_supply_fpregset | ( | const struct sparc_fpregset * | fpregset, |
struct regcache * | regcache, | ||
int | regnum, | ||
const void * | fpregs | ||
) |
Definition at line 1965 of file sparc-tdep.c.
References sparc_fpregset::r_f0_offset, sparc_fpregset::r_fsr_offset, regcache_raw_supply(), SPARC32_FSR_REGNUM, and SPARC_F0_REGNUM.
Referenced by _initialize_sparc_nat(), sparc32_linux_supply_core_fpregset(), sparc32nbsd_supply_fpregset(), sparc32nbsd_supply_gregset(), sparc64nbsd_supply_fpregset(), and supply_fpregset().
void sparc32_supply_gregset | ( | const struct sparc_gregset * | gregset, |
struct regcache * | regcache, | ||
int | regnum, | ||
const void * | gregs | ||
) |
Definition at line 1845 of file sparc-tdep.c.
References offset, sparc_gregset::r_g1_offset, sparc_gregset::r_l0_offset, sparc_gregset::r_npc_offset, sparc_gregset::r_pc_offset, sparc_gregset::r_psr_offset, sparc_gregset::r_y_offset, regcache_cooked_read_unsigned(), regcache_raw_supply(), sp, SPARC32_NPC_REGNUM, SPARC32_PC_REGNUM, SPARC32_PSR_REGNUM, SPARC32_Y_REGNUM, SPARC_G0_REGNUM, SPARC_G1_REGNUM, SPARC_I7_REGNUM, SPARC_L0_REGNUM, SPARC_O7_REGNUM, SPARC_SP_REGNUM, sparc_supply_rwindow(), and ULONGEST.
Referenced by _initialize_sparc_nat(), sparc32_linux_supply_core_gregset(), sparc32nbsd_supply_gregset(), sparc64nbsd_supply_gregset(), and supply_gregset().
static struct sparc_frame_cache* sparc_alloc_frame_cache | ( | void | ) | [static, read] |
Definition at line 603 of file sparc-tdep.c.
References sparc_frame_cache::base, sparc_frame_cache::copied_regs_mask, FRAME_OBSTACK_ZALLOC, sparc_frame_cache::frame_offset, sparc_frame_cache::frameless_p, sparc_frame_cache::pc, sparc_frame_cache::saved_regs_mask, and sparc_frame_cache::struct_return_p.
Referenced by sparc_frame_cache().
static CORE_ADDR sparc_analyze_control_transfer | ( | struct frame_info * | frame, |
CORE_ADDR | pc, | ||
CORE_ADDR * | npc | ||
) | [static] |
Definition at line 1456 of file sparc-tdep.c.
References gdb_assert, gdbarch_tdep(), get_frame_arch(), offset, sparc_fetch_instruction(), gdbarch_tdep::step_trap, X_A, X_COND, X_DISP10, X_DISP19, X_DISP22, X_OP, X_OP2, and X_OP3.
Referenced by sparc_software_single_step().
CORE_ADDR sparc_analyze_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc, | ||
CORE_ADDR | current_pc, | ||
struct sparc_frame_cache * | cache | ||
) |
Definition at line 835 of file sparc-tdep.c.
References BIAS, sparc_frame_cache::copied_regs_mask, sparc_frame_cache::frame_offset, sparc_frame_cache::frameless_p, gdbarch_tdep(), in_plt_section(), offset, gdbarch_tdep::pc, gdbarch_tdep::plt_entry_size, regnum, sparc_frame_cache::saved_regs_mask, sparc_fetch_instruction(), SPARC_FP_REGNUM, SPARC_G0_REGNUM, SPARC_I7_REGNUM, SPARC_L0_REGNUM, SPARC_O7_REGNUM, sparc_record_save_insn(), sparc_skip_stack_check(), SPARC_SP_REGNUM, X_I, X_OP, X_OP2, X_OP3, X_RD, X_RS1, X_RS2, and X_SIMM13.
Referenced by sparc32_skip_prologue(), sparc64_skip_prologue(), and sparc_frame_cache().
static const gdb_byte* sparc_breakpoint_from_pc | ( | struct gdbarch * | gdbarch, |
CORE_ADDR * | pc, | ||
int * | len | ||
) | [static] |
Definition at line 591 of file sparc-tdep.c.
Referenced by sparc32_gdbarch_init().
void sparc_collect_rwindow | ( | const struct regcache * | regcache, |
CORE_ADDR | sp, | ||
int | regnum | ||
) |
Definition at line 1774 of file sparc-tdep.c.
References BIAS, gdbarch::byte_order, extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_ptr_bit(), get_regcache_arch(), offset, regcache_raw_collect(), sparc_fetch_wcookie(), SPARC_I7_REGNUM, SPARC_L0_REGNUM, SPARC_SP_REGNUM, store_unsigned_integer(), target_write_memory(), and ULONGEST.
Referenced by sparc32obsd_collect_uthread(), sparc64obsd_collect_uthread(), and sparc_store_inferior_registers().
static int sparc_complex_floating_p | ( | const struct type * | type | ) | [static] |
Definition at line 228 of file sparc-tdep.c.
References len, TYPE_CODE, TYPE_CODE_COMPLEX, and TYPE_LENGTH.
Referenced by sparc32_extract_return_value(), sparc32_stabs_argument_has_addr(), sparc32_store_arguments(), and sparc32_store_return_value().
static struct frame_id sparc_dummy_id | ( | struct gdbarch * | gdbarch, |
struct frame_info * | this_frame | ||
) | [static, read] |
Definition at line 1237 of file sparc-tdep.c.
References BIAS, frame_id_build(), get_frame_pc(), get_frame_register_unsigned(), sp, and SPARC_SP_REGNUM.
Referenced by sparc32_gdbarch_init().
unsigned long sparc_fetch_instruction | ( | CORE_ADDR | pc | ) |
Definition at line 96 of file sparc-tdep.c.
References target_read_memory().
Referenced by sparc32_skip_prologue(), sparc32obsd_pc_in_sigtramp(), sparc64obsd_pc_in_sigtramp(), sparc_analyze_control_transfer(), sparc_analyze_prologue(), sparc_is_unimp_insn(), and sparc_skip_stack_check().
ULONGEST sparc_fetch_wcookie | ( | struct gdbarch * | gdbarch | ) |
Definition at line 156 of file sparc-tdep.c.
References current_target, extract_unsigned_integer(), gdb_assert, gdbarch_byte_order(), len, TARGET_OBJECT_WCOOKIE, and target_read().
Referenced by sparc32_frame_prev_register(), sparc32nbsd_sigcontext_saved_regs(), sparc64_frame_prev_register(), sparc64nbsd_sigcontext_saved_regs(), sparc_collect_rwindow(), and sparc_supply_rwindow().
static int sparc_floating_p | ( | const struct type * | type | ) | [static] |
Definition at line 209 of file sparc-tdep.c.
References len, TYPE_CODE, TYPE_CODE_FLT, and TYPE_LENGTH.
Referenced by sparc32_extract_return_value(), sparc32_return_value(), sparc32_stabs_argument_has_addr(), sparc32_store_arguments(), sparc32_store_return_value(), and sparc32_struct_return_from_sym().
struct sparc_frame_cache* sparc_frame_cache | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [read] |
Definition at line 1044 of file sparc-tdep.c.
References sparc_frame_cache::base, BIAS, sparc_frame_cache::frame_offset, sparc_frame_cache::frameless_p, get_frame_arch(), get_frame_func(), get_frame_pc(), get_frame_register_unsigned(), sparc_frame_cache::pc, sparc_alloc_frame_cache(), sparc_analyze_prologue(), SPARC_FP_REGNUM, and SPARC_SP_REGNUM.
Referenced by sparc32_frame_cache(), sparc32_sol2_sigtramp_frame_cache(), sparc32nbsd_sigcontext_frame_cache(), sparc32obsd_sigtramp_frame_cache(), sparc64_frame_cache(), sparc64_sol2_sigtramp_frame_cache(), sparc64fbsd_sigtramp_frame_cache(), sparc64nbsd_sigcontext_frame_cache(), sparc64obsd_frame_cache(), and sparc64obsd_trapframe_cache().
static struct type* sparc_fsr_type | ( | struct gdbarch * | gdbarch | ) | [static, read] |
Definition at line 337 of file sparc-tdep.c.
References append_flags_type_flag(), arch_flags_type(), gdbarch_tdep(), gdbarch_tdep::sparc_fsr_type, and type.
Referenced by sparc32_register_type().
static int sparc_integral_or_pointer_p | ( | const struct type * | type | ) | [static] |
Definition at line 180 of file sparc-tdep.c.
References len, TYPE_CODE, TYPE_CODE_BOOL, TYPE_CODE_CHAR, TYPE_CODE_ENUM, TYPE_CODE_INT, TYPE_CODE_PTR, TYPE_CODE_RANGE, TYPE_CODE_REF, and TYPE_LENGTH.
Referenced by sparc32_extract_return_value(), sparc32_store_arguments(), and sparc32_store_return_value().
static int sparc_is_unimp_insn | ( | CORE_ADDR | pc | ) | [static] |
Definition at line 117 of file sparc-tdep.c.
References sparc_fetch_instruction().
Referenced by sparc32_frame_cache().
static struct type* sparc_psr_type | ( | struct gdbarch * | gdbarch | ) | [static, read] |
Definition at line 315 of file sparc-tdep.c.
References append_flags_type_flag(), arch_flags_type(), gdbarch_tdep(), gdbarch_tdep::sparc_psr_type, and type.
Referenced by sparc32_register_type().
void sparc_record_save_insn | ( | struct sparc_frame_cache * | cache | ) |
Definition at line 812 of file sparc-tdep.c.
References sparc_frame_cache::copied_regs_mask, sparc_frame_cache::frame_offset, sparc_frame_cache::frameless_p, and sparc_frame_cache::saved_regs_mask.
Referenced by sparc32nbsd_sigcontext_frame_cache(), sparc32obsd_sigtramp_frame_cache(), sparc64nbsd_sigcontext_frame_cache(), sparc64obsd_frame_cache(), and sparc_analyze_prologue().
static struct regset* sparc_regset_from_core_section | ( | struct gdbarch * | gdbarch, |
const char * | sect_name, | ||
size_t | sect_size | ||
) | [static, read] |
Definition at line 1599 of file sparc-tdep.c.
References gdbarch_tdep::fpregset, gdbarch_tdep(), gdbarch_tdep::gregset, gdbarch_tdep::sizeof_fpregset, and gdbarch_tdep::sizeof_gregset.
Referenced by sparc32_gdbarch_init().
static CORE_ADDR sparc_skip_stack_check | ( | const CORE_ADDR | start_pc | ) | [static] |
Definition at line 629 of file sparc-tdep.c.
References sparc_frame_cache::pc, sparc_fetch_instruction(), X_COND, X_I, X_OP, X_OP2, X_OP3, X_RD, X_RS1, X_RS2, and X_SIMM13.
Referenced by sparc_analyze_prologue().
int sparc_software_single_step | ( | struct frame_info * | frame | ) |
Definition at line 1556 of file sparc-tdep.c.
References gdb_assert, gdbarch_tdep(), get_frame_address_space(), get_frame_arch(), get_frame_register_unsigned(), insert_single_step_breakpoint(), gdbarch_tdep::npc_regnum, gdbarch_tdep::pc_regnum, and sparc_analyze_control_transfer().
Referenced by sparc32_gdbarch_init().
static CORE_ADDR sparc_step_trap | ( | struct frame_info * | frame, |
unsigned long | insn | ||
) | [static] |
Definition at line 1550 of file sparc-tdep.c.
Referenced by sparc32_gdbarch_init().
static int sparc_structure_or_union_p | ( | const struct type * | type | ) | [static] |
Definition at line 251 of file sparc-tdep.c.
References TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_STRUCT, and TYPE_CODE_UNION.
Referenced by sparc32_extract_return_value(), sparc32_return_value(), sparc32_stabs_argument_has_addr(), sparc32_store_arguments(), sparc32_store_return_value(), and sparc32_struct_return_from_sym().
void sparc_supply_rwindow | ( | struct regcache * | regcache, |
CORE_ADDR | sp, | ||
int | regnum | ||
) |
Definition at line 1701 of file sparc-tdep.c.
References BIAS, gdbarch::byte_order, extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_ptr_bit(), get_regcache_arch(), memset(), offset, regcache_raw_supply(), sparc_fetch_wcookie(), SPARC_I7_REGNUM, SPARC_L0_REGNUM, store_unsigned_integer(), target_read_memory(), and ULONGEST.
Referenced by sparc32_supply_gregset(), sparc32nbsd_supply_pcb(), sparc32obsd_supply_uthread(), sparc64_supply_gregset(), sparc64fbsd_kvm_supply_pcb(), sparc64nbsd_supply_pcb(), and sparc64obsd_supply_uthread().
static CORE_ADDR sparc_unwind_pc | ( | struct gdbarch * | gdbarch, |
struct frame_info * | this_frame | ||
) | [static] |
Definition at line 967 of file sparc-tdep.c.
References frame_unwind_register_unsigned(), gdbarch_tdep(), and gdbarch_tdep::pc_regnum.
Referenced by sparc32_gdbarch_init().
static void sparc_write_pc | ( | struct regcache * | regcache, |
CORE_ADDR | pc | ||
) | [static] |
Definition at line 1586 of file sparc-tdep.c.
References gdbarch_tdep(), get_regcache_arch(), gdbarch_tdep::npc_regnum, gdbarch_tdep::pc_regnum, and regcache_cooked_write_unsigned().
Referenced by sparc32_gdbarch_init().
{ 0 * 4, 32 * 4, }
Definition at line 2026 of file sparc-tdep.c.
Referenced by _initialize_sparc_linux_nat(), _initialize_sparcnbsd_nat(), sparc32_linux_collect_core_fpregset(), sparc32_linux_supply_core_fpregset(), sparc32nbsd_supply_fpregset(), sparc32nbsd_supply_gregset(), sparc64nbsd_collect_fpregset(), and sparc64nbsd_supply_fpregset().
struct frame_base sparc32_frame_base [static] |
{ &sparc32_frame_unwind, sparc32_frame_base_address, sparc32_frame_base_address, sparc32_frame_base_address }
Definition at line 1228 of file sparc-tdep.c.
struct frame_unwind sparc32_frame_unwind [static] |
{ NORMAL_FRAME, default_frame_unwind_stop_reason, sparc32_frame_this_id, sparc32_frame_prev_register, NULL, default_frame_sniffer }
Definition at line 1208 of file sparc-tdep.c.
const char* sparc32_pseudo_register_names[] [static] |
{ "d0", "d2", "d4", "d6", "d8", "d10", "d12", "d14", "d16", "d18", "d20", "d22", "d24", "d26", "d28", "d30" }
Definition at line 289 of file sparc-tdep.c.
Referenced by sparc32_register_name().
const char* sparc32_register_names[] [static] |
{ "g0", "g1", "g2", "g3", "g4", "g5", "g6", "g7", "o0", "o1", "o2", "o3", "o4", "o5", "sp", "o7", "l0", "l1", "l2", "l3", "l4", "l5", "l6", "l7", "i0", "i1", "i2", "i3", "i4", "i5", "fp", "i7", "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", "f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", "f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", "y", "psr", "wim", "tbr", "pc", "npc", "fsr", "csr" }
Definition at line 268 of file sparc-tdep.c.
Referenced by sparc32_register_name().
{ 0 * 4, 33 * 4, }
Definition at line 2020 of file sparc-tdep.c.
Referenced by _initialize_sparc_nat().
{ 0 * 4, 1 * 4, 2 * 4, 3 * 4, -1, -1, 4 * 4, -1 }
Definition at line 2008 of file sparc-tdep.c.
Referenced by _initialize_sparc_nat().