GDB (xrefs)
|
#include "defs.h"
#include "arch-utils.h"
#include "dis-asm.h"
#include "frame.h"
#include "frame-unwind.h"
#include "frame-base.h"
#include "trad-frame.h"
#include "gdbcmd.h"
#include "gdbcore.h"
#include "gdbtypes.h"
#include "inferior.h"
#include "objfiles.h"
#include "symfile.h"
#include "gdbarch.h"
#include "z80-tdep.h"
#include "features/z80.c"
Go to the source code of this file.
Classes | |
struct | z80_gdbarch_tdep |
struct | z80_unwind_cache |
struct | z80_insn_info |
Enumerations | |
enum | z80_instruction_type { insn_default , insn_z80 , insn_adl , insn_z80_ed , insn_adl_ed , insn_z80_ddfd , insn_adl_ddfd , insn_djnz_d , insn_jr_d , insn_jr_cc_d , insn_jp_nn , insn_jp_rr , insn_jp_cc_nn , insn_call_nn , insn_call_cc_nn , insn_rst_n , insn_ret , insn_ret_cc , insn_push_rr , insn_pop_rr , insn_dec_sp , insn_inc_sp , insn_ld_sp_nn , insn_ld_sp_6nn9 , insn_ld_sp_rr , insn_force_nop } |
enum | z80_ovly_index { Z80_VMA , Z80_OSIZE , Z80_MAPPED_TO_LMA } |
Functions | |
static const struct z80_insn_info * | z80_get_insn_info (struct gdbarch *gdbarch, const gdb_byte *buf, int *size) |
static const char * | z80_register_name (struct gdbarch *gdbarch, int regnum) |
static struct type * | z80_register_type (struct gdbarch *gdbarch, int reg_nr) |
static int | z80_is_pop_rr (const gdb_byte buf[], int *size) |
static int | z80_is_push_rr (const gdb_byte buf[], int *size) |
static int | z80_scan_prologue (struct gdbarch *gdbarch, CORE_ADDR pc_beg, CORE_ADDR pc_end, struct z80_unwind_cache *info) |
static CORE_ADDR | z80_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc) |
static enum return_value_convention | z80_return_value (struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf) |
static struct z80_unwind_cache * | z80_frame_unwind_cache (frame_info_ptr this_frame, void **this_prologue_cache) |
static void | z80_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id) |
static struct value * | z80_frame_prev_register (frame_info_ptr this_frame, void **this_prologue_cache, int regnum) |
static int | z80_breakpoint_kind_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr) |
static const gdb_byte * | z80_sw_breakpoint_from_kind (struct gdbarch *gdbarch, int kind, int *size) |
static std::vector< CORE_ADDR > | z80_software_single_step (struct regcache *regcache) |
static void | z80_free_overlay_region_table (void) |
static void | read_target_long_array (CORE_ADDR memaddr, unsigned int *myaddr, int len, int size, enum bfd_endian byte_order) |
static int | z80_read_overlay_region_table () |
static int | z80_overlay_update_1 (struct obj_section *osect) |
static void | z80_overlay_update (struct obj_section *osect) |
static int | z80_insn_is_call (struct gdbarch *gdbarch, CORE_ADDR addr) |
static int | z80_insn_is_ret (struct gdbarch *gdbarch, CORE_ADDR addr) |
static int | z80_insn_is_jump (struct gdbarch *gdbarch, CORE_ADDR addr) |
static struct gdbarch * | z80_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
Variables | |
static const char * | z80_reg_names [] |
static unsigned(* | cache_ovly_region_table )[3] = 0 |
static unsigned | cache_novly_regions |
static CORE_ADDR | cache_ovly_region_table_base = 0 |
static const struct frame_unwind | z80_frame_unwind |
static const struct z80_insn_info | ez80_main_insn_table [] |
static const struct z80_insn_info | ez80_adl_main_insn_table [] |
static const struct z80_insn_info | ez80_ed_insn_table [] |
static const struct z80_insn_info | ez80_adl_ed_insn_table [] |
static const struct z80_insn_info | ez80_ddfd_insn_table [] |
static const struct z80_insn_info | ez80_adl_ddfd_insn_table [] |
initialize_file_ftype | _initialize_z80_tdep |
enum z80_instruction_type |
Definition at line 112 of file z80-tdep.c.
enum z80_ovly_index |
Enumerator | |
---|---|
Z80_VMA | |
Z80_OSIZE | |
Z80_MAPPED_TO_LMA |
Definition at line 863 of file z80-tdep.c.
|
static |
Definition at line 882 of file z80-tdep.c.
References extract_unsigned_integer(), read_memory(), and size.
Referenced by z80_read_overlay_region_table().
|
static |
Definition at line 717 of file z80-tdep.c.
References lookup_minimal_symbol(), bound_minimal_symbol::minsym, and bound_minimal_symbol::value_address().
Referenced by z80_gdbarch_init().
|
static |
Definition at line 685 of file z80-tdep.c.
References z80_gdbarch_tdep::addr_length, extract_unsigned_integer(), frame_unwind_got_constant(), frame_unwind_got_optimized(), gdbarch_byte_order(), get_frame_arch(), gdbarch::info(), read_memory(), regnum, trad_frame_get_prev_register(), z80_frame_unwind_cache(), and Z80_PC_REGNUM.
|
static |
Definition at line 661 of file z80-tdep.c.
References frame_id_build(), func, get_frame_func(), and z80_frame_unwind_cache().
|
static |
Definition at line 558 of file z80-tdep.c.
References z80_gdbarch_tdep::addr_length, extract_unsigned_integer(), FRAME_OBSTACK_ZALLOC, gdbarch_byte_order(), gdbarch_num_regs(), gdbarch_ptr_bit(), get_frame_arch(), get_frame_func(), get_frame_pc(), get_frame_register_unsigned(), gdbarch::info(), lookup_minimal_symbol(), bound_minimal_symbol::minsym, read_memory(), trad_frame_alloc_saved_regs(), bound_minimal_symbol::value_address(), Z80_IX_REGNUM, Z80_PC_REGNUM, z80_scan_prologue(), and Z80_SP_REGNUM.
Referenced by z80_frame_prev_register(), and z80_frame_this_id().
|
static |
Definition at line 869 of file z80-tdep.c.
References cache_novly_regions, cache_ovly_region_table, cache_ovly_region_table_base, and xfree().
Referenced by z80_read_overlay_region_table().
|
static |
Definition at line 1082 of file z80-tdep.c.
References z80_gdbarch_tdep::addr_length, arches, core_addr_lessthan(), EZ80_NUM_REGS, floatformats_ieee_single, frame_unwind_append_unwinder(), z80_gdbarch_tdep::func_void_type, gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_bfd_arch_info(), gdbarch_list_lookup_by_info(), registry< T >::get(), init_pointer_type(), make_function_type(), type_allocator::new_type(), gdbarch_list::next, z80_gdbarch_tdep::pc_type, set_gdbarch_addr_bit(), set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_double_bit(), set_gdbarch_double_format(), set_gdbarch_float_bit(), set_gdbarch_float_format(), set_gdbarch_inner_than(), set_gdbarch_insn_is_call(), set_gdbarch_insn_is_jump(), set_gdbarch_insn_is_ret(), set_gdbarch_int_bit(), set_gdbarch_long_bit(), set_gdbarch_long_double_bit(), set_gdbarch_long_double_format(), set_gdbarch_max_insn_length(), set_gdbarch_num_regs(), set_gdbarch_overlay_update(), set_gdbarch_pc_regnum(), set_gdbarch_ptr_bit(), set_gdbarch_register_name(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_skip_prologue(), set_gdbarch_software_single_step(), set_gdbarch_sp_regnum(), set_gdbarch_sw_breakpoint_from_kind(), tdesc_data, tdesc_data_alloc(), tdesc_find_feature(), tdesc_has_registers(), tdesc_numbered_register(), tdesc_use_registers(), tdesc_z80, z80_gdbarch_tdep::void_type, z80_breakpoint_kind_from_pc(), z80_frame_unwind, z80_insn_is_call(), z80_insn_is_jump(), z80_insn_is_ret(), Z80_NUM_REGS, z80_overlay_update(), Z80_PC_REGNUM, z80_reg_names, z80_register_name(), z80_register_type(), z80_return_value(), z80_skip_prologue(), z80_software_single_step(), Z80_SP_REGNUM, and z80_sw_breakpoint_from_kind().
|
static |
Definition at line 1391 of file z80-tdep.c.
References code, ez80_adl_ddfd_insn_table, ez80_adl_ed_insn_table, ez80_adl_main_insn_table, ez80_ddfd_insn_table, ez80_ed_insn_table, ez80_main_insn_table, gdbarch_bfd_arch_info(), insn_adl, insn_adl_ddfd, insn_adl_ed, insn_force_nop, insn_z80, insn_z80_ddfd, insn_z80_ed, and size.
Referenced by z80_insn_is_call(), z80_insn_is_jump(), z80_insn_is_ret(), and z80_software_single_step().
|
static |
Definition at line 1006 of file z80-tdep.c.
References insn_call_cc_nn, insn_call_nn, insn_rst_n, read_memory(), size, and z80_get_insn_info().
Referenced by z80_gdbarch_init().
|
static |
Definition at line 1045 of file z80-tdep.c.
References insn_djnz_d, insn_jp_cc_nn, insn_jp_nn, insn_jp_rr, insn_jr_cc_d, insn_jr_d, read_memory(), size, and z80_get_insn_info().
Referenced by z80_gdbarch_init().
|
static |
Definition at line 1026 of file z80-tdep.c.
References insn_ret, insn_ret_cc, read_memory(), size, and z80_get_insn_info().
Referenced by z80_gdbarch_init().
|
static |
Definition at line 188 of file z80-tdep.c.
References size, Z80_AF_REGNUM, Z80_BC_REGNUM, Z80_DE_REGNUM, Z80_HL_REGNUM, Z80_IX_REGNUM, and Z80_IY_REGNUM.
Referenced by z80_scan_prologue().
|
static |
Definition at line 216 of file z80-tdep.c.
References size, Z80_AF_REGNUM, Z80_BC_REGNUM, Z80_DE_REGNUM, Z80_HL_REGNUM, Z80_IX_REGNUM, and Z80_IY_REGNUM.
Referenced by z80_scan_prologue().
|
static |
Definition at line 976 of file z80-tdep.c.
References cache_novly_regions, cache_ovly_region_table, current_program_space, program_space::objfiles(), section_is_overlay(), objfile::sections(), Z80_MAPPED_TO_LMA, z80_overlay_update_1(), z80_read_overlay_region_table(), and Z80_VMA.
Referenced by z80_gdbarch_init().
|
static |
Definition at line 946 of file z80-tdep.c.
References cache_novly_regions, cache_ovly_region_table, current_program_space, program_space::objfiles(), section_is_overlay(), objfile::sections(), obj_section::the_bfd_section, Z80_MAPPED_TO_LMA, and Z80_VMA.
Referenced by z80_overlay_update().
|
static |
Definition at line 895 of file z80-tdep.c.
References objfile::arch(), cache_novly_regions, cache_ovly_region_table, cache_ovly_region_table_base, gdbarch_byte_order(), gdbarch_long_bit(), lookup_bound_minimal_symbol(), lookup_minimal_symbol(), bound_minimal_symbol::minsym, bound_minimal_symbol::objfile, overlay_debugging, ovly_off, read_memory_integer(), read_target_long_array(), bound_minimal_symbol::value_address(), xmalloc(), and z80_free_overlay_region_table().
Referenced by z80_overlay_update().
|
static |
Definition at line 168 of file z80-tdep.c.
References regnum, and z80_reg_names.
Referenced by z80_gdbarch_init().
Definition at line 180 of file z80-tdep.c.
References builtin_type::builtin_data_ptr, and builtin_type().
Referenced by z80_gdbarch_init().
|
static |
Definition at line 520 of file z80-tdep.c.
References type::code(), readable_regcache::cooked_read_part(), regcache::cooked_write_part(), type::length(), RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, Z80_DE_REGNUM, and Z80_HL_REGNUM.
Referenced by z80_gdbarch_init().
|
static |
Definition at line 307 of file z80-tdep.c.
References z80_gdbarch_tdep::addr_length, extract_signed_integer(), extract_unsigned_integer(), gdbarch_byte_order(), lookup_minimal_symbol(), bound_minimal_symbol::minsym, read_memory(), size, value, bound_minimal_symbol::value_address(), Z80_AF_REGNUM, Z80_BC_REGNUM, Z80_DE_REGNUM, Z80_HL_REGNUM, z80_is_pop_rr(), z80_is_push_rr(), Z80_IX_REGNUM, and Z80_IY_REGNUM.
Referenced by z80_frame_unwind_cache(), and z80_skip_prologue().
|
static |
Definition at line 467 of file z80-tdep.c.
References symtab::compunit(), compunit_symtab::debugformat(), find_pc_line(), find_pc_partial_function(), skip_prologue_using_sal(), symtab_and_line::symtab, Z80_NUM_REGS, and z80_scan_prologue().
Referenced by z80_gdbarch_init().
|
static |
Definition at line 771 of file z80-tdep.c.
References readable_regcache::cooked_read(), gdbarch_bfd_arch_info(), gdbarch::info(), insn_call_cc_nn, insn_call_nn, insn_djnz_d, insn_jp_cc_nn, insn_jp_nn, insn_jp_rr, insn_jr_cc_d, insn_jr_d, insn_ret, insn_ret_cc, insn_rst_n, read_memory(), size, target_gdbarch(), Z80_AF_REGNUM, Z80_BC_REGNUM, z80_get_insn_info(), Z80_HL_REGNUM, Z80_IX_REGNUM, Z80_IY_REGNUM, Z80_PC_REGNUM, and Z80_SP_REGNUM.
Referenced by z80_gdbarch_init().
|
static |
Definition at line 742 of file z80-tdep.c.
References z80_gdbarch_tdep::addr_length, and size.
Referenced by z80_gdbarch_init().
|
extern |
Definition at line 1462 of file z80-tdep.c.
|
static |
Definition at line 861 of file z80-tdep.c.
Referenced by z80_free_overlay_region_table(), z80_overlay_update(), z80_overlay_update_1(), and z80_read_overlay_region_table().
|
static |
Definition at line 860 of file z80-tdep.c.
Referenced by z80_free_overlay_region_table(), z80_overlay_update(), z80_overlay_update_1(), and z80_read_overlay_region_table().
|
static |
Definition at line 862 of file z80-tdep.c.
Referenced by z80_free_overlay_region_table(), and z80_read_overlay_region_table().
|
static |
Definition at line 1360 of file z80-tdep.c.
Referenced by z80_get_insn_info().
|
static |
Definition at line 1311 of file z80-tdep.c.
Referenced by z80_get_insn_info().
|
static |
Definition at line 1242 of file z80-tdep.c.
Referenced by z80_get_insn_info().
|
static |
Definition at line 1329 of file z80-tdep.c.
Referenced by z80_get_insn_info().
|
static |
Definition at line 1291 of file z80-tdep.c.
Referenced by z80_get_insn_info().
|
static |
Definition at line 1195 of file z80-tdep.c.
Referenced by z80_get_insn_info().
|
static |
Definition at line 1067 of file z80-tdep.c.
Referenced by z80_gdbarch_init().
|
static |
Definition at line 155 of file z80-tdep.c.
Referenced by z80_gdbarch_init(), and z80_register_name().