GDB (xrefs)

Classes | Macros | Functions | Variables
/tmp/gdb-8.1/gdb/tic6x-tdep.c File Reference
`#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

## Macro Definition Documentation

## ◆ INST_S_BIT

#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().

## ◆ INST_X_BIT

#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().

## ◆ TIC6X_FETCH_PACKET_SIZE

#define TIC6X_FETCH_PACKET_SIZE 32

Definition at line 53 of file tic6x-tdep.c.

Referenced by tic6x_get_next_pc().

## ◆ TIC6X_OPCODE_SIZE

#define TIC6X_OPCODE_SIZE 4

Definition at line 52 of file tic6x-tdep.c.

Referenced by tic6x_fetch_instruction(), and tic6x_get_next_pc().

## Function Documentation

## ◆ _initialize_tic6x_tdep()

void _initialize_tic6x_tdep | ( | void |  | ) |

Definition at line 1335 of file tic6x-tdep.c.

References register_gdbarch_init(), and tic6x_gdbarch_init().

## ◆ tic6x_analyze_prologue()

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

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().

## ◆ tic6x_arg_type_alignment()

static int tic6x_arg_type_alignment | ( | struct type * | type | ) |
| 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().

## ◆ tic6x_breakpoint_kind_from_pc()

static int tic6x_breakpoint_kind_from_pc | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR * | pcptr
| ) |  |
| static

Definition at line 319 of file tic6x-tdep.c.

Referenced by tic6x_gdbarch_init().

## ◆ tic6x_condition_true()

static int tic6x_condition_true | ( | struct regcache * | regcache,
|  | unsigned long | inst
| ) |  |
| static

Definition at line 553 of file tic6x-tdep.c.

References regcache_raw_get_signed().

Referenced by tic6x_get_next_pc().

## ◆ tic6x_dummy_id()

static struct frame_id tic6x_dummy_id | ( | struct gdbarch * | gdbarch,
|  | struct frame_info * | this_frame
| ) |  |
| 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().

## ◆ tic6x_dwarf2_frame_init_reg()

static void tic6x_dwarf2_frame_init_reg | ( | struct gdbarch * | gdbarch,
|  | int | regnum,
|  | struct dwarf2_frame_state_reg * | reg,
|  | struct frame_info * | this_frame
| ) |  |
| 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().

## ◆ tic6x_extract_return_value()

static void tic6x_extract_return_value | ( | struct type * | valtype,
|  | struct regcache * | regcache,
|  | enum bfd_endian | byte_order,
|  | gdb_byte * | valbuf
| ) |  |
| 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().

## ◆ tic6x_extract_signed_field()

static int tic6x_extract_signed_field | ( | int | value,
|  | int | low_bit,
|  | int | bits
| ) |  |
| static

Definition at line 582 of file tic6x-tdep.c.

References bits.

Referenced by tic6x_get_next_pc().

## ◆ tic6x_fetch_instruction()

static unsigned long tic6x_fetch_instruction | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | pc
| ) |  |
| 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().

## ◆ tic6x_frame_align()

static CORE_ADDR tic6x_frame_align | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | addr
| ) |  |
| static

Definition at line 700 of file tic6x-tdep.c.

References align_down().

Referenced by tic6x_gdbarch_init().

## ◆ tic6x_frame_base_address()

static CORE_ADDR tic6x_frame_base_address | ( | struct frame_info * | this_frame,
|  | void ** | this_cache
| ) |  |
| static

Definition at line 461 of file tic6x-tdep.c.

References tic6x_unwind_cache::base, and tic6x_frame_unwind_cache().

## ◆ tic6x_frame_prev_register()

static struct value* tic6x_frame_prev_register | ( | struct frame_info * | this_frame,
|  | void ** | this_cache,
|  | int | regnum
| ) |  |
| 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.

## ◆ tic6x_frame_this_id()

static void tic6x_frame_this_id | ( | struct frame_info * | this_frame,
|  | void ** | this_cache,
|  | struct frame_id * | this_id
| ) |  |
| 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().

## ◆ tic6x_frame_unwind_cache()

static struct tic6x_unwind_cache* tic6x_frame_unwind_cache | ( | struct frame_info * | this_frame,
|  | void ** | this_prologue_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().

## ◆ tic6x_gdbarch_init()

static struct gdbarch* tic6x_gdbarch_init | ( | struct gdbarch_info | info,
|  | struct gdbarch_list * | arches
| ) |  |
| 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().

## ◆ tic6x_get_longjmp_target()

static int tic6x_get_longjmp_target | ( | struct frame_info * | frame,
|  | CORE_ADDR * | pc
| ) |  |
| 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().

## ◆ tic6x_get_next_pc()

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

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().

## ◆ tic6x_make_stub_cache()

static struct tic6x_unwind_cache* tic6x_make_stub_cache | ( | struct frame_info * | this_frame | ) |
| 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().

## ◆ tic6x_push_dummy_call()

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

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().

## ◆ tic6x_register_name()

static const char* tic6x_register_name | ( | struct gdbarch * | gdbarch,
|  | int | regno
| ) |  |
| 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().

## ◆ tic6x_register_number()

static int tic6x_register_number | ( | int | reg,
|  | int | side,
|  | int | crosspath
| ) |  |
| 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().

## ◆ tic6x_register_type()

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

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().

## ◆ tic6x_return_in_first_hidden_param_p()

static int tic6x_return_in_first_hidden_param_p | ( | struct gdbarch * | gdbarch,
|  | struct type * | type
| ) |  |
| static

Definition at line 1159 of file tic6x-tdep.c.

Referenced by tic6x_gdbarch_init().

## ◆ tic6x_return_value()

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

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().

## ◆ tic6x_setup_default()

static void tic6x_setup_default | ( | struct tic6x_unwind_cache * | cache | ) |
| 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().

## ◆ tic6x_skip_prologue()

static CORE_ADDR tic6x_skip_prologue | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | start_pc
| ) |  |
| static

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().

## ◆ tic6x_software_single_step()

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

Definition at line 690 of file tic6x-tdep.c.

References regcache_read_pc(), and tic6x_get_next_pc().

Referenced by tic6x_gdbarch_init().

## ◆ tic6x_stack_frame_destroyed_p()

static int tic6x_stack_frame_destroyed_p | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | pc
| ) |  |
| static

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().

## ◆ tic6x_store_return_value()

static void tic6x_store_return_value | ( | struct type * | valtype,
|  | struct regcache * | regcache,
|  | enum bfd_endian | byte_order,
|  | const gdb_byte * | valbuf
| ) |  |
| 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().

## ◆ tic6x_stub_this_id()

static void tic6x_stub_this_id | ( | struct frame_info * | this_frame,
|  | void ** | this_cache,
|  | struct frame_id * | this_id
| ) |  |
| 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().

## ◆ tic6x_stub_unwind_sniffer()

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

Definition at line 517 of file tic6x-tdep.c.

References get_frame_address_in_block(), and in_plt_section().

## ◆ tic6x_sw_breakpoint_from_kind()

static const gdb_byte* tic6x_sw_breakpoint_from_kind | ( | struct gdbarch * | gdbarch,
|  | int | kind,
|  | int * | size
| ) |  |
| 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().

## ◆ tic6x_unwind_pc()

static CORE_ADDR tic6x_unwind_pc | ( | struct gdbarch * | gdbarch,
|  | struct frame_info * | next_frame
| ) |  |
| 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().

## ◆ tic6x_unwind_sp()

static CORE_ADDR tic6x_unwind_sp | ( | struct gdbarch * | gdbarch,
|  | struct frame_info * | this_frame
| ) |  |
| static

Definition at line 383 of file tic6x-tdep.c.

References frame_unwind_register_unsigned(), and TIC6X_SP_REGNUM.

Referenced by tic6x_gdbarch_init().

## Variable Documentation

## ◆ arg_regs

const int arg_regs[] = { 4, 20, 6, 22, 8, 24, 10, 26, 12, 28 }
| static

Definition at line 98 of file tic6x-tdep.c.

Referenced by tic6x_push_dummy_call().

## ◆ tic6x_bkpt_illegal_opcode_be

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().

## ◆ tic6x_bkpt_illegal_opcode_le

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().

## ◆ tic6x_frame_base

const struct frame_base tic6x_frame_base
| static

Initial value:
=
{
&tic6x_frame_unwind,
tic6x_frame_base_address,
tic6x_frame_base_address,
tic6x_frame_base_address
}
tic6x_frame_unwind
static const struct frame_unwind tic6x_frame_unwind
Definition: tic6x-tdep.c:468
tic6x_frame_base_address
static CORE_ADDR tic6x_frame_base_address(struct frame_info *this_frame, void **this_cache)
Definition: tic6x-tdep.c:461

Definition at line 478 of file tic6x-tdep.c.

Referenced by tic6x_gdbarch_init().

## ◆ tic6x_frame_unwind

const struct frame_unwind tic6x_frame_unwind
| static

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

Definition at line 468 of file tic6x-tdep.c.

Referenced by tic6x_gdbarch_init().

## ◆ tic6x_register_names

const char* const tic6x_register_names[]
| static

Initial value:
=
{
"A0", "A1", "A2", "A3",
"A4", "A5", "A6", "A7",
"A8", "A9", "A10", "A11",
"A12", "A13", "A14", "A15",
"B0", "B1", "B2", "B3",
"B4", "B5", "B6", "B7",
"B8", "B9", "B10", "B11",
"B12", "B13", "B14", "B15",
"CSR", "PC",
}

Definition at line 83 of file tic6x-tdep.c.

Referenced by tic6x_gdbarch_init(), and tic6x_register_name().

## ◆ tic6x_stub_unwind

const struct frame_unwind tic6x_stub_unwind
| static

Initial value:
=
{
NORMAL_FRAME,
default_frame_unwind_stop_reason,
tic6x_stub_this_id,
tic6x_frame_prev_register,
NULL,
tic6x_stub_unwind_sniffer
}
NORMAL_FRAME
Definition: frame.h:244
tic6x_stub_unwind_sniffer
static int tic6x_stub_unwind_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
Definition: tic6x-tdep.c:517
tic6x_stub_this_id
static void tic6x_stub_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: tic6x-tdep.c:504
default_frame_unwind_stop_reason
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:184
tic6x_frame_prev_register
static struct value * tic6x_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: tic6x-tdep.c:434

Definition at line 530 of file tic6x-tdep.c.

Referenced by tic6x_gdbarch_init().