GDB (xrefs)
|
#include "defs.h"
#include "arch-utils.h"
#include "dis-asm.h"
#include "frame.h"
#include "trad-frame.h"
#include "symtab.h"
#include "value.h"
#include "gdbcmd.h"
#include "breakpoint.h"
#include "inferior.h"
#include "regcache.h"
#include "target.h"
#include "frame-base.h"
#include "frame-unwind.h"
#include "dwarf2-frame.h"
#include "osabi.h"
#include "target-descriptions.h"
#include "opcodes/microblaze-opcm.h"
#include "opcodes/microblaze-dis.h"
#include "microblaze-tdep.h"
#include "remote.h"
#include "features/microblaze-with-stack-protect.c"
#include "features/microblaze.c"
Go to the source code of this file.
Macros | |
#define | IS_RETURN(op) (op == rtsd || op == rtid) |
#define | IS_UPDATE_SP(op, rd, ra) ((op == addik || op == addi) && rd == REG_SP && ra == REG_SP) |
#define | IS_SPILL_SP(op, rd, ra) ((op == swi || op == sw) && rd == REG_SP && ra == REG_SP) |
#define | IS_SPILL_REG(op, rd, ra) ((op == swi || op == sw) && rd != REG_SP && ra == REG_SP) |
#define | IS_ALSO_SPILL_REG(op, rd, ra, rb) ((op == swi || op == sw) && rd != REG_SP && ra == 0 && rb == REG_SP) |
#define | IS_SETUP_FP(op, ra, rb) ((op == add || op == addik || op == addk) && ra == REG_SP && rb == 0) |
#define | IS_SPILL_REG_FP(op, rd, ra, fpregnum) ((op == swi || op == sw) && rd != REG_SP && ra == fpregnum && ra != 0) |
#define | IS_SAVE_HIDDEN_PTR(op, rd, ra, rb) ((op == add || op == addik) && ra == MICROBLAZE_FIRST_ARGREG && rb == 0) |
#define | MICROBLAZE_NUM_REGS ARRAY_SIZE (microblaze_register_names) |
#define | MICROBLAZE_MY_FRAME_IN_SP 0x1 |
#define | MICROBLAZE_MY_FRAME_IN_FP 0x2 |
Variables | |
static const char * | microblaze_register_names [] |
static unsigned int | microblaze_debug_flag = 0 |
static const struct frame_unwind | microblaze_frame_unwind |
static const struct frame_base | microblaze_frame_base |
static int | dwarf2_to_reg_map [78] |
#define IS_ALSO_SPILL_REG | ( | op, | |
rd, | |||
ra, | |||
rb | |||
) | ((op == swi || op == sw) && rd != REG_SP && ra == 0 && rb == REG_SP) |
Definition at line 57 of file microblaze-tdep.c.
Referenced by microblaze_analyze_prologue().
#define IS_RETURN | ( | op | ) | (op == rtsd || op == rtid) |
Definition at line 50 of file microblaze-tdep.c.
Referenced by microblaze_analyze_prologue().
#define IS_SAVE_HIDDEN_PTR | ( | op, | |
rd, | |||
ra, | |||
rb | |||
) | ((op == add || op == addik) && ra == MICROBLAZE_FIRST_ARGREG && rb == 0) |
Definition at line 63 of file microblaze-tdep.c.
Referenced by microblaze_analyze_prologue().
#define IS_SETUP_FP | ( | op, | |
ra, | |||
rb | |||
) | ((op == add || op == addik || op == addk) && ra == REG_SP && rb == 0) |
Definition at line 59 of file microblaze-tdep.c.
Referenced by microblaze_analyze_prologue().
#define IS_SPILL_REG | ( | op, | |
rd, | |||
ra | |||
) | ((op == swi || op == sw) && rd != REG_SP && ra == REG_SP) |
Definition at line 55 of file microblaze-tdep.c.
Referenced by microblaze_analyze_prologue().
#define IS_SPILL_REG_FP | ( | op, | |
rd, | |||
ra, | |||
fpregnum | |||
) | ((op == swi || op == sw) && rd != REG_SP && ra == fpregnum && ra != 0) |
Definition at line 61 of file microblaze-tdep.c.
Referenced by microblaze_analyze_prologue().
#define IS_SPILL_SP | ( | op, | |
rd, | |||
ra | |||
) | ((op == swi || op == sw) && rd == REG_SP && ra == REG_SP) |
Definition at line 53 of file microblaze-tdep.c.
Referenced by microblaze_analyze_prologue().
#define IS_UPDATE_SP | ( | op, | |
rd, | |||
ra | |||
) | ((op == addik || op == addi) && rd == REG_SP && ra == REG_SP) |
Definition at line 51 of file microblaze-tdep.c.
Referenced by microblaze_analyze_prologue().
#define MICROBLAZE_MY_FRAME_IN_FP 0x2 |
Definition at line 179 of file microblaze-tdep.c.
Referenced by microblaze_analyze_prologue().
#define MICROBLAZE_MY_FRAME_IN_SP 0x1 |
Definition at line 172 of file microblaze-tdep.c.
Referenced by microblaze_analyze_prologue().
#define MICROBLAZE_NUM_REGS ARRAY_SIZE (microblaze_register_names) |
Definition at line 81 of file microblaze-tdep.c.
Referenced by microblaze_gdbarch_init(), microblaze_register_g_packet_guesses(), and microblaze_register_name().
void _initialize_microblaze_tdep | ( | void | ) |
Definition at line 769 of file microblaze-tdep.c.
References _, add_setshow_zuinteger_cmd(), class_maintenance, initialize_tdesc_microblaze(), initialize_tdesc_microblaze_with_stack_protect(), microblaze_debug_flag, microblaze_gdbarch_init(), register_gdbarch_init(), setdebuglist, and showdebuglist.
|
static |
Definition at line 150 of file microblaze-tdep.c.
References microblaze_frame_cache::base, FRAME_OBSTACK_ZALLOC, microblaze_frame_cache::frameless_p, and microblaze_frame_cache::pc.
Referenced by microblaze_frame_cache().
|
static |
Definition at line 203 of file microblaze-tdep.c.
References find_pc_partial_function(), flags, microblaze_frame_cache::fp_regnum, microblaze_frame_cache::frameless_p, microblaze_frame_cache::framesize, INST_WORD_SIZE, IS_ALSO_SPILL_REG, IS_RETURN, IS_SAVE_HIDDEN_PTR, IS_SETUP_FP, IS_SPILL_REG, IS_SPILL_REG_FP, IS_SPILL_SP, IS_UPDATE_SP, microblaze_debug(), microblaze_fetch_instruction(), MICROBLAZE_MY_FRAME_IN_FP, MICROBLAZE_MY_FRAME_IN_SP, MICROBLAZE_SP_REGNUM, name, paddress(), microblaze_frame_cache::pc, and microblaze_frame_cache::register_offsets.
Referenced by microblaze_skip_prologue().
|
static |
Definition at line 138 of file microblaze-tdep.c.
References MICROBLAZE_BREAKPOINT.
Referenced by microblaze_gdbarch_init().
|
static |
Definition at line 86 of file microblaze-tdep.c.
References microblaze_debug_flag, printf_unfiltered(), and vprintf_unfiltered().
Referenced by microblaze_analyze_prologue().
Definition at line 639 of file microblaze-tdep.c.
References dwarf2_to_reg_map, and gdb_assert.
Referenced by microblaze_gdbarch_init().
|
static |
Definition at line 528 of file microblaze-tdep.c.
References _, internal_error(), MICROBLAZE_REGISTER_SIZE, MICROBLAZE_RETVAL_REGNUM, regcache_cooked_read(), and TYPE_LENGTH.
Referenced by microblaze_return_value().
|
static |
Definition at line 125 of file microblaze-tdep.c.
References extract_unsigned_integer(), gdbarch_byte_order(), target_gdbarch(), and target_read_code().
Referenced by microblaze_analyze_prologue().
|
static |
Definition at line 508 of file microblaze-tdep.c.
References microblaze_frame_cache::base, and microblaze_frame_cache().
|
static |
Definition at line 436 of file microblaze-tdep.c.
References func, gdbarch_num_regs(), get_frame_address_in_block(), get_frame_arch(), get_frame_func(), microblaze_alloc_frame_cache(), microblaze_frame_cache::pc, microblaze_frame_cache::register_offsets, microblaze_frame_cache::saved_regs, and trad_frame_alloc_saved_regs().
Referenced by microblaze_frame_base_address(), microblaze_frame_prev_register(), and microblaze_frame_this_id().
|
static |
Definition at line 476 of file microblaze-tdep.c.
References microblaze_frame_cache::frameless_p, microblaze_frame_cache(), MICROBLAZE_PC_REGNUM, MICROBLAZE_SP_REGNUM, microblaze_frame_cache::saved_regs, and trad_frame_get_prev_register().
|
static |
Definition at line 462 of file microblaze-tdep.c.
References microblaze_frame_cache::base, frame_id_build(), microblaze_frame_cache(), and microblaze_frame_cache::pc.
|
static |
Definition at line 658 of file microblaze-tdep.c.
References core_addr_lessthan(), dwarf2_append_unwinders(), dwarf2_frame_base_sniffer(), frame_base_append_sniffer(), frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), microblaze_breakpoint_from_pc(), microblaze_dwarf2_reg_to_regnum(), MICROBLAZE_NUM_CORE_REGS, MICROBLAZE_NUM_REGS, MICROBLAZE_PC_REGNUM, microblaze_register_g_packet_guesses(), microblaze_register_name(), microblaze_register_names, microblaze_register_type(), microblaze_return_value(), MICROBLAZE_SHR_REGNUM, microblaze_skip_prologue(), MICROBLAZE_SLR_REGNUM, MICROBLAZE_SP_REGNUM, microblaze_stabs_argument_has_addr(), microblaze_unwind_pc(), microblaze_write_pc(), ON_STACK, set_gdbarch_breakpoint_from_pc(), set_gdbarch_call_dummy_location(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_frame_args_skip(), set_gdbarch_inner_than(), set_gdbarch_long_double_bit(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_print_insn(), set_gdbarch_register_name(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_stabs_argument_has_addr(), set_gdbarch_unwind_pc(), set_gdbarch_write_pc(), gdbarch_info::target_desc, tdesc_data, tdesc_data_alloc(), tdesc_data_cleanup(), tdesc_find_feature(), tdesc_has_registers(), tdesc_microblaze, tdesc_numbered_register(), and tdesc_use_registers().
Referenced by _initialize_microblaze_tdep().
|
static |
Definition at line 646 of file microblaze-tdep.c.
References MICROBLAZE_NUM_CORE_REGS, MICROBLAZE_NUM_REGS, register_remote_g_packet_guess(), tdesc_microblaze, and tdesc_microblaze_with_stack_protect.
Referenced by microblaze_gdbarch_init().
Definition at line 102 of file microblaze-tdep.c.
References MICROBLAZE_NUM_REGS, microblaze_register_names, and regnum.
Referenced by microblaze_gdbarch_init().
Definition at line 110 of file microblaze-tdep.c.
References builtin_type::builtin_data_ptr, builtin_type::builtin_func_ptr, builtin_type::builtin_int, builtin_type(), MICROBLAZE_PC_REGNUM, and MICROBLAZE_SP_REGNUM.
Referenced by microblaze_gdbarch_init().
|
static |
Definition at line 591 of file microblaze-tdep.c.
References microblaze_extract_return_value(), microblaze_store_return_value(), and RETURN_VALUE_REGISTER_CONVENTION.
Referenced by microblaze_gdbarch_init().
Definition at line 406 of file microblaze-tdep.c.
References symtab_and_line::end, find_pc_line(), find_pc_partial_function(), and microblaze_analyze_prologue().
Referenced by microblaze_gdbarch_init().
|
static |
Definition at line 604 of file microblaze-tdep.c.
References TYPE_LENGTH.
Referenced by microblaze_gdbarch_init().
|
static |
Definition at line 567 of file microblaze-tdep.c.
References gdb_assert, len, MICROBLAZE_RETVAL_REGNUM, regcache_cooked_write(), and TYPE_LENGTH.
Referenced by microblaze_return_value().
|
static |
Definition at line 387 of file microblaze-tdep.c.
References extract_typed_address(), frame_relative_level(), frame_unwind_register(), MICROBLAZE_PC_REGNUM, and microblaze_frame_cache::pc.
Referenced by microblaze_gdbarch_init().
Definition at line 610 of file microblaze-tdep.c.
References MICROBLAZE_PC_REGNUM, and regcache_cooked_write_unsigned().
Referenced by microblaze_gdbarch_init().
|
static |
Definition at line 615 of file microblaze-tdep.c.
Referenced by microblaze_dwarf2_reg_to_regnum().
|
static |
Definition at line 83 of file microblaze-tdep.c.
Referenced by _initialize_microblaze_tdep(), and microblaze_debug().
|
static |
Definition at line 517 of file microblaze-tdep.c.
|
static |
Definition at line 497 of file microblaze-tdep.c.
|
static |
Definition at line 68 of file microblaze-tdep.c.
Referenced by microblaze_gdbarch_init(), and microblaze_register_name().