|
GDB (xrefs)
|
#include "defs.h"#include "frame.h"#include "frame-unwind.h"#include "frame-base.h"#include "trad-frame.h"#include "dwarf2-frame.h"#include "symtab.h"#include "inferior.h"#include "gdbtypes.h"#include "gdbcore.h"#include "gdbcmd.h"#include "target.h"#include "dis-asm.h"#include "regcache.h"#include "value.h"#include "symfile.h"#include "arch-utils.h"#include "glibc-tdep.h"#include "infcall.h"#include "regset.h"#include "tramp-frame.h"#include "linux-tdep.h"#include "solib.h"#include "objfiles.h"#include "osabi.h"#include "tic6x-tdep.h"#include "language.h"#include "target-descriptions.h"#include <algorithm>Go to the source code of this file.
Classes | |
| struct | tic6x_unwind_cache |
Macros | |
| #define | TIC6X_OPCODE_SIZE 4 |
| #define | TIC6X_FETCH_PACKET_SIZE 32 |
| #define | INST_S_BIT(INST) ((INST >> 1) & 1) |
| #define | INST_X_BIT(INST) ((INST >> 12) & 1) |
Functions | |
| static const char * | tic6x_register_name (struct gdbarch *gdbarch, int regno) |
| static struct type * | tic6x_register_type (struct gdbarch *gdbarch, int regno) |
| static void | tic6x_setup_default (struct tic6x_unwind_cache *cache) |
| static unsigned long | tic6x_fetch_instruction (struct gdbarch *, CORE_ADDR) |
| static int | tic6x_register_number (int reg, int side, int crosspath) |
| static CORE_ADDR | tic6x_analyze_prologue (struct gdbarch *gdbarch, const CORE_ADDR start_pc, const CORE_ADDR current_pc, struct tic6x_unwind_cache *cache, struct frame_info *this_frame) |
| static CORE_ADDR | tic6x_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc) |
| static int | tic6x_breakpoint_kind_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr) |
| static const gdb_byte * | tic6x_sw_breakpoint_from_kind (struct gdbarch *gdbarch, int kind, int *size) |
| static void | tic6x_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum, struct dwarf2_frame_state_reg *reg, struct frame_info *this_frame) |
| static CORE_ADDR | tic6x_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame) |
| static CORE_ADDR | tic6x_unwind_sp (struct gdbarch *gdbarch, struct frame_info *this_frame) |
| static struct tic6x_unwind_cache * | tic6x_frame_unwind_cache (struct frame_info *this_frame, void **this_prologue_cache) |
| static void | tic6x_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id) |
| static struct value * | tic6x_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum) |
| static CORE_ADDR | tic6x_frame_base_address (struct frame_info *this_frame, void **this_cache) |
| static struct tic6x_unwind_cache * | tic6x_make_stub_cache (struct frame_info *this_frame) |
| static void | tic6x_stub_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id) |
| static int | tic6x_stub_unwind_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache) |
| static int | tic6x_condition_true (struct regcache *regcache, unsigned long inst) |
| static int | tic6x_extract_signed_field (int value, int low_bit, int bits) |
| static CORE_ADDR | tic6x_get_next_pc (struct regcache *regcache, CORE_ADDR pc) |
| static std::vector< CORE_ADDR > | tic6x_software_single_step (struct regcache *regcache) |
| static CORE_ADDR | tic6x_frame_align (struct gdbarch *gdbarch, CORE_ADDR addr) |
| static void | tic6x_extract_return_value (struct type *valtype, struct regcache *regcache, enum bfd_endian byte_order, gdb_byte *valbuf) |
| static void | tic6x_store_return_value (struct type *valtype, struct regcache *regcache, enum bfd_endian byte_order, const gdb_byte *valbuf) |
| static enum return_value_convention | tic6x_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf) |
| static struct frame_id | tic6x_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame) |
| static int | tic6x_arg_type_alignment (struct type *type) |
| static CORE_ADDR | tic6x_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 int | tic6x_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc) |
| static int | tic6x_get_longjmp_target (struct frame_info *frame, CORE_ADDR *pc) |
| static int | tic6x_return_in_first_hidden_param_p (struct gdbarch *gdbarch, struct type *type) |
| static struct gdbarch * | tic6x_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
| void | _initialize_tic6x_tdep (void) |
Variables | |
| const gdb_byte | tic6x_bkpt_illegal_opcode_be [] = { 0x56, 0x45, 0x43, 0x14 } |
| const gdb_byte | tic6x_bkpt_illegal_opcode_le [] = { 0x14, 0x43, 0x45, 0x56 } |
| static const char *const | tic6x_register_names [] |
| static const int | arg_regs [] = { 4, 20, 6, 22, 8, 24, 10, 26, 12, 28 } |
| static const struct frame_unwind | tic6x_frame_unwind |
| static const struct frame_base | tic6x_frame_base |
| static const struct frame_unwind | tic6x_stub_unwind |
| #define INST_S_BIT | ( | INST | ) | ((INST >> 1) & 1) |
Definition at line 55 of file tic6x-tdep.c.
Referenced by tic6x_analyze_prologue(), tic6x_get_next_pc(), and tic6x_stack_frame_destroyed_p().
| #define INST_X_BIT | ( | INST | ) | ((INST >> 12) & 1) |
Definition at line 56 of file tic6x-tdep.c.
Referenced by tic6x_get_next_pc(), and tic6x_stack_frame_destroyed_p().
| #define TIC6X_FETCH_PACKET_SIZE 32 |
Definition at line 53 of file tic6x-tdep.c.
Referenced by tic6x_get_next_pc().
| #define TIC6X_OPCODE_SIZE 4 |
Definition at line 52 of file tic6x-tdep.c.
Referenced by tic6x_fetch_instruction(), and tic6x_get_next_pc().
| void _initialize_tic6x_tdep | ( | void | ) |
Definition at line 1335 of file tic6x-tdep.c.
References register_gdbarch_init(), and tic6x_gdbarch_init().
|
static |
Definition at line 145 of file tic6x-tdep.c.
References tic6x_unwind_cache::base, tic6x_unwind_cache::cfa, gdb_assert_not_reached, get_frame_register_unsigned(), INST_S_BIT, tic6x_unwind_cache::reg_saved, TIC6X_DP_REGNUM, tic6x_fetch_instruction(), TIC6X_FP_REGNUM, TIC6X_NUM_CORE_REGS, tic6x_register_number(), and TIC6X_SP_REGNUM.
Referenced by tic6x_frame_unwind_cache(), and tic6x_skip_prologue().
|
static |
Definition at line 830 of file tic6x-tdep.c.
References _, check_typedef(), gdb_assert_not_reached, internal_error(), TYPE_CODE, TYPE_CODE_COMPLEX, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_LENGTH.
Referenced by tic6x_push_dummy_call().
Definition at line 319 of file tic6x-tdep.c.
Referenced by tic6x_gdbarch_init().
|
static |
Definition at line 553 of file tic6x-tdep.c.
References regcache_raw_get_signed().
Referenced by tic6x_get_next_pc().
|
static |
Definition at line 820 of file tic6x-tdep.c.
References frame_id_build(), get_frame_pc(), get_frame_register_unsigned(), and TIC6X_SP_REGNUM.
Referenced by tic6x_gdbarch_init().
|
static |
Definition at line 345 of file tic6x-tdep.c.
References DWARF2_FRAME_REG_CFA, DWARF2_FRAME_REG_RA, DWARF2_FRAME_REG_SAME_VALUE, DWARF2_FRAME_REG_UNDEFINED, gdbarch_pc_regnum(), gdbarch_sp_regnum(), and regnum.
Referenced by tic6x_gdbarch_init().
|
static |
Definition at line 709 of file tic6x-tdep.c.
References regcache_cooked_read(), regcache_cooked_read_part(), TIC6X_A4_REGNUM, TIC6X_A5_REGNUM, and TYPE_LENGTH.
Referenced by tic6x_return_value().
|
static |
Definition at line 543 of file tic6x-tdep.c.
References gdbarch_byte_order(), read_memory_unsigned_integer(), and TIC6X_OPCODE_SIZE.
Referenced by tic6x_analyze_prologue(), tic6x_get_next_pc(), and tic6x_stack_frame_destroyed_p().
Definition at line 700 of file tic6x-tdep.c.
References align_down().
Referenced by tic6x_gdbarch_init().
|
static |
Definition at line 461 of file tic6x-tdep.c.
References tic6x_unwind_cache::base, and tic6x_frame_unwind_cache().
|
static |
Definition at line 434 of file tic6x-tdep.c.
References tic6x_unwind_cache::cfa, frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_register(), gdb_assert, tic6x_unwind_cache::reg_saved, regnum, tic6x_unwind_cache::return_regnum, tic6x_frame_unwind_cache(), TIC6X_PC_REGNUM, and TIC6X_SP_REGNUM.
|
static |
Definition at line 420 of file tic6x-tdep.c.
References tic6x_unwind_cache::base, tic6x_unwind_cache::cfa, frame_id_build(), tic6x_unwind_cache::pc, and tic6x_frame_unwind_cache().
|
static |
Definition at line 392 of file tic6x-tdep.c.
References FRAME_OBSTACK_ZALLOC, get_frame_arch(), get_frame_func(), get_frame_pc(), tic6x_unwind_cache::pc, tic6x_unwind_cache::return_regnum, tic6x_analyze_prologue(), TIC6X_RA_REGNUM, and tic6x_setup_default().
Referenced by tic6x_frame_base_address(), tic6x_frame_prev_register(), and tic6x_frame_this_id().
|
static |
Definition at line 1166 of file tic6x-tdep.c.
References gdbarch_tdep::breakpoint, core_addr_lessthan(), dwarf2_append_unwinders(), dwarf2_frame_set_init_reg(), floatformats_ieee_double, floatformats_ieee_single, frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), gdbarch_tdep(), gdbarch_tdep::has_gp, gdbarch_list::next, set_gdbarch_addr_bit(), set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_double_bit(), set_gdbarch_double_format(), set_gdbarch_dummy_id(), set_gdbarch_float_bit(), set_gdbarch_float_format(), set_gdbarch_frame_align(), set_gdbarch_get_longjmp_target(), set_gdbarch_inner_than(), set_gdbarch_int_bit(), set_gdbarch_long_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_type(), set_gdbarch_return_in_first_hidden_param_p(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_skip_prologue(), set_gdbarch_software_single_step(), set_gdbarch_sp_regnum(), set_gdbarch_stack_frame_destroyed_p(), set_gdbarch_sw_breakpoint_from_kind(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), gdbarch_info::target_desc, tdesc_data, tdesc_data_alloc(), tdesc_data_cleanup(), tdesc_find_feature(), tdesc_has_registers(), tdesc_numbered_register(), tdesc_use_registers(), tic6x_breakpoint_kind_from_pc(), TIC6X_CSR_REGNUM, tic6x_dummy_id(), tic6x_dwarf2_frame_init_reg(), tic6x_frame_align(), tic6x_frame_base, tic6x_frame_unwind, tic6x_get_longjmp_target(), TIC6X_NUM_REGS, TIC6X_PC_REGNUM, tic6x_push_dummy_call(), tic6x_register_name(), tic6x_register_names, tic6x_register_type(), tic6x_return_in_first_hidden_param_p(), tic6x_return_value(), tic6x_skip_prologue(), tic6x_software_single_step(), TIC6X_SP_REGNUM, tic6x_stack_frame_destroyed_p(), tic6x_stub_unwind, tic6x_sw_breakpoint_from_kind(), tic6x_unwind_pc(), tic6x_unwind_sp(), and XCNEW.
Referenced by _initialize_tic6x_tdep().
|
static |
Definition at line 1135 of file tic6x-tdep.c.
References gdbarch::byte_order, extract_unsigned_integer(), gdbarch_byte_order(), get_frame_arch(), get_frame_register_unsigned(), and target_read_memory().
Referenced by tic6x_gdbarch_init().
Definition at line 594 of file tic6x-tdep.c.
References regcache::arch(), gdbarch_tdep(), get_current_frame(), INST_S_BIT, INST_X_BIT, gdbarch_tdep::pc, regcache_raw_get_signed(), regcache_raw_get_unsigned(), gdbarch_tdep::syscall_next_pc, tic6x_condition_true(), tic6x_extract_signed_field(), tic6x_fetch_instruction(), TIC6X_FETCH_PACKET_SIZE, TIC6X_INST_SWE, TIC6X_OPCODE_SIZE, and tic6x_register_number().
Referenced by tic6x_software_single_step().
|
static |
Definition at line 488 of file tic6x-tdep.c.
References tic6x_unwind_cache::cfa, FRAME_OBSTACK_ZALLOC, get_frame_register_unsigned(), tic6x_unwind_cache::return_regnum, TIC6X_RA_REGNUM, tic6x_setup_default(), and TIC6X_SP_REGNUM.
Referenced by tic6x_stub_this_id().
|
static |
Definition at line 878 of file tic6x-tdep.c.
References _, align_down(), align_up(), arg_regs, check_typedef(), extract_unsigned_integer(), find_function_addr(), gdb_assert, gdbarch_byte_order(), internal_error(), regcache_cooked_write(), regcache_cooked_write_part(), regcache_cooked_write_signed(), regcache_cooked_write_unsigned(), store_unsigned_integer(), tic6x_arg_type_alignment(), TIC6X_RA_REGNUM, TIC6X_SP_REGNUM, TYPE_CODE, TYPE_CODE_COMPLEX, TYPE_CODE_FUNC, TYPE_CODE_METHOD, TYPE_CODE_PTR, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_LENGTH, TYPE_NFIELDS, TYPE_TARGET_TYPE, TYPE_VARARGS, value_contents(), value_type(), and write_memory().
Referenced by tic6x_gdbarch_init().
|
static |
Definition at line 103 of file tic6x-tdep.c.
References gdbarch_target_desc(), tdesc_has_registers(), tdesc_register_name(), and tic6x_register_names.
Referenced by tic6x_gdbarch_init().
|
static |
Definition at line 573 of file tic6x-tdep.c.
Referenced by tic6x_analyze_prologue(), tic6x_get_next_pc(), and tic6x_stack_frame_destroyed_p().
Definition at line 119 of file tic6x-tdep.c.
References builtin_type::builtin_func_ptr, builtin_type(), builtin_type::builtin_uint32, and TIC6X_PC_REGNUM.
Referenced by tic6x_gdbarch_init().
|
static |
Definition at line 1159 of file tic6x-tdep.c.
Referenced by tic6x_gdbarch_init().
|
static |
Definition at line 787 of file tic6x-tdep.c.
References check_typedef(), current_language, gdbarch_byte_order(), language_defn::la_language, language_cplus, language_pass_by_reference(), RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, tic6x_extract_return_value(), tic6x_store_return_value(), and TYPE_LENGTH.
Referenced by tic6x_gdbarch_init().
|
static |
Definition at line 129 of file tic6x-tdep.c.
References tic6x_unwind_cache::reg_saved, and TIC6X_NUM_CORE_REGS.
Referenced by tic6x_frame_unwind_cache(), and tic6x_make_stub_cache().
Definition at line 294 of file tic6x-tdep.c.
References find_pc_partial_function(), skip_prologue_using_sal(), and tic6x_analyze_prologue().
Referenced by tic6x_gdbarch_init().
Definition at line 690 of file tic6x-tdep.c.
References regcache_read_pc(), and tic6x_get_next_pc().
Referenced by tic6x_gdbarch_init().
Definition at line 1116 of file tic6x-tdep.c.
References INST_S_BIT, INST_X_BIT, tic6x_fetch_instruction(), TIC6X_RA_REGNUM, and tic6x_register_number().
Referenced by tic6x_gdbarch_init().
|
static |
Definition at line 754 of file tic6x-tdep.c.
References regcache_cooked_write(), regcache_cooked_write_part(), TIC6X_A4_REGNUM, TIC6X_A5_REGNUM, and TYPE_LENGTH.
Referenced by tic6x_return_value().
|
static |
Definition at line 504 of file tic6x-tdep.c.
References tic6x_unwind_cache::cfa, frame_id_build(), get_frame_pc(), and tic6x_make_stub_cache().
|
static |
Definition at line 517 of file tic6x-tdep.c.
References get_frame_address_in_block(), and in_plt_section().
|
static |
Definition at line 327 of file tic6x-tdep.c.
References gdbarch_tdep::breakpoint, gdbarch_byte_order_for_code(), gdbarch_tdep(), size, tic6x_bkpt_illegal_opcode_be, and tic6x_bkpt_illegal_opcode_le.
Referenced by tic6x_gdbarch_init().
|
static |
Definition at line 372 of file tic6x-tdep.c.
References extract_typed_address(), frame_unwind_register(), and TIC6X_PC_REGNUM.
Referenced by tic6x_gdbarch_init().
|
static |
Definition at line 383 of file tic6x-tdep.c.
References frame_unwind_register_unsigned(), and TIC6X_SP_REGNUM.
Referenced by tic6x_gdbarch_init().
|
static |
Definition at line 98 of file tic6x-tdep.c.
Referenced by tic6x_push_dummy_call().
| const gdb_byte tic6x_bkpt_illegal_opcode_be[] = { 0x56, 0x45, 0x43, 0x14 } |
Definition at line 58 of file tic6x-tdep.c.
Referenced by tic6x_sw_breakpoint_from_kind(), and tic6x_uclinux_init_abi().
| const gdb_byte tic6x_bkpt_illegal_opcode_le[] = { 0x14, 0x43, 0x45, 0x56 } |
Definition at line 59 of file tic6x-tdep.c.
Referenced by tic6x_sw_breakpoint_from_kind(), and tic6x_uclinux_init_abi().
|
static |
Definition at line 478 of file tic6x-tdep.c.
Referenced by tic6x_gdbarch_init().
|
static |
Definition at line 468 of file tic6x-tdep.c.
Referenced by tic6x_gdbarch_init().
|
static |
Definition at line 83 of file tic6x-tdep.c.
Referenced by tic6x_gdbarch_init(), and tic6x_register_name().
|
static |
Definition at line 530 of file tic6x-tdep.c.
Referenced by tic6x_gdbarch_init().
1.8.14