GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Enumerations | Functions | Variables
m68hc11-tdep.c File Reference
#include "defs.h"
#include "frame.h"
#include "frame-unwind.h"
#include "frame-base.h"
#include "dwarf2/frame.h"
#include "trad-frame.h"
#include "symtab.h"
#include "gdbtypes.h"
#include "gdbcmd.h"
#include "gdbcore.h"
#include "value.h"
#include "inferior.h"
#include "dis-asm.h"
#include "symfile.h"
#include "objfiles.h"
#include "arch-utils.h"
#include "regcache.h"
#include "reggroups.h"
#include "gdbarch.h"
#include "target.h"
#include "opcode/m68hc11.h"
#include "elf/m68hc11.h"
#include "elf-bfd.h"

Go to the source code of this file.

Classes

struct  m68gc11_gdbarch_tdep
 
struct  m68hc11_unwind_cache
 
struct  m68hc11_soft_reg
 
struct  insn_sequence
 

Macros

#define MSYMBOL_SET_RTC(msym)    (msym)->set_target_flag_1 (true)
 
#define MSYMBOL_SET_RTI(msym)    (msym)->set_target_flag_2 (true)
 
#define MSYMBOL_IS_RTC(msym)    (msym)->target_flag_1 ()
 
#define MSYMBOL_IS_RTI(msym)    (msym)->target_flag_2 ()
 
#define HARD_X_REGNUM   0
 
#define HARD_D_REGNUM   1
 
#define HARD_Y_REGNUM   2
 
#define HARD_SP_REGNUM   3
 
#define HARD_PC_REGNUM   4
 
#define HARD_A_REGNUM   5
 
#define HARD_B_REGNUM   6
 
#define HARD_CCR_REGNUM   7
 
#define HARD_PAGE_REGNUM   8
 
#define M68HC11_LAST_HARD_REG   (HARD_PAGE_REGNUM)
 
#define SOFT_Z_REGNUM   8
 
#define SOFT_FP_REGNUM   9
 
#define SOFT_TMP_REGNUM   10
 
#define SOFT_ZS_REGNUM   11
 
#define SOFT_XY_REGNUM   12
 
#define SOFT_UNUSED_REGNUM   13
 
#define SOFT_D1_REGNUM   14
 
#define SOFT_D32_REGNUM   (SOFT_D1_REGNUM+31)
 
#define M68HC11_MAX_SOFT_REGS   32
 
#define M68HC11_NUM_REGS   (M68HC11_LAST_HARD_REG + 1)
 
#define M68HC11_NUM_PSEUDO_REGS   (M68HC11_MAX_SOFT_REGS+5)
 
#define M68HC11_ALL_REGS   (M68HC11_NUM_REGS+M68HC11_NUM_PSEUDO_REGS)
 
#define M68HC11_REG_SIZE   (2)
 
#define M68HC12_NUM_REGS   (9)
 
#define M68HC12_NUM_PSEUDO_REGS   ((M68HC11_MAX_SOFT_REGS+5)+1-1)
 
#define M68HC12_HARD_PC_REGNUM   (SOFT_D32_REGNUM+1)
 
#define M68HC11_FP_ADDR   soft_regs[SOFT_FP_REGNUM].addr
 
#define MAX_CODES   12
 
#define M6811_OP_PAGE2   (0x18)
 
#define M6811_OP_LDX   (0xde)
 
#define M6811_OP_LDX_EXT   (0xfe)
 
#define M6811_OP_PSHX   (0x3c)
 
#define M6811_OP_STS   (0x9f)
 
#define M6811_OP_STS_EXT   (0xbf)
 
#define M6811_OP_TSX   (0x30)
 
#define M6811_OP_XGDX   (0x8f)
 
#define M6811_OP_ADDD   (0xc3)
 
#define M6811_OP_TXS   (0x35)
 
#define M6811_OP_DES   (0x34)
 
#define M6812_OP_PAGE2   (0x18)
 
#define M6812_OP_MOVW   (0x01)
 
#define M6812_PB_PSHW   (0xae)
 
#define M6812_OP_STS   (0x5f)
 
#define M6812_OP_STS_EXT   (0x7f)
 
#define M6812_OP_LEAS   (0x1b)
 
#define M6812_OP_PSHX   (0x34)
 
#define M6812_OP_PSHY   (0x35)
 
#define OP_DIRECT   (0x100) /* 8-byte direct addressing. */
 
#define OP_IMM_LOW   (0x200) /* Low part of 16-bit constant/address. */
 
#define OP_IMM_HIGH   (0x300) /* High part of 16-bit constant/address. */
 
#define OP_PBYTE   (0x400) /* 68HC12 indexed operand. */
 

Enumerations

enum  insn_return_kind { RETURN_RTS , RETURN_RTC , RETURN_RTI }
 

Functions

static int stack_correction (gdbarch *arch)
 
static int use_page_register (gdbarch *arch)
 
static void m68hc11_get_register_info (struct m68hc11_soft_reg *reg, const char *name)
 
static void m68hc11_initialize_register_info (void)
 
static int m68hc11_which_soft_register (CORE_ADDR addr)
 
static enum register_status m68hc11_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache, int regno, gdb_byte *buf)
 
static void m68hc11_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int regno, const gdb_byte *buf)
 
static const char * m68hc11_register_name (struct gdbarch *gdbarch, int reg_nr)
 
typedef BP_MANIPULATION (m68hc11_break_insn)
 
static struct insn_sequencem68hc11_analyze_instruction (struct gdbarch *gdbarch, struct insn_sequence *seq, CORE_ADDR pc, CORE_ADDR *val)
 
static enum insn_return_kind m68hc11_get_return_insn (CORE_ADDR pc)
 
static CORE_ADDR m68hc11_scan_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR current_pc, struct m68hc11_unwind_cache *info)
 
static CORE_ADDR m68hc11_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static struct m68hc11_unwind_cachem68hc11_frame_unwind_cache (frame_info_ptr this_frame, void **this_prologue_cache)
 
static void m68hc11_frame_this_id (frame_info_ptr this_frame, void **this_prologue_cache, struct frame_id *this_id)
 
static struct valuem68hc11_frame_prev_register (frame_info_ptr this_frame, void **this_prologue_cache, int regnum)
 
static CORE_ADDR m68hc11_frame_base_address (frame_info_ptr this_frame, void **this_cache)
 
static CORE_ADDR m68hc11_frame_args_address (frame_info_ptr this_frame, void **this_cache)
 
static struct frame_id m68hc11_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame)
 
static void m68hc11_print_register (struct gdbarch *gdbarch, struct ui_file *file, frame_info_ptr frame, int regno)
 
static void m68hc11_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file, frame_info_ptr frame, int regno, int cpregs)
 
static CORE_ADDR m68hc11_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, function_call_return_method return_method, CORE_ADDR struct_addr)
 
static struct typem68hc11_register_type (struct gdbarch *gdbarch, int reg_nr)
 
static void m68hc11_store_return_value (struct type *type, struct regcache *regcache, const gdb_byte *valbuf)
 
static void m68hc11_extract_return_value (struct type *type, struct regcache *regcache, void *valbuf)
 
static enum return_value_convention m68hc11_return_value (struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
 
static void m68hc11_elf_make_msymbol_special (asymbol *sym, struct minimal_symbol *msym)
 
static void m68hc11_init_reggroups (void)
 
static void m68hc11_add_reggroups (struct gdbarch *gdbarch)
 
static int m68hc11_register_reggroup_p (struct gdbarch *gdbarch, int regnum, const struct reggroup *group)
 
static struct gdbarchm68hc11_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 
void _initialize_m68hc11_tdep ()
 

Variables

static const char * m68hc11_register_names []
 
static struct m68hc11_soft_reg soft_regs [M68HC11_ALL_REGS]
 
static int soft_min_addr
 
static int soft_max_addr
 
static int soft_reg_initialized = 0
 
constexpr gdb_byte m68hc11_break_insn [] = {0x0}
 
static struct insn_sequence m6811_prologue []
 
static struct insn_sequence m6812_prologue []
 
static const struct frame_unwind m68hc11_frame_unwind
 
static const struct frame_base m68hc11_frame_base
 
static const reggroupm68hc11_soft_reggroup
 
static const reggroupm68hc11_hard_reggroup
 

Macro Definition Documentation

◆ HARD_A_REGNUM

#define HARD_A_REGNUM   5

Definition at line 87 of file m68hc11-tdep.c.

Referenced by m68hc11_print_register(), and m68hc11_register_type().

◆ HARD_B_REGNUM

#define HARD_B_REGNUM   6

Definition at line 88 of file m68hc11-tdep.c.

Referenced by m68hc11_print_register(), and m68hc11_register_type().

◆ HARD_CCR_REGNUM

#define HARD_CCR_REGNUM   7

◆ HARD_D_REGNUM

#define HARD_D_REGNUM   1

◆ HARD_PAGE_REGNUM

#define HARD_PAGE_REGNUM   8

◆ HARD_PC_REGNUM

#define HARD_PC_REGNUM   4

◆ HARD_SP_REGNUM

#define HARD_SP_REGNUM   3

◆ HARD_X_REGNUM

#define HARD_X_REGNUM   0

◆ HARD_Y_REGNUM

#define HARD_Y_REGNUM   2

◆ M6811_OP_ADDD

#define M6811_OP_ADDD   (0xc3)

◆ M6811_OP_DES

#define M6811_OP_DES   (0x34)

◆ M6811_OP_LDX

#define M6811_OP_LDX   (0xde)

◆ M6811_OP_LDX_EXT

#define M6811_OP_LDX_EXT   (0xfe)

◆ M6811_OP_PAGE2

#define M6811_OP_PAGE2   (0x18)

◆ M6811_OP_PSHX

#define M6811_OP_PSHX   (0x3c)

◆ M6811_OP_STS

#define M6811_OP_STS   (0x9f)

◆ M6811_OP_STS_EXT

#define M6811_OP_STS_EXT   (0xbf)

◆ M6811_OP_TSX

#define M6811_OP_TSX   (0x30)

◆ M6811_OP_TXS

#define M6811_OP_TXS   (0x35)

◆ M6811_OP_XGDX

#define M6811_OP_XGDX   (0x8f)

◆ M6812_OP_LEAS

#define M6812_OP_LEAS   (0x1b)

◆ M6812_OP_MOVW

#define M6812_OP_MOVW   (0x01)

◆ M6812_OP_PAGE2

#define M6812_OP_PAGE2   (0x18)

◆ M6812_OP_PSHX

#define M6812_OP_PSHX   (0x34)

◆ M6812_OP_PSHY

#define M6812_OP_PSHY   (0x35)

◆ M6812_OP_STS

#define M6812_OP_STS   (0x5f)

◆ M6812_OP_STS_EXT

#define M6812_OP_STS_EXT   (0x7f)

◆ M6812_PB_PSHW

#define M6812_PB_PSHW   (0xae)

◆ M68HC11_ALL_REGS

#define M68HC11_ALL_REGS   (M68HC11_NUM_REGS+M68HC11_NUM_PSEUDO_REGS)

◆ M68HC11_FP_ADDR

#define M68HC11_FP_ADDR   soft_regs[SOFT_FP_REGNUM].addr

Definition at line 201 of file m68hc11-tdep.c.

◆ M68HC11_LAST_HARD_REG

#define M68HC11_LAST_HARD_REG   (HARD_PAGE_REGNUM)

Definition at line 97 of file m68hc11-tdep.c.

Referenced by m68hc11_register_name().

◆ M68HC11_MAX_SOFT_REGS

#define M68HC11_MAX_SOFT_REGS   32

Definition at line 114 of file m68hc11-tdep.c.

Referenced by m68hc11_initialize_register_info().

◆ M68HC11_NUM_PSEUDO_REGS

#define M68HC11_NUM_PSEUDO_REGS   (M68HC11_MAX_SOFT_REGS+5)

Definition at line 117 of file m68hc11-tdep.c.

Referenced by m68hc11_gdbarch_init().

◆ M68HC11_NUM_REGS

#define M68HC11_NUM_REGS   (M68HC11_LAST_HARD_REG + 1)

Definition at line 116 of file m68hc11-tdep.c.

Referenced by m68hc11_gdbarch_init().

◆ M68HC11_REG_SIZE

#define M68HC11_REG_SIZE   (2)

Definition at line 120 of file m68hc11-tdep.c.

Referenced by m68hc11_extract_return_value().

◆ M68HC12_HARD_PC_REGNUM

#define M68HC12_HARD_PC_REGNUM   (SOFT_D32_REGNUM+1)

◆ M68HC12_NUM_PSEUDO_REGS

#define M68HC12_NUM_PSEUDO_REGS   ((M68HC11_MAX_SOFT_REGS+5)+1-1)

Definition at line 123 of file m68hc11-tdep.c.

Referenced by m68hc11_gdbarch_init().

◆ M68HC12_NUM_REGS

#define M68HC12_NUM_REGS   (9)

Definition at line 122 of file m68hc11-tdep.c.

Referenced by m68hc11_gdbarch_init().

◆ MAX_CODES

#define MAX_CODES   12

◆ MSYMBOL_IS_RTC

#define MSYMBOL_IS_RTC ( msym)     (msym)->target_flag_1 ()

Definition at line 66 of file m68hc11-tdep.c.

Referenced by m68hc11_get_return_insn().

◆ MSYMBOL_IS_RTI

#define MSYMBOL_IS_RTI ( msym)     (msym)->target_flag_2 ()

Definition at line 69 of file m68hc11-tdep.c.

Referenced by m68hc11_get_return_insn().

◆ MSYMBOL_SET_RTC

#define MSYMBOL_SET_RTC ( msym)     (msym)->set_target_flag_1 (true)

Definition at line 60 of file m68hc11-tdep.c.

Referenced by m68hc11_elf_make_msymbol_special().

◆ MSYMBOL_SET_RTI

#define MSYMBOL_SET_RTI ( msym)     (msym)->set_target_flag_2 (true)

Definition at line 63 of file m68hc11-tdep.c.

Referenced by m68hc11_elf_make_msymbol_special().

◆ OP_DIRECT

#define OP_DIRECT   (0x100) /* 8-byte direct addressing. */

◆ OP_IMM_HIGH

#define OP_IMM_HIGH   (0x300) /* High part of 16-bit constant/address. */

◆ OP_IMM_LOW

#define OP_IMM_LOW   (0x200) /* Low part of 16-bit constant/address. */

◆ OP_PBYTE

#define OP_PBYTE   (0x400) /* 68HC12 indexed operand. */

◆ SOFT_D1_REGNUM

#define SOFT_D1_REGNUM   14

◆ SOFT_D32_REGNUM

#define SOFT_D32_REGNUM   (SOFT_D1_REGNUM+31)

Definition at line 113 of file m68hc11-tdep.c.

◆ SOFT_FP_REGNUM

#define SOFT_FP_REGNUM   9

◆ SOFT_TMP_REGNUM

#define SOFT_TMP_REGNUM   10

◆ SOFT_UNUSED_REGNUM

#define SOFT_UNUSED_REGNUM   13

Definition at line 111 of file m68hc11-tdep.c.

◆ SOFT_XY_REGNUM

#define SOFT_XY_REGNUM   12

◆ SOFT_Z_REGNUM

#define SOFT_Z_REGNUM   8

Definition at line 102 of file m68hc11-tdep.c.

Referenced by m68hc11_initialize_register_info().

◆ SOFT_ZS_REGNUM

#define SOFT_ZS_REGNUM   11

Enumeration Type Documentation

◆ insn_return_kind

Enumerator
RETURN_RTS 
RETURN_RTC 
RETURN_RTI 

Definition at line 72 of file m68hc11-tdep.c.

Function Documentation

◆ _initialize_m68hc11_tdep()

void _initialize_m68hc11_tdep ( )

◆ BP_MANIPULATION()

typedef BP_MANIPULATION ( m68hc11_break_insn )

Definition at line 407 of file m68hc11-tdep.c.

◆ m68hc11_add_reggroups()

static void m68hc11_add_reggroups ( struct gdbarch * gdbarch)
static

Definition at line 1357 of file m68hc11-tdep.c.

References m68hc11_hard_reggroup, m68hc11_soft_reggroup, and reggroup_add().

Referenced by m68hc11_gdbarch_init().

◆ m68hc11_analyze_instruction()

static struct insn_sequence * m68hc11_analyze_instruction ( struct gdbarch * gdbarch,
struct insn_sequence * seq,
CORE_ADDR pc,
CORE_ADDR * val )
static

◆ m68hc11_dummy_id()

static struct frame_id m68hc11_dummy_id ( struct gdbarch * gdbarch,
frame_info_ptr this_frame )
static

◆ m68hc11_elf_make_msymbol_special()

static void m68hc11_elf_make_msymbol_special ( asymbol * sym,
struct minimal_symbol * msym )
static

Definition at line 1331 of file m68hc11-tdep.c.

References flags, MSYMBOL_SET_RTC, and MSYMBOL_SET_RTI.

Referenced by m68hc11_gdbarch_init().

◆ m68hc11_extract_return_value()

static void m68hc11_extract_return_value ( struct type * type,
struct regcache * regcache,
void * valbuf )
static

◆ m68hc11_frame_args_address()

static CORE_ADDR m68hc11_frame_args_address ( frame_info_ptr this_frame,
void ** this_cache )
static

Definition at line 959 of file m68hc11-tdep.c.

References m68hc11_frame_unwind_cache(), RETURN_RTC, and RETURN_RTI.

◆ m68hc11_frame_base_address()

static CORE_ADDR m68hc11_frame_base_address ( frame_info_ptr this_frame,
void ** this_cache )
static

Definition at line 950 of file m68hc11-tdep.c.

References m68hc11_frame_unwind_cache().

◆ m68hc11_frame_prev_register()

static struct value * m68hc11_frame_prev_register ( frame_info_ptr this_frame,
void ** this_prologue_cache,
int regnum )
static

◆ m68hc11_frame_this_id()

static void m68hc11_frame_this_id ( frame_info_ptr this_frame,
void ** this_prologue_cache,
struct frame_id * this_id )
static

◆ m68hc11_frame_unwind_cache()

static struct m68hc11_unwind_cache * m68hc11_frame_unwind_cache ( frame_info_ptr this_frame,
void ** this_prologue_cache )
static

◆ m68hc11_gdbarch_init()

static struct gdbarch * m68hc11_gdbarch_init ( struct gdbarch_info info,
struct gdbarch_list * arches )
static

Definition at line 1396 of file m68hc11-tdep.c.

References arches, core_addr_lessthan(), dwarf2_append_unwinders(), m68gc11_gdbarch_tdep::elf_flags, floatformats_ieee_double, floatformats_ieee_single, frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_alloc(), gdbarch_list_lookup_by_info(), HARD_PC_REGNUM, HARD_SP_REGNUM, gdbarch::info(), m6811_prologue, m6812_prologue, m68hc11_add_reggroups(), m68hc11_dummy_id(), m68hc11_elf_make_msymbol_special(), m68hc11_frame_base, m68hc11_frame_unwind, M68HC11_NUM_PSEUDO_REGS, M68HC11_NUM_REGS, m68hc11_print_registers_info(), m68hc11_pseudo_register_read(), m68hc11_pseudo_register_write(), m68hc11_push_dummy_call(), m68hc11_register_name(), m68hc11_register_reggroup_p(), m68hc11_register_type(), m68hc11_return_value(), m68hc11_skip_prologue(), M68HC12_HARD_PC_REGNUM, M68HC12_NUM_PSEUDO_REGS, M68HC12_NUM_REGS, m68gc11_gdbarch_tdep::prologue, 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_elf_make_msymbol_special(), set_gdbarch_float_bit(), set_gdbarch_fp0_regnum(), set_gdbarch_inner_than(), set_gdbarch_int_bit(), set_gdbarch_long_bit(), set_gdbarch_long_double_bit(), 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_reggroup_p(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_sw_breakpoint_from_kind(), soft_reg_initialized, m68gc11_gdbarch_tdep::stack_correction, and m68gc11_gdbarch_tdep::use_page_register.

Referenced by _initialize_m68hc11_tdep().

◆ m68hc11_get_register_info()

static void m68hc11_get_register_info ( struct m68hc11_soft_reg * reg,
const char * name )
static

◆ m68hc11_get_return_insn()

static enum insn_return_kind m68hc11_get_return_insn ( CORE_ADDR pc)
static

◆ m68hc11_init_reggroups()

static void m68hc11_init_reggroups ( void )
static

◆ m68hc11_initialize_register_info()

static void m68hc11_initialize_register_info ( void )
static

◆ m68hc11_print_register()

static void m68hc11_print_register ( struct gdbarch * gdbarch,
struct ui_file * file,
frame_info_ptr frame,
int regno )
static

◆ m68hc11_print_registers_info()

static void m68hc11_print_registers_info ( struct gdbarch * gdbarch,
struct ui_file * file,
frame_info_ptr frame,
int regno,
int cpregs )
static

◆ m68hc11_pseudo_register_read()

static enum register_status m68hc11_pseudo_register_read ( struct gdbarch * gdbarch,
readable_regcache * regcache,
int regno,
gdb_byte * buf )
static

◆ m68hc11_pseudo_register_write()

static void m68hc11_pseudo_register_write ( struct gdbarch * gdbarch,
struct regcache * regcache,
int regno,
const gdb_byte * buf )
static

◆ m68hc11_push_dummy_call()

static CORE_ADDR m68hc11_push_dummy_call ( struct gdbarch * gdbarch,
struct value * function,
struct regcache * regcache,
CORE_ADDR bp_addr,
int nargs,
struct value ** args,
CORE_ADDR sp,
function_call_return_method return_method,
CORE_ADDR struct_addr )
static

◆ m68hc11_register_name()

static const char * m68hc11_register_name ( struct gdbarch * gdbarch,
int reg_nr )
static

◆ m68hc11_register_reggroup_p()

static int m68hc11_register_reggroup_p ( struct gdbarch * gdbarch,
int regnum,
const struct reggroup * group )
static

◆ m68hc11_register_type()

static struct type * m68hc11_register_type ( struct gdbarch * gdbarch,
int reg_nr )
static

◆ m68hc11_return_value()

static enum return_value_convention m68hc11_return_value ( struct gdbarch * gdbarch,
struct value * function,
struct type * valtype,
struct regcache * regcache,
gdb_byte * readbuf,
const gdb_byte * writebuf )
static

◆ m68hc11_scan_prologue()

static CORE_ADDR m68hc11_scan_prologue ( struct gdbarch * gdbarch,
CORE_ADDR pc,
CORE_ADDR current_pc,
struct m68hc11_unwind_cache * info )
static

◆ m68hc11_skip_prologue()

static CORE_ADDR m68hc11_skip_prologue ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ m68hc11_store_return_value()

static void m68hc11_store_return_value ( struct type * type,
struct regcache * regcache,
const gdb_byte * valbuf )
static

◆ m68hc11_which_soft_register()

static int m68hc11_which_soft_register ( CORE_ADDR addr)
static

Definition at line 274 of file m68hc11-tdep.c.

References M68HC11_ALL_REGS, name, SOFT_FP_REGNUM, soft_max_addr, and soft_regs.

Referenced by m68hc11_scan_prologue().

◆ stack_correction()

static int stack_correction ( gdbarch * arch)
static

◆ use_page_register()

static int use_page_register ( gdbarch * arch)
static

Variable Documentation

◆ m6811_prologue

struct insn_sequence m6811_prologue[]
static

Definition at line 461 of file m68hc11-tdep.c.

Referenced by m68hc11_gdbarch_init().

◆ m6812_prologue

struct insn_sequence m6812_prologue[]
static
Initial value:
= {
{ P_SET_FRAME, 2, { M6812_OP_STS, OP_DIRECT } },
{ P_SET_FRAME, 3, { M6812_OP_STS_EXT, OP_IMM_HIGH, OP_IMM_LOW } },
{ P_LOCAL_N, 2, { M6812_OP_LEAS, OP_PBYTE } },
{ P_LOCAL_2, 1, { M6812_OP_PSHX } },
{ P_LOCAL_2, 1, { M6812_OP_PSHY } },
{ P_LAST, 0 }
}
#define M6812_OP_PAGE2
#define M6812_OP_MOVW
#define OP_DIRECT
#define M6812_OP_LEAS
#define OP_IMM_HIGH
#define OP_IMM_LOW
#define M6812_OP_PSHY
#define M6812_OP_STS
#define OP_PBYTE
#define M6812_PB_PSHW
#define M6812_OP_STS_EXT
#define M6812_OP_PSHX

Definition at line 495 of file m68hc11-tdep.c.

Referenced by m68hc11_gdbarch_init().

◆ m68hc11_break_insn

constexpr gdb_byte m68hc11_break_insn[] = {0x0}
constexpr

Definition at line 405 of file m68hc11-tdep.c.

◆ m68hc11_frame_base

const struct frame_base m68hc11_frame_base
static
Initial value:
= {
}
static CORE_ADDR m68hc11_frame_base_address(frame_info_ptr this_frame, void **this_cache)
static CORE_ADDR m68hc11_frame_args_address(frame_info_ptr this_frame, void **this_cache)
static const struct frame_unwind m68hc11_frame_unwind

Definition at line 974 of file m68hc11-tdep.c.

Referenced by m68hc11_gdbarch_init().

◆ m68hc11_frame_unwind

const struct frame_unwind m68hc11_frame_unwind
static
Initial value:
= {
"m68hc11 prologue",
NULL,
}
int default_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
enum unwind_stop_reason default_frame_unwind_stop_reason(frame_info_ptr this_frame, void **this_cache)
@ NORMAL_FRAME
Definition frame.h:187
static struct value * m68hc11_frame_prev_register(frame_info_ptr this_frame, void **this_prologue_cache, int regnum)
static void m68hc11_frame_this_id(frame_info_ptr this_frame, void **this_prologue_cache, struct frame_id *this_id)

Definition at line 939 of file m68hc11-tdep.c.

Referenced by m68hc11_gdbarch_init().

◆ m68hc11_hard_reggroup

const reggroup* m68hc11_hard_reggroup
static

◆ m68hc11_register_names

const char* m68hc11_register_names[]
static
Initial value:
=
{
"x", "d", "y", "sp", "pc", "a", "b",
"ccr", "page", "frame","tmp", "zs", "xy", 0,
"d1", "d2", "d3", "d4", "d5", "d6", "d7",
"d8", "d9", "d10", "d11", "d12", "d13", "d14",
"d15", "d16", "d17", "d18", "d19", "d20", "d21",
"d22", "d23", "d24", "d25", "d26", "d27", "d28",
"d29", "d30", "d31", "d32"
}

Definition at line 182 of file m68hc11-tdep.c.

Referenced by m68hc11_register_name().

◆ m68hc11_soft_reggroup

const reggroup* m68hc11_soft_reggroup
static

◆ soft_max_addr

int soft_max_addr
static

◆ soft_min_addr

int soft_min_addr
static

Definition at line 203 of file m68hc11-tdep.c.

Referenced by m68hc11_get_register_info(), and m68hc11_initialize_register_info().

◆ soft_reg_initialized

int soft_reg_initialized = 0
static

Definition at line 205 of file m68hc11-tdep.c.

Referenced by m68hc11_gdbarch_init(), and m68hc11_initialize_register_info().

◆ soft_regs

struct m68hc11_soft_reg soft_regs[M68HC11_ALL_REGS]
static