|
GDB (xrefs)
|
#include "defs.h"#include "arch-utils.h"#include "dis-asm.h"#include "dwarf2.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.h"#include "target-descriptions.h"#include "value.h"#include "sparc-tdep.h"#include "sparc-ravenscar-thread.h"#include <algorithm>Go to the source code of this file.
Macros | |
| #define | floatformats_sparc_quad floatformats_ia64_quad |
| #define | BIAS 2047 |
| #define | X_OP(i) (((i) >> 30) & 0x3) |
| #define | X_RD(i) (((i) >> 25) & 0x1f) |
| #define | X_A(i) (((i) >> 29) & 1) |
| #define | X_COND(i) (((i) >> 25) & 0xf) |
| #define | X_OP2(i) (((i) >> 22) & 0x7) |
| #define | X_IMM22(i) ((i) & 0x3fffff) |
| #define | X_OP3(i) (((i) >> 19) & 0x3f) |
| #define | X_RS1(i) (((i) >> 14) & 0x1f) |
| #define | X_RS2(i) ((i) & 0x1f) |
| #define | X_I(i) (((i) >> 13) & 1) |
| #define | X_DISP22(i) ((X_IMM22 (i) ^ 0x200000) - 0x200000) |
| #define | X_DISP19(i) ((((i) & 0x7ffff) ^ 0x40000) - 0x40000) |
| #define | X_DISP10(i) ((((((i) >> 11) && 0x300) | (((i) >> 5) & 0xff)) ^ 0x200) - 0x200) |
| #define | X_SIMM13(i) ((((i) & 0x1fff) ^ 0x1000) - 0x1000) |
| #define | X_RETTURN(i) ((X_OP (i) == 0x2) && (X_OP3 (i) == 0x39)) |
| #define | SPARC32_FPU_REGISTERS |
| #define | SPARC32_CP0_REGISTERS "y", "psr", "wim", "tbr", "pc", "npc", "fsr", "csr" |
| #define | SPARC32_NUM_REGS ARRAY_SIZE (sparc32_register_names) |
| #define | SPARC32_NUM_PSEUDO_REGS ARRAY_SIZE (sparc32_pseudo_register_names) |
Variables | |
| static const char * | sparc_core_register_names [] = { SPARC_CORE_REGISTERS } |
| static const char * | sparc32_fpu_register_names [] = { SPARC32_FPU_REGISTERS } |
| static const char * | sparc32_cp0_register_names [] = { SPARC32_CP0_REGISTERS } |
| static const char * | sparc32_register_names [] |
| static const char * | sparc32_pseudo_register_names [] |
| constexpr gdb_byte | sparc_break_insn [] = { 0x91, 0xd0, 0x20, 0x01 } |
| static const struct frame_unwind | sparc32_frame_unwind |
| static const struct frame_base | sparc32_frame_base |
| const struct sparc_gregmap | sparc32_sunos4_gregmap |
| const struct sparc_fpregmap | sparc32_sunos4_fpregmap |
| const struct sparc_fpregmap | sparc32_bsd_fpregmap |
| #define BIAS 2047 |
Definition at line 72 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_supply_pcb(), sparc64obsd_trapframe_cache(), sparc_analyze_prologue(), sparc_collect_rwindow(), sparc_dummy_id(), sparc_frame_cache(), and sparc_supply_rwindow().
| #define floatformats_sparc_quad floatformats_ia64_quad |
Definition at line 66 of file sparc-tdep.c.
Referenced by sparc32_gdbarch_init().
| #define SPARC32_CP0_REGISTERS "y", "psr", "wim", "tbr", "pc", "npc", "fsr", "csr" |
Definition at line 343 of file sparc-tdep.c.
| #define SPARC32_FPU_REGISTERS |
Definition at line 338 of file sparc-tdep.c.
| #define SPARC32_NUM_PSEUDO_REGS ARRAY_SIZE (sparc32_pseudo_register_names) |
Definition at line 370 of file sparc-tdep.c.
Referenced by sparc32_gdbarch_init(), and sparc32_pseudo_register_name().
| #define SPARC32_NUM_REGS ARRAY_SIZE (sparc32_register_names) |
Definition at line 358 of file sparc-tdep.c.
Referenced by sparc32_gdbarch_init().
| #define X_A | ( | i | ) | (((i) >> 29) & 1) |
Definition at line 77 of file sparc-tdep.c.
Referenced by sparc_analyze_control_transfer(), and sparc_is_annulled_branch_insn().
| #define X_COND | ( | i | ) | (((i) >> 25) & 0xf) |
Definition at line 78 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 88 of file sparc-tdep.c.
Referenced by sparc_analyze_control_transfer().
| #define X_DISP19 | ( | i | ) | ((((i) & 0x7ffff) ^ 0x40000) - 0x40000) |
Definition at line 87 of file sparc-tdep.c.
Referenced by sparc_analyze_control_transfer().
| #define X_DISP22 | ( | i | ) | ((X_IMM22 (i) ^ 0x200000) - 0x200000) |
Definition at line 86 of file sparc-tdep.c.
Referenced by sparc_analyze_control_transfer().
| #define X_I | ( | i | ) | (((i) >> 13) & 1) |
Definition at line 84 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 80 of file sparc-tdep.c.
| #define X_OP | ( | i | ) | (((i) >> 30) & 0x3) |
Definition at line 75 of file sparc-tdep.c.
Referenced by sparc32_skip_prologue(), sparc_analyze_control_transfer(), sparc_analyze_prologue(), sparc_is_annulled_branch_insn(), and sparc_skip_stack_check().
| #define X_OP2 | ( | i | ) | (((i) >> 22) & 0x7) |
Definition at line 79 of file sparc-tdep.c.
Referenced by sparc_analyze_control_transfer(), sparc_analyze_prologue(), sparc_is_annulled_branch_insn(), and sparc_skip_stack_check().
| #define X_OP3 | ( | i | ) | (((i) >> 19) & 0x3f) |
Definition at line 81 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 76 of file sparc-tdep.c.
Referenced by sparc32_skip_prologue(), sparc_analyze_prologue(), and sparc_skip_stack_check().
| #define X_RETTURN | ( | i | ) | ((X_OP (i) == 0x2) && (X_OP3 (i) == 0x39)) |
Definition at line 92 of file sparc-tdep.c.
Referenced by sparc_stack_frame_destroyed_p().
| #define X_RS1 | ( | i | ) | (((i) >> 14) & 0x1f) |
Definition at line 82 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 83 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 89 of file sparc-tdep.c.
Referenced by sparc32_skip_prologue(), sparc_analyze_prologue(), and sparc_skip_stack_check().
| void _initialize_sparc_tdep | ( | void | ) |
Definition at line 2257 of file sparc-tdep.c.
References register_gdbarch_init(), and sparc32_gdbarch_init().
| typedef BP_MANIPULATION | ( | sparc_break_insn | ) |
Definition at line 728 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.
| void sparc32_collect_fpregset | ( | const struct sparc_fpregmap * | fpregmap, |
| const struct regcache * | regcache, | ||
| int | regnum, | ||
| void * | fpregs | ||
| ) |
Definition at line 2209 of file sparc-tdep.c.
References sparc_fpregmap::r_f0_offset, sparc_fpregmap::r_fsr_offset, regcache_raw_collect(), regnum, SPARC32_FSR_REGNUM, and SPARC_F0_REGNUM.
Referenced by _initialize_sparc_nat(), fill_fpregset(), sparc32_linux_collect_core_fpregset(), sparc32_sol2_collect_core_fpregset(), and sparc64nbsd_collect_fpregset().
| void sparc32_collect_gregset | ( | const struct sparc_gregmap * | gregmap, |
| const struct regcache * | regcache, | ||
| int | regnum, | ||
| void * | gregs | ||
| ) |
Definition at line 2134 of file sparc-tdep.c.
References offset, sparc_gregmap::r_g1_offset, sparc_gregmap::r_l0_offset, sparc_gregmap::r_npc_offset, sparc_gregmap::r_pc_offset, sparc_gregmap::r_psr_offset, sparc_gregmap::r_y_offset, regcache_raw_collect(), regnum, 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(), sparc32_sol2_collect_core_gregset(), and sparc64nbsd_collect_gregset().
|
static |
Definition at line 1547 of file sparc-tdep.c.
References DWARF2_FRAME_REG_CFA, DWARF2_FRAME_REG_RA_OFFSET, DWARF2_FRAME_REG_SAME_VALUE, reg::offset, regnum, sparc32_dwarf2_struct_return_p(), SPARC32_NPC_REGNUM, SPARC32_PC_REGNUM, SPARC_G0_REGNUM, and SPARC_SP_REGNUM.
Referenced by sparc32_gdbarch_init().
|
static |
Definition at line 1536 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 |
Definition at line 1382 of file sparc-tdep.c.
References gdb_assert, 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_return_p(), TYPE_CODE, TYPE_CODE_ARRAY, and TYPE_LENGTH.
Referenced by sparc32_return_value().
Definition at line 559 of file sparc-tdep.c.
Referenced by sparc32_gdbarch_init().
|
static |
Definition at line 1350 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 | ||
| ) |
Definition at line 1231 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 |
Definition at line 1281 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, regnum, 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, and sparc_frame_cache::struct_return_p.
|
static |
Definition at line 1267 of file sparc-tdep.c.
References sparc_frame_cache::base, frame_id_build(), sparc_frame_cache::pc, and sparc32_frame_cache().
|
static |
Definition at line 1791 of file sparc-tdep.c.
References core_addr_lessthan(), gdbarch_tdep::cp0_register_names, gdbarch_tdep::cp0_registers_num, dwarf2_frame_set_init_reg(), floatformats_sparc_quad, gdbarch_tdep::fpu_register_names, gdbarch_tdep::fpu_registers_num, 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_kind_from_pc(), set_gdbarch_call_dummy_location(), set_gdbarch_dummy_id(), set_gdbarch_execute_dwarf_cfa_vendor_op(), set_gdbarch_fp0_regnum(), set_gdbarch_frame_align(), set_gdbarch_frame_args_skip(), set_gdbarch_inner_than(), set_gdbarch_iterate_over_regset_sections(), 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_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_return_value(), set_gdbarch_skip_prologue(), set_gdbarch_software_single_step(), set_gdbarch_sp_regnum(), set_gdbarch_stabs_argument_has_addr(), set_gdbarch_sw_breakpoint_from_kind(), set_gdbarch_unwind_pc(), set_gdbarch_wchar_bit(), set_gdbarch_wchar_signed(), set_gdbarch_write_pc(), set_tdesc_pseudo_register_name(), set_tdesc_pseudo_register_type(), sparc32_cp0_register_names, sparc32_dwarf2_frame_init_reg(), sparc32_fpu_register_names, sparc32_frame_align(), sparc32_frame_base, sparc32_frame_unwind, SPARC32_NPC_REGNUM, SPARC32_NUM_PSEUDO_REGS, SPARC32_NUM_REGS, SPARC32_PC_REGNUM, sparc32_pseudo_register_name(), sparc32_pseudo_register_read(), sparc32_pseudo_register_type(), 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_core_register_names, sparc_dummy_id(), sparc_execute_dwarf_cfa_vendor_op(), SPARC_F0_REGNUM, SPARC_G0_REGNUM, sparc_iterate_over_regset_sections(), sparc_software_single_step(), SPARC_SP_REGNUM, sparc_step_trap(), sparc_unwind_pc(), sparc_write_pc(), gdbarch_tdep::step_trap, gdbarch_info::target_desc, gdbarch::tdep, tdesc_data, gdbarch_info::tdesc_data, tdesc_data_alloc(), tdesc_data_cleanup(), tdesc_has_registers(), tdesc_use_registers(), validate_tdesc_registers(), and XCNEW.
Referenced by _initialize_sparc_tdep().
|
static |
Definition at line 375 of file sparc-tdep.c.
References _, gdbarch_num_regs(), internal_error(), regnum, SPARC32_NUM_PSEUDO_REGS, and sparc32_pseudo_register_names.
Referenced by sparc32_gdbarch_init(), and sparc32_register_name().
|
static |
Definition at line 505 of file sparc-tdep.c.
References gdb_assert, gdbarch_num_regs(), REG_VALID, regcache_raw_read(), regnum, SPARC32_D0_REGNUM, SPARC32_D30_REGNUM, SPARC_F0_REGNUM, and status.
Referenced by sparc32_gdbarch_init().
Definition at line 462 of file sparc-tdep.c.
References _, builtin_type::builtin_double, builtin_type(), gdbarch_num_regs(), internal_error(), regnum, SPARC32_D0_REGNUM, and SPARC32_D30_REGNUM.
Referenced by sparc32_gdbarch_init(), and sparc32_register_type().
|
static |
Definition at line 522 of file sparc-tdep.c.
References gdb_assert, gdbarch_num_regs(), regcache_raw_write(), regnum, SPARC32_D0_REGNUM, SPARC32_D30_REGNUM, and SPARC_F0_REGNUM.
Referenced by sparc32_gdbarch_init().
|
static |
Definition at line 694 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 |
Definition at line 566 of file sparc-tdep.c.
References gdbarch_byte_order(), store_unsigned_integer(), TYPE_LENGTH, using_struct_return(), value_type(), and write_memory().
Referenced by sparc32_gdbarch_init().
|
static |
Definition at line 390 of file sparc-tdep.c.
References gdbarch_num_regs(), gdbarch_target_desc(), regnum, sparc32_pseudo_register_name(), sparc32_register_names, tdesc_has_registers(), and tdesc_register_name().
Referenced by sparc32_gdbarch_init().
Definition at line 478 of file sparc-tdep.c.
References builtin_type::builtin_data_ptr, builtin_type::builtin_float, builtin_type::builtin_func_ptr, builtin_type::builtin_int32, builtin_type(), gdbarch_num_regs(), gdbarch_target_desc(), regnum, SPARC32_FSR_REGNUM, SPARC32_NPC_REGNUM, SPARC32_PC_REGNUM, sparc32_pseudo_register_type(), SPARC32_PSR_REGNUM, SPARC_F0_REGNUM, SPARC_F31_REGNUM, SPARC_FP_REGNUM, sparc_fsr_type(), sparc_psr_type(), SPARC_SP_REGNUM, tdesc_has_registers(), and tdesc_register_type().
Referenced by sparc32_gdbarch_init().
|
static |
Definition at line 1485 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, sparc32_extract_return_value(), sparc32_store_return_value(), SPARC_SP_REGNUM, sparc_structure_return_p(), TYPE_LENGTH, and write_memory().
Referenced by sparc32_gdbarch_init().
Definition at line 1107 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().
Definition at line 1528 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 |
Definition at line 593 of file sparc-tdep.c.
References regcache::arch(), gdbarch::byte_order, gdb_assert, gdbarch_byte_order(), lookup_pointer_type(), memset(), regcache_cooked_write(), regnum, sparc_arg_on_registers_p(), sparc_floating_p(), sparc_integral_or_pointer_p(), SPARC_O0_REGNUM, store_unsigned_integer(), TYPE_CODE, TYPE_CODE_ARRAY, TYPE_LENGTH, value_contents(), value_from_pointer(), value_type(), and write_memory().
Referenced by sparc32_push_dummy_call().
|
static |
Definition at line 1436 of file sparc-tdep.c.
References gdb_assert, 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_return_p(), and TYPE_LENGTH.
Referenced by sparc32_return_value().
|
static |
Definition at line 1214 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_fpregmap * | fpregmap, |
| struct regcache * | regcache, | ||
| int | regnum, | ||
| const void * | fpregs | ||
| ) |
Definition at line 2189 of file sparc-tdep.c.
References sparc_fpregmap::r_f0_offset, sparc_fpregmap::r_fsr_offset, regcache_raw_supply(), regnum, SPARC32_FSR_REGNUM, and SPARC_F0_REGNUM.
Referenced by _initialize_sparc_nat(), sparc32_linux_supply_core_fpregset(), sparc32_sol2_supply_core_fpregset(), sparc32nbsd_supply_fpregset(), sparc32nbsd_supply_gregset(), sparc64nbsd_supply_fpregset(), and supply_fpregset().
| void sparc32_supply_gregset | ( | const struct sparc_gregmap * | gregmap, |
| struct regcache * | regcache, | ||
| int | regnum, | ||
| const void * | gregs | ||
| ) |
Definition at line 2069 of file sparc-tdep.c.
References offset, sparc_gregmap::r_g1_offset, sparc_gregmap::r_l0_offset, sparc_gregmap::r_npc_offset, sparc_gregmap::r_pc_offset, sparc_gregmap::r_psr_offset, sparc_gregmap::r_y_offset, regcache_cooked_read_unsigned(), regcache_raw_supply(), regnum, 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, and sparc_supply_rwindow().
Referenced by _initialize_sparc_nat(), sparc32_linux_supply_core_gregset(), sparc32_sol2_supply_core_gregset(), sparc32nbsd_supply_gregset(), sparc64nbsd_supply_gregset(), and supply_gregset().
|
static |
Definition at line 1611 of file sparc-tdep.c.
References regcache::arch(), gdb_assert, gdbarch_tdep(), get_current_frame(), offset, sparc_fetch_instruction(), 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 965 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 |
Definition at line 321 of file sparc-tdep.c.
References check_typedef(), sparc_complex_floating_p(), sparc_floating_p(), sparc_structure_or_union_p(), TYPE_CODE, TYPE_CODE_ARRAY, TYPE_LENGTH, and TYPE_TARGET_TYPE.
Referenced by sparc32_store_arguments().
Definition at line 1998 of file sparc-tdep.c.
References regcache::arch(), BIAS, gdbarch::byte_order, extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_ptr_bit(), offset, regcache_raw_collect(), regnum, sparc_fetch_wcookie(), SPARC_I7_REGNUM, SPARC_L0_REGNUM, SPARC_SP_REGNUM, store_unsigned_integer(), and target_write_memory().
Referenced by sparc32obsd_collect_uthread(), sparc64obsd_collect_uthread(), and sparc_store_inferior_registers().
|
static |
Definition at line 262 of file sparc-tdep.c.
References TYPE_CODE, TYPE_CODE_COMPLEX, and TYPE_LENGTH.
Referenced by sparc32_extract_return_value(), sparc32_stabs_argument_has_addr(), sparc32_store_return_value(), and sparc_arg_on_registers_p().
|
static |
Definition at line 1367 of file sparc-tdep.c.
References BIAS, frame_id_build(), get_frame_pc(), get_frame_register_unsigned(), and SPARC_SP_REGNUM.
Referenced by sparc32_gdbarch_init().
|
static |
Definition at line 1580 of file sparc-tdep.c.
References DWARF2_FRAME_REG_SAVED_OFFSET, DWARF2_FRAME_REG_SAVED_REG, register_size(), and size.
Referenced by sparc32_gdbarch_init().
| unsigned long sparc_fetch_instruction | ( | CORE_ADDR | pc | ) |
Definition at line 98 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_annulled_branch_insn(), sparc_is_unimp_insn(), sparc_skip_stack_check(), and sparc_stack_frame_destroyed_p().
Definition at line 189 of file sparc-tdep.c.
References current_target, extract_unsigned_integer(), gdb_assert, gdbarch_byte_order(), 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 |
Definition at line 243 of file sparc-tdep.c.
References TYPE_CODE, TYPE_CODE_FLT, and TYPE_LENGTH.
Referenced by sparc32_extract_return_value(), sparc32_stabs_argument_has_addr(), sparc32_store_arguments(), sparc32_store_return_value(), sparc32_struct_return_from_sym(), sparc_arg_on_registers_p(), and sparc_structure_return_p().
| struct sparc_frame_cache* sparc_frame_cache | ( | struct frame_info * | this_frame, |
| void ** | this_cache | ||
| ) |
Definition at line 1174 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_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().
Definition at line 426 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 |
Definition at line 213 of file sparc-tdep.c.
References TYPE_CODE, TYPE_CODE_BOOL, TYPE_CODE_CHAR, TYPE_CODE_ENUM, TYPE_CODE_INT, TYPE_CODE_PTR, TYPE_CODE_RANGE, TYPE_CODE_REF, TYPE_CODE_RVALUE_REF, and TYPE_LENGTH.
Referenced by sparc32_extract_return_value(), sparc32_store_arguments(), and sparc32_store_return_value().
| int sparc_is_annulled_branch_insn | ( | CORE_ADDR | pc | ) |
Definition at line 130 of file sparc-tdep.c.
References sparc_fetch_instruction(), X_A, X_OP, and X_OP2.
Referenced by sparc64_linux_get_longjmp_target().
|
static |
Definition at line 119 of file sparc-tdep.c.
References sparc_fetch_instruction().
Referenced by sparc32_frame_cache().
|
static |
Definition at line 1755 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().
Definition at line 404 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 942 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().
Definition at line 760 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().
Definition at line 1713 of file sparc-tdep.c.
References regcache::arch(), gdb_assert, gdbarch_tdep(), gdbarch_tdep::npc_regnum, gdbarch_tdep::pc, gdbarch_tdep::pc_regnum, regcache_raw_get_unsigned(), and sparc_analyze_control_transfer().
Referenced by sparc32_gdbarch_init().
Definition at line 537 of file sparc-tdep.c.
References sparc_fetch_instruction(), and X_RETTURN.
Referenced by sparc64_init_abi().
|
static |
Definition at line 1707 of file sparc-tdep.c.
Referenced by sparc32_gdbarch_init().
|
static |
Definition at line 285 of file sparc-tdep.c.
References TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_STRUCT, and TYPE_CODE_UNION.
Referenced by sparc32_stabs_argument_has_addr(), sparc32_struct_return_from_sym(), sparc_arg_on_registers_p(), and sparc_structure_return_p().
|
static |
Definition at line 303 of file sparc-tdep.c.
References check_typedef(), sparc_floating_p(), sparc_structure_or_union_p(), TYPE_CODE, TYPE_CODE_ARRAY, TYPE_LENGTH, and TYPE_TARGET_TYPE.
Referenced by sparc32_extract_return_value(), sparc32_return_value(), and sparc32_store_return_value().
Definition at line 1925 of file sparc-tdep.c.
References regcache::arch(), BIAS, gdbarch::byte_order, extract_unsigned_integer(), gdbarch_byte_order(), gdbarch_ptr_bit(), memset(), offset, regcache_raw_supply(), regnum, sparc_fetch_wcookie(), SPARC_I7_REGNUM, SPARC_L0_REGNUM, store_unsigned_integer(), and target_read_memory().
Referenced by sparc32_supply_gregset(), sparc32nbsd_supply_pcb(), sparc32obsd_supply_uthread(), sparc64_supply_gregset(), sparc64fbsd_kvm_supply_pcb(), sparc64nbsd_supply_pcb(), sparc64obsd_supply_pcb(), and sparc64obsd_supply_uthread().
|
static |
Definition at line 1097 of file sparc-tdep.c.
References frame_unwind_register_unsigned(), gdbarch_tdep(), and gdbarch_tdep::pc_regnum.
Referenced by sparc32_gdbarch_init().
Definition at line 1743 of file sparc-tdep.c.
References regcache::arch(), gdbarch_tdep(), gdbarch_tdep::npc_regnum, gdbarch_tdep::pc, gdbarch_tdep::pc_regnum, and regcache_cooked_write_unsigned().
Referenced by sparc32_gdbarch_init().
|
static |
Definition at line 1768 of file sparc-tdep.c.
References tdesc_data, tdesc_find_feature(), and tdesc_numbered_register().
Referenced by sparc32_gdbarch_init().
| const struct sparc_fpregmap sparc32_bsd_fpregmap |
Definition at line 2250 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().
|
static |
Definition at line 348 of file sparc-tdep.c.
Referenced by sparc32_gdbarch_init().
|
static |
Definition at line 347 of file sparc-tdep.c.
Referenced by sparc32_gdbarch_init().
|
static |
Definition at line 1358 of file sparc-tdep.c.
Referenced by sparc32_gdbarch_init().
|
static |
Definition at line 1338 of file sparc-tdep.c.
Referenced by sparc32_gdbarch_init().
|
static |
Definition at line 363 of file sparc-tdep.c.
Referenced by sparc32_pseudo_register_name().
|
static |
Definition at line 350 of file sparc-tdep.c.
Referenced by sparc32_register_name().
| const struct sparc_fpregmap sparc32_sunos4_fpregmap |
Definition at line 2244 of file sparc-tdep.c.
Referenced by _initialize_sparc_nat().
| const struct sparc_gregmap sparc32_sunos4_gregmap |
Definition at line 2232 of file sparc-tdep.c.
Referenced by _initialize_sparc_nat().
| constexpr gdb_byte sparc_break_insn[] = { 0x91, 0xd0, 0x20, 0x01 } |
Definition at line 726 of file sparc-tdep.c.
|
static |
Definition at line 346 of file sparc-tdep.c.
Referenced by sparc32_gdbarch_init().
1.8.14