GDB (xrefs)
|
#include "defs.h"
#include "inferior.h"
#include "gdbcore.h"
#include "arch-utils.h"
#include "regcache.h"
#include "frame.h"
#include "frame-unwind.h"
#include "frame-base.h"
#include "trad-frame.h"
#include "dis-asm.h"
#include "sim-regno.h"
#include "gdb/sim-bfin.h"
#include "dwarf2-frame.h"
#include "symtab.h"
#include "elf-bfd.h"
#include "elf/bfin.h"
#include "osabi.h"
#include "infcall.h"
#include "xml-syscall.h"
#include "bfin-tdep.h"
Go to the source code of this file.
Classes | |
struct | bfin_frame_cache |
Macros | |
#define | P_LINKAGE 0xE800 |
#define | P_MINUS_SP1 0x0140 |
#define | P_MINUS_SP2 0x05C0 |
#define | P_MINUS_SP3 0x0540 |
#define | P_MINUS_SP4 0x04C0 |
#define | P_SP_PLUS 0x6C06 |
#define | P_P2_LOW 0xE10A |
#define | P_P2_HIGH 0XE14A |
#define | P_SP_EQ_SP_PLUS_P2 0X5BB2 |
#define | P_SP_EQ_P2_PLUS_SP 0x5B96 |
#define | P_MINUS_MINUS_SP_EQ_RETS 0x0167 |
#define | P_16_BIT_INSR_MAX 0xBFFF |
#define | P_32_BIT_INSR_MIN 0xC000 |
#define | P_32_BIT_INSR_MAX 0xE801 |
#define | P_JUMP_PREG_MIN 0x0050 |
#define | P_JUMP_PREG_MAX 0x0057 |
#define | P_JUMP_PC_PLUS_PREG_MIN 0x0080 |
#define | P_JUMP_PC_PLUS_PREG_MAX 0x0087 |
#define | P_JUMP_S_MIN 0x2000 |
#define | P_JUMP_S_MAX 0x2FFF |
#define | P_JUMP_L_MIN 0xE200 |
#define | P_JUMP_L_MAX 0xE2FF |
#define | P_IF_CC_JUMP_MIN 0x1800 |
#define | P_IF_CC_JUMP_MAX 0x1BFF |
#define | P_IF_CC_JUMP_BP_MIN 0x1C00 |
#define | P_IF_CC_JUMP_BP_MAX 0x1FFF |
#define | P_IF_NOT_CC_JUMP_MIN 0x1000 |
#define | P_IF_NOT_CC_JUMP_MAX 0x13FF |
#define | P_IF_NOT_CC_JUMP_BP_MIN 0x1400 |
#define | P_IF_NOT_CC_JUMP_BP_MAX 0x17FF |
#define | P_CALL_PREG_MIN 0x0060 |
#define | P_CALL_PREG_MAX 0x0067 |
#define | P_CALL_PC_PLUS_PREG_MIN 0x0070 |
#define | P_CALL_PC_PLUS_PREG_MAX 0x0077 |
#define | P_CALL_MIN 0xE300 |
#define | P_CALL_MAX 0xE3FF |
#define | P_RTS 0x0010 |
#define | P_MNOP 0xC803 |
#define | P_EXCPT_MIN 0x00A0 |
#define | P_EXCPT_MAX 0x00AF |
#define | P_BIT_MULTI_INS_1 0xC000 |
#define | P_BIT_MULTI_INS_2 0x0800 |
#define | UPPER_LIMIT 40 |
#define | ASTAT_CC_POS 5 |
#define | ASTAT_CC (1 << ASTAT_CC_POS) |
#define | NUM_BFIN_REGNAMES ARRAY_SIZE (bfin_register_name_strings) |
Variables | |
static const char *const | bfin_register_name_strings [] |
static const int | map_gcc_gdb [] |
static const struct frame_unwind | bfin_frame_unwind |
static const struct frame_base | bfin_frame_base |
initialize_file_ftype | _initialize_bfin_tdep |
#define ASTAT_CC (1 << ASTAT_CC_POS) |
Definition at line 125 of file bfin-tdep.c.
Referenced by bfin_pseudo_register_read(), and bfin_pseudo_register_write().
#define ASTAT_CC_POS 5 |
Definition at line 124 of file bfin-tdep.c.
Referenced by bfin_pseudo_register_write().
#define NUM_BFIN_REGNAMES ARRAY_SIZE (bfin_register_name_strings) |
Definition at line 141 of file bfin-tdep.c.
#define P_16_BIT_INSR_MAX 0xBFFF |
Definition at line 58 of file bfin-tdep.c.
#define P_32_BIT_INSR_MAX 0xE801 |
Definition at line 62 of file bfin-tdep.c.
#define P_32_BIT_INSR_MIN 0xC000 |
Definition at line 60 of file bfin-tdep.c.
#define P_BIT_MULTI_INS_1 0xC000 |
Definition at line 116 of file bfin-tdep.c.
#define P_BIT_MULTI_INS_2 0x0800 |
Definition at line 118 of file bfin-tdep.c.
#define P_CALL_MAX 0xE3FF |
Definition at line 106 of file bfin-tdep.c.
#define P_CALL_MIN 0xE300 |
Definition at line 104 of file bfin-tdep.c.
#define P_CALL_PC_PLUS_PREG_MAX 0x0077 |
Definition at line 102 of file bfin-tdep.c.
#define P_CALL_PC_PLUS_PREG_MIN 0x0070 |
Definition at line 100 of file bfin-tdep.c.
#define P_CALL_PREG_MAX 0x0067 |
Definition at line 98 of file bfin-tdep.c.
#define P_CALL_PREG_MIN 0x0060 |
Definition at line 96 of file bfin-tdep.c.
#define P_EXCPT_MAX 0x00AF |
Definition at line 114 of file bfin-tdep.c.
#define P_EXCPT_MIN 0x00A0 |
Definition at line 112 of file bfin-tdep.c.
#define P_IF_CC_JUMP_BP_MAX 0x1FFF |
Definition at line 86 of file bfin-tdep.c.
#define P_IF_CC_JUMP_BP_MIN 0x1C00 |
Definition at line 84 of file bfin-tdep.c.
#define P_IF_CC_JUMP_MAX 0x1BFF |
Definition at line 82 of file bfin-tdep.c.
#define P_IF_CC_JUMP_MIN 0x1800 |
Definition at line 80 of file bfin-tdep.c.
#define P_IF_NOT_CC_JUMP_BP_MAX 0x17FF |
Definition at line 94 of file bfin-tdep.c.
#define P_IF_NOT_CC_JUMP_BP_MIN 0x1400 |
Definition at line 92 of file bfin-tdep.c.
#define P_IF_NOT_CC_JUMP_MAX 0x13FF |
Definition at line 90 of file bfin-tdep.c.
#define P_IF_NOT_CC_JUMP_MIN 0x1000 |
Definition at line 88 of file bfin-tdep.c.
#define P_JUMP_L_MAX 0xE2FF |
Definition at line 78 of file bfin-tdep.c.
#define P_JUMP_L_MIN 0xE200 |
Definition at line 76 of file bfin-tdep.c.
#define P_JUMP_PC_PLUS_PREG_MAX 0x0087 |
Definition at line 70 of file bfin-tdep.c.
Referenced by bfin_skip_prologue().
#define P_JUMP_PC_PLUS_PREG_MIN 0x0080 |
Definition at line 68 of file bfin-tdep.c.
Referenced by bfin_skip_prologue().
#define P_JUMP_PREG_MAX 0x0057 |
Definition at line 66 of file bfin-tdep.c.
Referenced by bfin_skip_prologue().
#define P_JUMP_PREG_MIN 0x0050 |
Definition at line 64 of file bfin-tdep.c.
Referenced by bfin_skip_prologue().
#define P_JUMP_S_MAX 0x2FFF |
Definition at line 74 of file bfin-tdep.c.
Referenced by bfin_skip_prologue().
#define P_JUMP_S_MIN 0x2000 |
Definition at line 72 of file bfin-tdep.c.
Referenced by bfin_skip_prologue().
#define P_LINKAGE 0xE800 |
Definition at line 44 of file bfin-tdep.c.
Referenced by bfin_skip_prologue().
#define P_MINUS_MINUS_SP_EQ_RETS 0x0167 |
Definition at line 54 of file bfin-tdep.c.
Referenced by bfin_skip_prologue().
#define P_MINUS_SP1 0x0140 |
Definition at line 45 of file bfin-tdep.c.
Referenced by is_minus_minus_sp().
#define P_MINUS_SP2 0x05C0 |
Definition at line 46 of file bfin-tdep.c.
Referenced by is_minus_minus_sp().
#define P_MINUS_SP3 0x0540 |
Definition at line 47 of file bfin-tdep.c.
Referenced by is_minus_minus_sp().
#define P_MINUS_SP4 0x04C0 |
Definition at line 48 of file bfin-tdep.c.
Referenced by is_minus_minus_sp().
#define P_MNOP 0xC803 |
Definition at line 110 of file bfin-tdep.c.
#define P_P2_HIGH 0XE14A |
Definition at line 51 of file bfin-tdep.c.
#define P_P2_LOW 0xE10A |
Definition at line 50 of file bfin-tdep.c.
#define P_RTS 0x0010 |
Definition at line 108 of file bfin-tdep.c.
Referenced by bfin_skip_prologue().
#define P_SP_EQ_P2_PLUS_SP 0x5B96 |
Definition at line 53 of file bfin-tdep.c.
#define P_SP_EQ_SP_PLUS_P2 0X5BB2 |
Definition at line 52 of file bfin-tdep.c.
#define P_SP_PLUS 0x6C06 |
Definition at line 49 of file bfin-tdep.c.
#define UPPER_LIMIT 40 |
Definition at line 121 of file bfin-tdep.c.
Referenced by bfin_skip_prologue().
void _initialize_bfin_tdep | ( | void | ) |
Definition at line 863 of file bfin-tdep.c.
References bfin_gdbarch_init(), and register_gdbarch_init().
Definition at line 780 of file bfin-tdep.c.
References gdbarch_tdep::bfin_abi, and gdbarch_tdep().
Referenced by bfin_push_dummy_call().
|
static |
Definition at line 264 of file bfin-tdep.c.
References bfin_frame_cache::base, BFIN_NUM_REGS, FRAME_OBSTACK_ZALLOC, bfin_frame_cache::frameless_pc_value, bfin_frame_cache::locals, bfin_frame_cache::pc, bfin_frame_cache::saved_regs, and bfin_frame_cache::sp_offset.
Referenced by bfin_frame_cache().
|
static |
Definition at line 582 of file bfin-tdep.c.
References gdbarch_byte_order(), read_memory_unsigned_integer(), and target_shortname.
Referenced by bfin_gdbarch_init().
|
static |
Definition at line 758 of file bfin-tdep.c.
References BFIN_SP_REGNUM, frame_id_build(), get_frame_pc(), and get_frame_register_unsigned().
Referenced by bfin_gdbarch_init().
|
static |
Definition at line 605 of file bfin-tdep.c.
References BFIN_R0_REGNUM, gdbarch::byte_order, gdb_assert, gdbarch_byte_order(), get_regcache_arch(), len, regcache_cooked_read_unsigned(), store_unsigned_integer(), and TYPE_LENGTH.
Referenced by bfin_return_value().
Definition at line 774 of file bfin-tdep.c.
Referenced by bfin_gdbarch_init().
|
static |
Definition at line 742 of file bfin-tdep.c.
References bfin_frame_cache::base, and bfin_frame_cache().
|
static |
Definition at line 726 of file bfin-tdep.c.
References bfin_frame_cache::base, and bfin_frame_cache().
|
static |
Definition at line 289 of file bfin-tdep.c.
References bfin_frame_cache::base, bfin_alloc_frame_cache(), BFIN_FP_REGNUM, BFIN_NUM_REGS, BFIN_PC_REGNUM, BFIN_RETS_REGNUM, bfin_frame_cache::frameless_pc_value, get_frame_func(), get_frame_pc(), get_frame_register_unsigned(), bfin_frame_cache::pc, bfin_frame_cache::saved_regs, and bfin_frame_cache::saved_sp.
Referenced by bfin_frame_args_address(), bfin_frame_base_address(), bfin_frame_local_address(), bfin_frame_prev_register(), and bfin_frame_this_id().
|
static |
Definition at line 734 of file bfin-tdep.c.
References bfin_frame_cache::base, and bfin_frame_cache().
|
static |
Definition at line 356 of file bfin-tdep.c.
References bfin_frame_cache(), frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_register(), gdbarch_sp_regnum(), get_frame_arch(), bfin_frame_cache::saved_regs, and bfin_frame_cache::saved_sp.
|
static |
Definition at line 341 of file bfin-tdep.c.
References bfin_frame_cache::base, bfin_frame_cache(), frame_id_build(), and bfin_frame_cache::pc.
|
static |
Definition at line 793 of file bfin-tdep.c.
References gdbarch_info::abfd, gdbarch_tdep::bfin_abi, BFIN_ABI_FLAT, BFIN_ASTAT_REGNUM, bfin_breakpoint_from_pc(), bfin_dummy_id(), bfin_frame_align(), BFIN_NUM_PSEUDO_REGS, BFIN_NUM_REGS, BFIN_PC_REGNUM, bfin_pseudo_register_read(), bfin_pseudo_register_write(), bfin_push_dummy_call(), bfin_reg_to_regnum(), bfin_register_name(), bfin_register_type(), bfin_return_value(), bfin_skip_prologue(), BFIN_SP_REGNUM, bfin_unwind_pc(), core_addr_lessthan(), dwarf2_append_unwinders(), frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), gdbarch_list::next, set_gdbarch_believe_pcc_promotion(), set_gdbarch_breakpoint_from_pc(), set_gdbarch_decr_pc_after_break(), set_gdbarch_dummy_id(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_frame_align(), set_gdbarch_frame_args_skip(), set_gdbarch_inner_than(), set_gdbarch_num_pseudo_regs(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_print_insn(), set_gdbarch_ps_regnum(), set_gdbarch_pseudo_register_read(), set_gdbarch_pseudo_register_write(), set_gdbarch_push_dummy_call(), set_gdbarch_register_name(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), and set_gdbarch_unwind_pc().
Referenced by _initialize_bfin_tdep().
|
static |
Definition at line 689 of file bfin-tdep.c.
References _, ASTAT_CC, BFIN_ASTAT_REGNUM, BFIN_CC_REGNUM, internal_error(), MAX_REGISTER_SIZE, REG_VALID, regcache_raw_read(), and status.
Referenced by bfin_gdbarch_init().
|
static |
Definition at line 710 of file bfin-tdep.c.
References _, ASTAT_CC, ASTAT_CC_POS, BFIN_ASTAT_REGNUM, BFIN_CC_REGNUM, internal_error(), MAX_REGISTER_SIZE, regcache_raw_read(), and regcache_raw_write().
Referenced by bfin_gdbarch_init().
|
static |
Definition at line 492 of file bfin-tdep.c.
References gdbarch_tdep::abi, bfin_abi(), BFIN_P0_REGNUM, BFIN_R0_REGNUM, BFIN_R1_REGNUM, BFIN_R2_REGNUM, BFIN_RETS_REGNUM, BFIN_SP_REGNUM, check_typedef(), find_function_addr(), gdbarch_byte_order(), gdbarch_tdep(), read_memory_integer(), regcache_cooked_write_unsigned(), TYPE_LENGTH, value_contents_writeable(), value_enclosing_type(), value_type(), and write_memory().
Referenced by bfin_gdbarch_init().
Definition at line 567 of file bfin-tdep.c.
References map_gcc_gdb.
Referenced by bfin_gdbarch_init().
Definition at line 683 of file bfin-tdep.c.
References bfin_register_name_strings.
Referenced by bfin_gdbarch_init().
Definition at line 475 of file bfin-tdep.c.
References BFIN_FP_REGNUM, BFIN_LB0_REGNUM, BFIN_LB1_REGNUM, BFIN_LT0_REGNUM, BFIN_LT1_REGNUM, BFIN_P0_REGNUM, BFIN_PC_REGNUM, BFIN_RETE_REGNUM, BFIN_RETI_REGNUM, BFIN_RETN_REGNUM, BFIN_RETS_REGNUM, BFIN_RETX_REGNUM, BFIN_USP_REGNUM, builtin_type::builtin_data_ptr, builtin_type::builtin_func_ptr, builtin_type::builtin_int32, and builtin_type().
Referenced by bfin_gdbarch_init().
|
static |
Definition at line 661 of file bfin-tdep.c.
References bfin_extract_return_value(), bfin_store_return_value(), RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, and TYPE_LENGTH.
Referenced by bfin_gdbarch_init().
Definition at line 401 of file bfin-tdep.c.
References _, gdbarch_byte_order(), is_minus_minus_sp(), P_JUMP_PC_PLUS_PREG_MAX, P_JUMP_PC_PLUS_PREG_MIN, P_JUMP_PREG_MAX, P_JUMP_PREG_MIN, P_JUMP_S_MAX, P_JUMP_S_MIN, P_LINKAGE, P_MINUS_MINUS_SP_EQ_RETS, P_RTS, read_memory_unsigned_integer(), UPPER_LIMIT, and warning().
Referenced by bfin_gdbarch_init().
|
static |
Definition at line 631 of file bfin-tdep.c.
References BFIN_R0_REGNUM, gdb_assert, len, regcache_cooked_write(), and TYPE_LENGTH.
Referenced by bfin_return_value().
|
static |
Definition at line 768 of file bfin-tdep.c.
References BFIN_PC_REGNUM, and frame_unwind_register_unsigned().
Referenced by bfin_gdbarch_init().
Definition at line 387 of file bfin-tdep.c.
References P_MINUS_SP1, P_MINUS_SP2, P_MINUS_SP3, and P_MINUS_SP4.
Referenced by bfin_skip_prologue().
initialize_file_ftype _initialize_bfin_tdep |
|
static |
Definition at line 749 of file bfin-tdep.c.
|
static |
Definition at line 373 of file bfin-tdep.c.
Definition at line 129 of file bfin-tdep.c.
Referenced by bfin_register_name().
Definition at line 191 of file bfin-tdep.c.
Referenced by bfin_reg_to_regnum().