GDB (xrefs)
|
#include "defs.h"
#include "value.h"
#include "arch-utils.h"
#include "regcache.h"
#include "gdbcore.h"
#include "objfiles.h"
#include "dis-asm.h"
#include "dwarf2-frame.h"
#include "frame-base.h"
#include "frame-unwind.h"
Go to the source code of this file.
Classes | |
struct | h8300_frame_cache |
Macros | |
#define | H8300_MAX_NUM_REGS 18 |
#define | E_PSEUDO_CCR_REGNUM(gdbarch) (gdbarch_num_regs (gdbarch)) |
#define | E_PSEUDO_EXR_REGNUM(gdbarch) (gdbarch_num_regs (gdbarch)+1) |
#define | BINWORD(gdbarch) |
#define | IS_MOVB_RnRm(x) (((x) & 0xff88) == 0x0c88) |
#define | IS_MOVW_RnRm(x) (((x) & 0xff88) == 0x0d00) |
#define | IS_MOVL_RnRm(x) (((x) & 0xff88) == 0x0f80) |
#define | IS_MOVB_Rn16_SP(x) (((x) & 0xfff0) == 0x6ee0) |
#define | IS_MOVB_EXT(x) ((x) == 0x7860) |
#define | IS_MOVB_Rn24_SP(x) (((x) & 0xfff0) == 0x6aa0) |
#define | IS_MOVW_Rn16_SP(x) (((x) & 0xfff0) == 0x6fe0) |
#define | IS_MOVW_EXT(x) ((x) == 0x78e0) |
#define | IS_MOVW_Rn24_SP(x) (((x) & 0xfff0) == 0x6ba0) |
#define | IS_MOVL_PRE(x) ((x) == 0x0100) |
#define | IS_MOVL_Rn16_SP(x) (((x) & 0xfff0) == 0x6fe0) |
#define | IS_MOVL_EXT(x) ((x) == 0x78e0) |
#define | IS_MOVL_Rn24_SP(x) (((x) & 0xfff0) == 0x6ba0) |
#define | IS_PUSHFP_MOVESPFP(x) ((x) == 0x6df60d76) |
#define | IS_PUSH_FP(x) ((x) == 0x01006df6) |
#define | IS_MOV_SP_FP(x) ((x) == 0x0ff6) |
#define | IS_SUB2_SP(x) ((x) == 0x1b87) |
#define | IS_SUB4_SP(x) ((x) == 0x1b97) |
#define | IS_ADD_IMM_SP(x) ((x) == 0x7a1f) |
#define | IS_SUB_IMM_SP(x) ((x) == 0x7a3f) |
#define | IS_SUBL4_SP(x) ((x) == 0x1acf) |
#define | IS_MOV_IMM_Rn(x) (((x) & 0xfff0) == 0x7905) |
#define | IS_SUB_RnSP(x) (((x) & 0xff0f) == 0x1907) |
#define | IS_ADD_RnSP(x) (((x) & 0xff0f) == 0x0907) |
#define | IS_PUSH(x) (((x) & 0xfff0) == 0x6df0) |
Variables | |
static const struct frame_unwind | h8300_frame_unwind |
static const struct frame_base | h8300_frame_base |
initialize_file_ftype | _initialize_h8300_tdep |
#define BINWORD | ( | gdbarch | ) |
Definition at line 91 of file h8300-tdep.c.
Referenced by h8300_frame_cache(), h8300_print_register(), and h8300_push_dummy_call().
#define E_PSEUDO_CCR_REGNUM | ( | gdbarch | ) | (gdbarch_num_regs (gdbarch)) |
Definition at line 61 of file h8300-tdep.c.
Referenced by h8300_dbg_reg_to_regnum(), h8300_print_register(), h8300_print_registers_info(), h8300_pseudo_register_read(), h8300_pseudo_register_write(), h8300_register_type(), and h8300s_dbg_reg_to_regnum().
#define E_PSEUDO_EXR_REGNUM | ( | gdbarch | ) | (gdbarch_num_regs (gdbarch)+1) |
Definition at line 62 of file h8300-tdep.c.
Referenced by h8300_print_register(), h8300_print_registers_info(), h8300_pseudo_register_read(), h8300_pseudo_register_write(), h8300_register_type(), and h8300s_dbg_reg_to_regnum().
#define H8300_MAX_NUM_REGS 18 |
Definition at line 59 of file h8300-tdep.c.
#define IS_ADD_IMM_SP | ( | x | ) | ((x) == 0x7a1f) |
Definition at line 158 of file h8300-tdep.c.
Referenced by h8300_analyze_prologue().
#define IS_ADD_RnSP | ( | x | ) | (((x) & 0xff0f) == 0x0907) |
Definition at line 163 of file h8300-tdep.c.
Referenced by h8300_analyze_prologue().
#define IS_MOV_IMM_Rn | ( | x | ) | (((x) & 0xfff0) == 0x7905) |
Definition at line 161 of file h8300-tdep.c.
Referenced by h8300_analyze_prologue().
#define IS_MOV_SP_FP | ( | x | ) | ((x) == 0x0ff6) |
Definition at line 155 of file h8300-tdep.c.
Referenced by h8300_analyze_prologue().
#define IS_MOVB_EXT | ( | x | ) | ((x) == 0x7860) |
Definition at line 142 of file h8300-tdep.c.
Referenced by h8300_is_argument_spill().
#define IS_MOVB_Rn16_SP | ( | x | ) | (((x) & 0xfff0) == 0x6ee0) |
Definition at line 141 of file h8300-tdep.c.
Referenced by h8300_is_argument_spill().
#define IS_MOVB_Rn24_SP | ( | x | ) | (((x) & 0xfff0) == 0x6aa0) |
Definition at line 143 of file h8300-tdep.c.
Referenced by h8300_is_argument_spill().
#define IS_MOVB_RnRm | ( | x | ) | (((x) & 0xff88) == 0x0c88) |
Definition at line 138 of file h8300-tdep.c.
Referenced by h8300_is_argument_spill().
#define IS_MOVL_EXT | ( | x | ) | ((x) == 0x78e0) |
Definition at line 150 of file h8300-tdep.c.
Referenced by h8300_is_argument_spill().
#define IS_MOVL_PRE | ( | x | ) | ((x) == 0x0100) |
Definition at line 148 of file h8300-tdep.c.
Referenced by h8300_is_argument_spill().
#define IS_MOVL_Rn16_SP | ( | x | ) | (((x) & 0xfff0) == 0x6fe0) |
Definition at line 149 of file h8300-tdep.c.
Referenced by h8300_is_argument_spill().
#define IS_MOVL_Rn24_SP | ( | x | ) | (((x) & 0xfff0) == 0x6ba0) |
Definition at line 151 of file h8300-tdep.c.
Referenced by h8300_is_argument_spill().
#define IS_MOVL_RnRm | ( | x | ) | (((x) & 0xff88) == 0x0f80) |
Definition at line 140 of file h8300-tdep.c.
Referenced by h8300_is_argument_spill().
#define IS_MOVW_EXT | ( | x | ) | ((x) == 0x78e0) |
Definition at line 145 of file h8300-tdep.c.
Referenced by h8300_is_argument_spill().
#define IS_MOVW_Rn16_SP | ( | x | ) | (((x) & 0xfff0) == 0x6fe0) |
Definition at line 144 of file h8300-tdep.c.
Referenced by h8300_is_argument_spill().
#define IS_MOVW_Rn24_SP | ( | x | ) | (((x) & 0xfff0) == 0x6ba0) |
Definition at line 146 of file h8300-tdep.c.
Referenced by h8300_is_argument_spill().
#define IS_MOVW_RnRm | ( | x | ) | (((x) & 0xff88) == 0x0d00) |
Definition at line 139 of file h8300-tdep.c.
Referenced by h8300_is_argument_spill().
#define IS_PUSH | ( | x | ) | (((x) & 0xfff0) == 0x6df0) |
Definition at line 164 of file h8300-tdep.c.
Referenced by h8300_analyze_prologue().
#define IS_PUSH_FP | ( | x | ) | ((x) == 0x01006df6) |
Definition at line 154 of file h8300-tdep.c.
Referenced by h8300_analyze_prologue().
#define IS_PUSHFP_MOVESPFP | ( | x | ) | ((x) == 0x6df60d76) |
Definition at line 153 of file h8300-tdep.c.
Referenced by h8300_analyze_prologue().
#define IS_SUB2_SP | ( | x | ) | ((x) == 0x1b87) |
Definition at line 156 of file h8300-tdep.c.
Referenced by h8300_analyze_prologue().
#define IS_SUB4_SP | ( | x | ) | ((x) == 0x1b97) |
Definition at line 157 of file h8300-tdep.c.
Referenced by h8300_analyze_prologue().
#define IS_SUB_IMM_SP | ( | x | ) | ((x) == 0x7a3f) |
Definition at line 159 of file h8300-tdep.c.
Referenced by h8300_analyze_prologue().
#define IS_SUB_RnSP | ( | x | ) | (((x) & 0xff0f) == 0x1907) |
Definition at line 162 of file h8300-tdep.c.
Referenced by h8300_analyze_prologue().
#define IS_SUBL4_SP | ( | x | ) | ((x) == 0x1acf) |
Definition at line 160 of file h8300-tdep.c.
Referenced by h8300_analyze_prologue().
anonymous enum |
Enumerator | |
---|---|
h8300_reg_size | |
h8300h_reg_size | |
h8300_max_reg_size |
Definition at line 79 of file h8300-tdep.c.
enum gdb_regnum |
Definition at line 36 of file h8300-tdep.c.
void _initialize_h8300_tdep | ( | void | ) |
Definition at line 1413 of file h8300-tdep.c.
References h8300_gdbarch_init(), and register_gdbarch_init().
|
static |
Definition at line 291 of file h8300-tdep.c.
References E_FP_REGNUM, gdbarch_byte_order(), h8300_is_argument_spill(), IS_ADD_IMM_SP, IS_ADD_RnSP, IS_MOV_IMM_Rn, IS_MOV_SP_FP, IS_PUSH, IS_PUSH_FP, IS_PUSHFP_MOVESPFP, IS_SUB2_SP, IS_SUB4_SP, IS_SUB_IMM_SP, IS_SUB_RnSP, IS_SUBL4_SP, offset, read_memory_integer(), read_memory_unsigned_integer(), h8300_frame_cache::saved_regs, h8300_frame_cache::sp_offset, and h8300_frame_cache::uses_fp.
Referenced by h8300_frame_cache(), and h8300_skip_prologue().
|
static |
Definition at line 1249 of file h8300-tdep.c.
Referenced by h8300_gdbarch_init().
Definition at line 1231 of file h8300-tdep.c.
References E_CCR_REGNUM, and E_PSEUDO_CCR_REGNUM.
Referenced by h8300_gdbarch_init().
|
static |
Definition at line 108 of file h8300-tdep.c.
References E_SP_REGNUM, frame_id_build(), get_frame_pc(), and get_frame_register_unsigned().
Referenced by h8300_gdbarch_init().
|
static |
Definition at line 744 of file h8300-tdep.c.
References _, gdbarch::byte_order, E_RET0_REGNUM, E_RET1_REGNUM, error(), gdbarch_byte_order(), get_regcache_arch(), len, read_memory_unsigned_integer(), regcache_cooked_read_unsigned(), store_unsigned_integer(), TYPE_CODE, TYPE_CODE_INT, and TYPE_LENGTH.
Referenced by h8300_return_value().
|
static |
Definition at line 533 of file h8300-tdep.c.
References h8300_frame_cache::base, and h8300_frame_cache().
|
static |
Definition at line 427 of file h8300-tdep.c.
References h8300_frame_cache::base, BINWORD, E_FP_REGNUM, E_PC_REGNUM, E_SP_REGNUM, FRAME_OBSTACK_ZALLOC, gdbarch_num_regs(), get_frame_arch(), get_frame_func(), get_frame_pc(), get_frame_register_unsigned(), h8300_analyze_prologue(), h8300_init_frame_cache(), h8300_frame_cache::pc, h8300_frame_cache::saved_regs, h8300_frame_cache::saved_sp, h8300_frame_cache::sp_offset, and h8300_frame_cache::uses_fp.
Referenced by h8300_frame_base_address(), h8300_frame_prev_register(), and h8300_frame_this_id().
|
static |
Definition at line 503 of file h8300-tdep.c.
References E_SP_REGNUM, frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_register(), gdb_assert, gdbarch_num_regs(), get_frame_arch(), h8300_frame_cache(), h8300_frame_cache::saved_regs, and h8300_frame_cache::saved_sp.
|
static |
Definition at line 489 of file h8300-tdep.c.
References h8300_frame_cache::base, frame_id_build(), h8300_frame_cache(), h8300_frame_cache::pc, and h8300_frame_cache::saved_sp.
|
static |
Definition at line 1260 of file h8300-tdep.c.
References gdbarch_info::bfd_arch_info, core_addr_lessthan(), dwarf2_append_unwinders(), E_PC_REGNUM, E_SP_REGNUM, floatformats_ieee_single, frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_list_lookup_by_info(), h8300_breakpoint_from_pc(), h8300_dbg_reg_to_regnum(), h8300_dummy_id(), h8300_print_registers_info(), h8300_pseudo_register_read(), h8300_pseudo_register_write(), h8300_push_dummy_call(), h8300_register_name(), h8300_register_sim_regno(), h8300_register_type(), h8300_return_value(), h8300_skip_prologue(), h8300_unwind_pc(), h8300_unwind_sp(), h8300h_return_value(), h8300s_dbg_reg_to_regnum(), h8300s_register_name(), h8300sx_register_name(), set_gdbarch_addr_bit(), set_gdbarch_believe_pcc_promotion(), set_gdbarch_breakpoint_from_pc(), set_gdbarch_char_signed(), set_gdbarch_double_bit(), set_gdbarch_double_format(), set_gdbarch_dummy_id(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_ecoff_reg_to_regnum(), set_gdbarch_inner_than(), set_gdbarch_int_bit(), set_gdbarch_long_bit(), set_gdbarch_long_double_bit(), set_gdbarch_long_double_format(), set_gdbarch_long_long_bit(), set_gdbarch_num_pseudo_regs(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_print_insn(), set_gdbarch_print_registers_info(), set_gdbarch_pseudo_register_read(), set_gdbarch_pseudo_register_write(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_register_name(), set_gdbarch_register_sim_regno(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_stab_reg_to_regnum(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), TARGET_CHAR_BIT, and xmalloc().
Referenced by _initialize_h8300_tdep().
|
static |
Definition at line 119 of file h8300-tdep.c.
References h8300_frame_cache::base, gdbarch_num_regs(), h8300_frame_cache::pc, h8300_frame_cache::saved_regs, h8300_frame_cache::sp_offset, and h8300_frame_cache::uses_fp.
Referenced by h8300_frame_cache(), and h8300_skip_prologue().
Definition at line 178 of file h8300-tdep.c.
References gdbarch_byte_order(), IS_MOVB_EXT, IS_MOVB_Rn16_SP, IS_MOVB_Rn24_SP, IS_MOVB_RnRm, IS_MOVL_EXT, IS_MOVL_PRE, IS_MOVL_Rn16_SP, IS_MOVL_Rn24_SP, IS_MOVL_RnRm, IS_MOVW_EXT, IS_MOVW_Rn16_SP, IS_MOVW_Rn24_SP, IS_MOVW_RnRm, read_memory_integer(), and read_memory_unsigned_integer().
Referenced by h8300_analyze_prologue().
|
static |
Definition at line 1011 of file h8300-tdep.c.
References BINWORD, E_PSEUDO_CCR_REGNUM, E_PSEUDO_EXR_REGNUM, fprintf_filtered(), gdbarch_register_name(), get_frame_register_signed(), is_h8300smode(), name, phex(), and print_longest().
Referenced by h8300_print_registers_info().
|
static |
Definition at line 1088 of file h8300-tdep.c.
References E_CCR_REGNUM, E_CYCLES_REGNUM, E_INST_REGNUM, E_INSTS_REGNUM, E_MACH_REGNUM, E_MACL_REGNUM, E_PC_REGNUM, E_PSEUDO_CCR_REGNUM, E_PSEUDO_EXR_REGNUM, E_R0_REGNUM, E_SBR_REGNUM, E_SP_REGNUM, E_TICK_REGNUM, E_TICKS_REGNUM, E_VBR_REGNUM, h8300_print_register(), is_h8300smode(), and is_h8300sxmode().
Referenced by h8300_gdbarch_init().
|
static |
Definition at line 1199 of file h8300-tdep.c.
References E_CCR_REGNUM, E_EXR_REGNUM, E_PSEUDO_CCR_REGNUM, E_PSEUDO_EXR_REGNUM, pseudo_from_raw_register(), and regcache_raw_read().
Referenced by h8300_gdbarch_init().
|
static |
Definition at line 1218 of file h8300-tdep.c.
References E_CCR_REGNUM, E_EXR_REGNUM, E_PSEUDO_CCR_REGNUM, E_PSEUDO_EXR_REGNUM, raw_from_pseudo_register(), and regcache_raw_write().
Referenced by h8300_gdbarch_init().
|
static |
Definition at line 636 of file h8300-tdep.c.
References align_down(), align_up(), BINWORD, do_cleanups(), E_ARG0_REGNUM, E_ARGLAST_REGNUM, E_SP_REGNUM, extract_unsigned_integer(), gdbarch_byte_order(), len, make_cleanup(), offset, regcache_cooked_write_unsigned(), TYPE_LENGTH, value_contents(), value_type(), word, wordsize, write_memory(), write_memory_unsigned_integer(), xfree(), and xmalloc().
Referenced by h8300_gdbarch_init().
Definition at line 956 of file h8300-tdep.c.
References _, and internal_error().
Referenced by h8300_gdbarch_init().
Definition at line 942 of file h8300-tdep.c.
References gdb_assert, gdbarch_num_regs(), and regnum.
Referenced by h8300_gdbarch_init().
Definition at line 1135 of file h8300-tdep.c.
References _, builtin_type::builtin_data_ptr, builtin_type::builtin_func_ptr, builtin_type::builtin_int16, builtin_type::builtin_int32, builtin_type(), builtin_type::builtin_uint8, E_FP_REGNUM, E_PC_REGNUM, E_PSEUDO_CCR_REGNUM, E_PSEUDO_EXR_REGNUM, E_SP_REGNUM, gdbarch_num_pseudo_regs(), gdbarch_num_regs(), internal_error(), and is_h8300hmode().
Referenced by h8300_gdbarch_init().
|
static |
Definition at line 902 of file h8300-tdep.c.
References h8300_extract_return_value(), h8300_store_return_value(), h8300_use_struct_convention(), RETURN_VALUE_REGISTER_CONVENTION, and RETURN_VALUE_STRUCT_CONVENTION.
Referenced by h8300_gdbarch_init().
Definition at line 547 of file h8300-tdep.c.
References find_pc_line(), find_pc_partial_function(), h8300_analyze_prologue(), h8300_init_frame_cache(), and h8300_frame_cache::pc.
Referenced by h8300_gdbarch_init().
|
static |
Definition at line 847 of file h8300-tdep.c.
References _, gdbarch::byte_order, E_RET0_REGNUM, E_RET1_REGNUM, error(), extract_unsigned_integer(), gdbarch_byte_order(), get_regcache_arch(), regcache_cooked_write_unsigned(), and TYPE_LENGTH.
Referenced by h8300_return_value().
|
static |
Definition at line 96 of file h8300-tdep.c.
References E_PC_REGNUM, and frame_unwind_register_unsigned().
Referenced by h8300_gdbarch_init().
|
static |
Definition at line 102 of file h8300-tdep.c.
References E_SP_REGNUM, and frame_unwind_register_unsigned().
Referenced by h8300_gdbarch_init().
Definition at line 814 of file h8300-tdep.c.
References TYPE_CODE, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_LENGTH.
Referenced by h8300_return_value().
|
static |
Definition at line 781 of file h8300-tdep.c.
References _, gdbarch::byte_order, E_RET0_REGNUM, E_RET1_REGNUM, error(), gdbarch_byte_order(), get_regcache_arch(), regcache_cooked_read_unsigned(), store_unsigned_integer(), TYPE_CODE, TYPE_CODE_INT, and TYPE_LENGTH.
Referenced by h8300h_return_value().
|
static |
Definition at line 916 of file h8300-tdep.c.
References E_R0_REGNUM, h8300h_extract_return_value(), h8300h_store_return_value(), h8300h_use_struct_convention(), read_memory(), regcache_raw_read_unsigned(), RETURN_VALUE_ABI_RETURNS_ADDRESS, RETURN_VALUE_REGISTER_CONVENTION, and TYPE_LENGTH.
Referenced by h8300_gdbarch_init().
|
static |
Definition at line 876 of file h8300-tdep.c.
References gdbarch::byte_order, E_RET0_REGNUM, E_RET1_REGNUM, extract_unsigned_integer(), gdbarch_byte_order(), get_regcache_arch(), regcache_cooked_write_unsigned(), and TYPE_LENGTH.
Referenced by h8300h_return_value().
Definition at line 828 of file h8300-tdep.c.
References TYPE_CODE, TYPE_CODE_INT, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_LENGTH.
Referenced by h8300h_return_value().
Definition at line 1239 of file h8300-tdep.c.
References E_CCR_REGNUM, E_EXR_REGNUM, E_PSEUDO_CCR_REGNUM, and E_PSEUDO_EXR_REGNUM.
Referenced by h8300_gdbarch_init().
Definition at line 975 of file h8300-tdep.c.
References _, and internal_error().
Referenced by h8300_gdbarch_init().
Definition at line 993 of file h8300-tdep.c.
References _, and internal_error().
Referenced by h8300_gdbarch_init().
Definition at line 1446 of file h8300-tdep.c.
References gdbarch_bfd_arch_info().
Definition at line 1419 of file h8300-tdep.c.
References gdbarch_bfd_arch_info().
Referenced by h8300_register_type().
Definition at line 1430 of file h8300-tdep.c.
References gdbarch_bfd_arch_info().
Referenced by h8300_print_register(), and h8300_print_registers_info().
Definition at line 1439 of file h8300-tdep.c.
References gdbarch_bfd_arch_info().
Referenced by h8300_print_registers_info().
|
static |
Definition at line 1169 of file h8300-tdep.c.
References gdbarch_byte_order(), REG_VALID, regcache_raw_read_unsigned(), register_size(), status, and store_unsigned_integer().
Referenced by h8300_pseudo_register_read().
|
static |
Definition at line 1187 of file h8300-tdep.c.
References extract_unsigned_integer(), gdbarch_byte_order(), regcache_raw_write_unsigned(), and register_size().
Referenced by h8300_pseudo_register_write().
initialize_file_ftype _initialize_h8300_tdep |
|
static |
Definition at line 539 of file h8300-tdep.c.
|
static |
Definition at line 523 of file h8300-tdep.c.