|
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 |
| constexpr gdb_byte | h8300_break_insn [] = { 0x01, 0x80 } |
| #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 1397 of file h8300-tdep.c.
References register_gdbarch_init().
| typedef BP_MANIPULATION | ( | h8300_break_insn | ) |
Definition at line 1245 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_dbg_reg_to_regnum(), h8300_dummy_id(), h8300_frame_base, h8300_frame_unwind, 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_kind_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_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_sw_breakpoint_from_kind(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), set_gdbarch_wchar_bit(), set_gdbarch_wchar_signed(), and TARGET_CHAR_BIT.
|
static |
Definition at line 289 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 1225 of file h8300-tdep.c.
References E_CCR_REGNUM, and E_PSEUDO_CCR_REGNUM.
Referenced by BP_MANIPULATION().
|
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 BP_MANIPULATION().
|
static |
Definition at line 739 of file h8300-tdep.c.
References _, regcache::arch(), gdbarch::byte_order, E_RET0_REGNUM, E_RET1_REGNUM, error(), gdbarch_byte_order(), 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 531 of file h8300-tdep.c.
References h8300_frame_cache::base, and h8300_frame_cache().
|
static |
Definition at line 425 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 501 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(), regnum, h8300_frame_cache::saved_regs, and h8300_frame_cache::saved_sp.
|
static |
Definition at line 487 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 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 1005 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 1082 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 BP_MANIPULATION().
|
static |
Definition at line 1193 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 BP_MANIPULATION().
|
static |
Definition at line 1212 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 BP_MANIPULATION().
|
static |
Definition at line 634 of file h8300-tdep.c.
References align_down(), align_up(), BINWORD, E_ARG0_REGNUM, E_ARGLAST_REGNUM, E_SP_REGNUM, extract_unsigned_integer(), gdbarch_byte_order(), offset, regcache_cooked_write_unsigned(), TYPE_LENGTH, value_contents(), value_type(), wordsize, write_memory(), and write_memory_unsigned_integer().
Referenced by BP_MANIPULATION().
|
static |
Definition at line 950 of file h8300-tdep.c.
References _, and internal_error().
Referenced by BP_MANIPULATION().
|
static |
Definition at line 936 of file h8300-tdep.c.
References gdb_assert, gdbarch_num_regs(), and regnum.
Referenced by BP_MANIPULATION().
Definition at line 1129 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 BP_MANIPULATION().
|
static |
Definition at line 896 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 BP_MANIPULATION().
Definition at line 545 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 BP_MANIPULATION().
|
static |
Definition at line 841 of file h8300-tdep.c.
References _, regcache::arch(), gdbarch::byte_order, E_RET0_REGNUM, E_RET1_REGNUM, error(), extract_unsigned_integer(), gdbarch_byte_order(), 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 BP_MANIPULATION().
|
static |
Definition at line 102 of file h8300-tdep.c.
References E_SP_REGNUM, and frame_unwind_register_unsigned().
Referenced by BP_MANIPULATION().
|
static |
Definition at line 808 of file h8300-tdep.c.
References TYPE_CODE, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_LENGTH, and value_type().
Referenced by h8300_return_value().
|
static |
Definition at line 776 of file h8300-tdep.c.
References _, regcache::arch(), gdbarch::byte_order, E_RET0_REGNUM, E_RET1_REGNUM, error(), gdbarch_byte_order(), regcache_cooked_read_unsigned(), store_unsigned_integer(), TYPE_CODE, TYPE_CODE_INT, and TYPE_LENGTH.
Referenced by h8300h_return_value().
|
static |
Definition at line 910 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 BP_MANIPULATION().
|
static |
Definition at line 870 of file h8300-tdep.c.
References regcache::arch(), gdbarch::byte_order, E_RET0_REGNUM, E_RET1_REGNUM, extract_unsigned_integer(), gdbarch_byte_order(), regcache_cooked_write_unsigned(), and TYPE_LENGTH.
Referenced by h8300h_return_value().
|
static |
Definition at line 822 of file h8300-tdep.c.
References TYPE_CODE, TYPE_CODE_INT, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_LENGTH, and value_type().
Referenced by h8300h_return_value().
|
static |
Definition at line 1233 of file h8300-tdep.c.
References E_CCR_REGNUM, E_EXR_REGNUM, E_PSEUDO_CCR_REGNUM, and E_PSEUDO_EXR_REGNUM.
Referenced by BP_MANIPULATION().
|
static |
Definition at line 969 of file h8300-tdep.c.
References _, and internal_error().
Referenced by BP_MANIPULATION().
|
static |
Definition at line 987 of file h8300-tdep.c.
References _, and internal_error().
Referenced by BP_MANIPULATION().
|
static |
Definition at line 1430 of file h8300-tdep.c.
References gdbarch_bfd_arch_info().
|
static |
Definition at line 1403 of file h8300-tdep.c.
References gdbarch_bfd_arch_info().
Referenced by h8300_register_type().
|
static |
Definition at line 1414 of file h8300-tdep.c.
References gdbarch_bfd_arch_info().
Referenced by h8300_print_register(), and h8300_print_registers_info().
|
static |
Definition at line 1423 of file h8300-tdep.c.
References gdbarch_bfd_arch_info().
Referenced by h8300_print_registers_info().
|
static |
Definition at line 1163 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 1181 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().
| constexpr gdb_byte h8300_break_insn[] = { 0x01, 0x80 } |
Definition at line 1243 of file h8300-tdep.c.
|
static |
Definition at line 537 of file h8300-tdep.c.
Referenced by BP_MANIPULATION().
|
static |
Definition at line 521 of file h8300-tdep.c.
Referenced by BP_MANIPULATION().
1.8.14