GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Enumerations | Functions | Variables
h8300-tdep.c File Reference
#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)
 

Enumerations

enum  gdb_regnum {
  E_R0_REGNUM , E_ER0_REGNUM = E_R0_REGNUM , E_ARG0_REGNUM = E_R0_REGNUM , E_RET0_REGNUM = E_R0_REGNUM ,
  E_R1_REGNUM , E_ER1_REGNUM = E_R1_REGNUM , E_RET1_REGNUM = E_R1_REGNUM , E_R2_REGNUM ,
  E_ER2_REGNUM = E_R2_REGNUM , E_ARGLAST_REGNUM = E_R2_REGNUM , E_R3_REGNUM , E_ER3_REGNUM = E_R3_REGNUM ,
  E_R4_REGNUM , E_ER4_REGNUM = E_R4_REGNUM , E_R5_REGNUM , E_ER5_REGNUM = E_R5_REGNUM ,
  E_R6_REGNUM , E_ER6_REGNUM = E_R6_REGNUM , E_FP_REGNUM = E_R6_REGNUM , E_SP_REGNUM ,
  E_CCR_REGNUM , E_PC_REGNUM , E_CYCLES_REGNUM , E_TICK_REGNUM ,
  E_EXR_REGNUM = E_TICK_REGNUM , E_INST_REGNUM , E_TICKS_REGNUM = E_INST_REGNUM , E_INSTS_REGNUM ,
  E_MACH_REGNUM , E_MACL_REGNUM , E_SBR_REGNUM , E_VBR_REGNUM
}
 
enum  { h8300_reg_size = 2 , h8300h_reg_size = 4 , h8300_max_reg_size = 4 }
 

Functions

static int is_h8300hmode (struct gdbarch *gdbarch)
 
static int is_h8300smode (struct gdbarch *gdbarch)
 
static int is_h8300sxmode (struct gdbarch *gdbarch)
 
static int is_h8300_normal_mode (struct gdbarch *gdbarch)
 
static void h8300_init_frame_cache (struct gdbarch *gdbarch, struct h8300_frame_cache *cache)
 
static int h8300_is_argument_spill (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static CORE_ADDR h8300_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR current_pc, struct h8300_frame_cache *cache)
 
static struct h8300_frame_cache * h8300_frame_cache (frame_info_ptr this_frame, void **this_cache)
 
static void h8300_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valueh8300_frame_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum)
 
static CORE_ADDR h8300_frame_base_address (frame_info_ptr this_frame, void **this_cache)
 
static CORE_ADDR h8300_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static CORE_ADDR h8300_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 void h8300_extract_return_value (struct type *type, struct regcache *regcache, gdb_byte *valbuf)
 
static void h8300h_extract_return_value (struct type *type, struct regcache *regcache, gdb_byte *valbuf)
 
static int h8300_use_struct_convention (struct type *value_type)
 
static int h8300h_use_struct_convention (struct type *value_type)
 
static void h8300_store_return_value (struct type *type, struct regcache *regcache, const gdb_byte *valbuf)
 
static void h8300h_store_return_value (struct type *type, struct regcache *regcache, const gdb_byte *valbuf)
 
static enum return_value_convention h8300_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
 
static enum return_value_convention h8300h_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
 
static int h8300_register_sim_regno (struct gdbarch *gdbarch, int regnum)
 
static const char * h8300_register_name_common (const char *regnames[], int numregs, struct gdbarch *gdbarch, int regno)
 
static const char * h8300_register_name (struct gdbarch *gdbarch, int regno)
 
static const char * h8300h_register_name (struct gdbarch *gdbarch, int regno)
 
static const char * h8300s_register_name (struct gdbarch *gdbarch, int regno)
 
static const char * h8300sx_register_name (struct gdbarch *gdbarch, int regno)
 
static void h8300_print_register (struct gdbarch *gdbarch, struct ui_file *file, frame_info_ptr frame, int regno)
 
static void h8300_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file, frame_info_ptr frame, int regno, int cpregs)
 
static struct typeh8300_register_type (struct gdbarch *gdbarch, int regno)
 
static enum register_status pseudo_from_raw_register (struct gdbarch *gdbarch, readable_regcache *regcache, gdb_byte *buf, int pseudo_regno, int raw_regno)
 
static void raw_from_pseudo_register (struct gdbarch *gdbarch, struct regcache *regcache, const gdb_byte *buf, int raw_regno, int pseudo_regno)
 
static enum register_status h8300_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache, int regno, gdb_byte *buf)
 
static void h8300_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int regno, const gdb_byte *buf)
 
static int h8300_dbg_reg_to_regnum (struct gdbarch *gdbarch, int regno)
 
static int h8300s_dbg_reg_to_regnum (struct gdbarch *gdbarch, int regno)
 
typedef BP_MANIPULATION (h8300_break_insn)
 
void _initialize_h8300_tdep ()
 

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 }
 

Macro Definition Documentation

◆ BINWORD

#define BINWORD ( gdbarch)
Value:
@ h8300_reg_size
Definition h8300-tdep.c:81
@ h8300h_reg_size
Definition h8300-tdep.c:82
static int is_h8300hmode(struct gdbarch *gdbarch)
static int is_h8300_normal_mode(struct gdbarch *gdbarch)

Definition at line 91 of file h8300-tdep.c.

Referenced by h8300_frame_cache(), h8300_print_register(), and h8300_push_dummy_call().

◆ E_PSEUDO_CCR_REGNUM

#define E_PSEUDO_CCR_REGNUM ( gdbarch)    (gdbarch_num_regs (gdbarch))

◆ E_PSEUDO_EXR_REGNUM

#define E_PSEUDO_EXR_REGNUM ( gdbarch)    (gdbarch_num_regs (gdbarch)+1)

◆ H8300_MAX_NUM_REGS

#define H8300_MAX_NUM_REGS   18

Definition at line 59 of file h8300-tdep.c.

◆ IS_ADD_IMM_SP

#define IS_ADD_IMM_SP ( x)    ((x) == 0x7a1f)

Definition at line 139 of file h8300-tdep.c.

Referenced by h8300_analyze_prologue().

◆ IS_ADD_RnSP

#define IS_ADD_RnSP ( x)    (((x) & 0xff0f) == 0x0907)

Definition at line 144 of file h8300-tdep.c.

Referenced by h8300_analyze_prologue().

◆ IS_MOV_IMM_Rn

#define IS_MOV_IMM_Rn ( x)    (((x) & 0xfff0) == 0x7905)

Definition at line 142 of file h8300-tdep.c.

Referenced by h8300_analyze_prologue().

◆ IS_MOV_SP_FP

#define IS_MOV_SP_FP ( x)    ((x) == 0x0ff6)

Definition at line 136 of file h8300-tdep.c.

Referenced by h8300_analyze_prologue().

◆ IS_MOVB_EXT

#define IS_MOVB_EXT ( x)    ((x) == 0x7860)

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

Referenced by h8300_is_argument_spill().

◆ IS_MOVB_Rn16_SP

#define IS_MOVB_Rn16_SP ( x)    (((x) & 0xfff0) == 0x6ee0)

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

Referenced by h8300_is_argument_spill().

◆ IS_MOVB_Rn24_SP

#define IS_MOVB_Rn24_SP ( x)    (((x) & 0xfff0) == 0x6aa0)

Definition at line 124 of file h8300-tdep.c.

Referenced by h8300_is_argument_spill().

◆ IS_MOVB_RnRm

#define IS_MOVB_RnRm ( x)    (((x) & 0xff88) == 0x0c88)

Definition at line 119 of file h8300-tdep.c.

Referenced by h8300_is_argument_spill().

◆ IS_MOVL_EXT

#define IS_MOVL_EXT ( x)    ((x) == 0x78e0)

Definition at line 131 of file h8300-tdep.c.

Referenced by h8300_is_argument_spill().

◆ IS_MOVL_PRE

#define IS_MOVL_PRE ( x)    ((x) == 0x0100)

Definition at line 129 of file h8300-tdep.c.

Referenced by h8300_is_argument_spill().

◆ IS_MOVL_Rn16_SP

#define IS_MOVL_Rn16_SP ( x)    (((x) & 0xfff0) == 0x6fe0)

Definition at line 130 of file h8300-tdep.c.

Referenced by h8300_is_argument_spill().

◆ IS_MOVL_Rn24_SP

#define IS_MOVL_Rn24_SP ( x)    (((x) & 0xfff0) == 0x6ba0)

Definition at line 132 of file h8300-tdep.c.

Referenced by h8300_is_argument_spill().

◆ IS_MOVL_RnRm

#define IS_MOVL_RnRm ( x)    (((x) & 0xff88) == 0x0f80)

Definition at line 121 of file h8300-tdep.c.

Referenced by h8300_is_argument_spill().

◆ IS_MOVW_EXT

#define IS_MOVW_EXT ( x)    ((x) == 0x78e0)

Definition at line 126 of file h8300-tdep.c.

Referenced by h8300_is_argument_spill().

◆ IS_MOVW_Rn16_SP

#define IS_MOVW_Rn16_SP ( x)    (((x) & 0xfff0) == 0x6fe0)

Definition at line 125 of file h8300-tdep.c.

Referenced by h8300_is_argument_spill().

◆ IS_MOVW_Rn24_SP

#define IS_MOVW_Rn24_SP ( x)    (((x) & 0xfff0) == 0x6ba0)

Definition at line 127 of file h8300-tdep.c.

Referenced by h8300_is_argument_spill().

◆ IS_MOVW_RnRm

#define IS_MOVW_RnRm ( x)    (((x) & 0xff88) == 0x0d00)

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

Referenced by h8300_is_argument_spill().

◆ IS_PUSH

#define IS_PUSH ( x)    (((x) & 0xfff0) == 0x6df0)

Definition at line 145 of file h8300-tdep.c.

Referenced by h8300_analyze_prologue().

◆ IS_PUSH_FP

#define IS_PUSH_FP ( x)    ((x) == 0x01006df6)

Definition at line 135 of file h8300-tdep.c.

Referenced by h8300_analyze_prologue().

◆ IS_PUSHFP_MOVESPFP

#define IS_PUSHFP_MOVESPFP ( x)    ((x) == 0x6df60d76)

Definition at line 134 of file h8300-tdep.c.

Referenced by h8300_analyze_prologue().

◆ IS_SUB2_SP

#define IS_SUB2_SP ( x)    ((x) == 0x1b87)

Definition at line 137 of file h8300-tdep.c.

Referenced by h8300_analyze_prologue().

◆ IS_SUB4_SP

#define IS_SUB4_SP ( x)    ((x) == 0x1b97)

Definition at line 138 of file h8300-tdep.c.

Referenced by h8300_analyze_prologue().

◆ IS_SUB_IMM_SP

#define IS_SUB_IMM_SP ( x)    ((x) == 0x7a3f)

Definition at line 140 of file h8300-tdep.c.

Referenced by h8300_analyze_prologue().

◆ IS_SUB_RnSP

#define IS_SUB_RnSP ( x)    (((x) & 0xff0f) == 0x1907)

Definition at line 143 of file h8300-tdep.c.

Referenced by h8300_analyze_prologue().

◆ IS_SUBL4_SP

#define IS_SUBL4_SP ( x)    ((x) == 0x1acf)

Definition at line 141 of file h8300-tdep.c.

Referenced by h8300_analyze_prologue().

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
h8300_reg_size 
h8300h_reg_size 
h8300_max_reg_size 

Definition at line 79 of file h8300-tdep.c.

◆ gdb_regnum

enum gdb_regnum
Enumerator
E_R0_REGNUM 
E_ER0_REGNUM 
E_ARG0_REGNUM 
E_RET0_REGNUM 
E_R1_REGNUM 
E_ER1_REGNUM 
E_RET1_REGNUM 
E_R2_REGNUM 
E_ER2_REGNUM 
E_ARGLAST_REGNUM 
E_R3_REGNUM 
E_ER3_REGNUM 
E_R4_REGNUM 
E_ER4_REGNUM 
E_R5_REGNUM 
E_ER5_REGNUM 
E_R6_REGNUM 
E_ER6_REGNUM 
E_FP_REGNUM 
E_SP_REGNUM 
E_CCR_REGNUM 
E_PC_REGNUM 
E_CYCLES_REGNUM 
E_TICK_REGNUM 
E_EXR_REGNUM 
E_INST_REGNUM 
E_TICKS_REGNUM 
E_INSTS_REGNUM 
E_MACH_REGNUM 
E_MACL_REGNUM 
E_SBR_REGNUM 
E_VBR_REGNUM 

Definition at line 36 of file h8300-tdep.c.

Function Documentation

◆ _initialize_h8300_tdep()

void _initialize_h8300_tdep ( )

Definition at line 1377 of file h8300-tdep.c.

References gdbarch_register().

◆ BP_MANIPULATION()

typedef BP_MANIPULATION ( h8300_break_insn )

Definition at line 1231 of file h8300-tdep.c.

References arches, core_addr_lessthan(), dwarf2_append_unwinders(), E_PC_REGNUM, E_SP_REGNUM, floatformats_ieee_single, frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_alloc(), gdbarch_list_lookup_by_info(), h8300_dbg_reg_to_regnum(), 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(), h8300h_register_name(), h8300h_return_value(), h8300s_dbg_reg_to_regnum(), h8300s_register_name(), h8300sx_register_name(), gdbarch::info(), 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_dwarf2_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_wchar_bit(), and set_gdbarch_wchar_signed().

◆ h8300_analyze_prologue()

static CORE_ADDR h8300_analyze_prologue ( struct gdbarch * gdbarch,
CORE_ADDR pc,
CORE_ADDR current_pc,
struct h8300_frame_cache * cache )
static

◆ h8300_dbg_reg_to_regnum()

static int h8300_dbg_reg_to_regnum ( struct gdbarch * gdbarch,
int regno )
static

Definition at line 1211 of file h8300-tdep.c.

References E_CCR_REGNUM, and E_PSEUDO_CCR_REGNUM.

Referenced by BP_MANIPULATION().

◆ h8300_extract_return_value()

static void h8300_extract_return_value ( struct type * type,
struct regcache * regcache,
gdb_byte * valbuf )
static

◆ h8300_frame_base_address()

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

Definition at line 514 of file h8300-tdep.c.

References h8300_frame_cache::base, and h8300_frame_cache().

◆ h8300_frame_cache()

static struct h8300_frame_cache * h8300_frame_cache ( frame_info_ptr this_frame,
void ** this_cache )
static

◆ h8300_frame_prev_register()

static struct value * h8300_frame_prev_register ( frame_info_ptr this_frame,
void ** this_cache,
int regnum )
static

◆ h8300_frame_this_id()

static void h8300_frame_this_id ( frame_info_ptr this_frame,
void ** this_cache,
struct frame_id * this_id )
static

◆ h8300_init_frame_cache()

static void h8300_init_frame_cache ( struct gdbarch * gdbarch,
struct h8300_frame_cache * cache )
static

◆ h8300_is_argument_spill()

static int h8300_is_argument_spill ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ h8300_print_register()

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

◆ h8300_print_registers_info()

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

◆ h8300_pseudo_register_read()

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

◆ h8300_pseudo_register_write()

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

◆ h8300_push_dummy_call()

static CORE_ADDR h8300_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

◆ h8300_register_name()

static const char * h8300_register_name ( struct gdbarch * gdbarch,
int regno )
static

Definition at line 941 of file h8300-tdep.c.

References h8300_register_name_common().

Referenced by BP_MANIPULATION().

◆ h8300_register_name_common()

static const char * h8300_register_name_common ( const char * regnames[],
int numregs,
struct gdbarch * gdbarch,
int regno )
static

◆ h8300_register_sim_regno()

static int h8300_register_sim_regno ( struct gdbarch * gdbarch,
int regnum )
static

Definition at line 919 of file h8300-tdep.c.

References gdbarch_num_regs(), and regnum.

Referenced by BP_MANIPULATION().

◆ h8300_register_type()

static struct type * h8300_register_type ( struct gdbarch * gdbarch,
int regno )
static

◆ h8300_return_value()

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

◆ h8300_skip_prologue()

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

◆ h8300_store_return_value()

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

◆ h8300_use_struct_convention()

static int h8300_use_struct_convention ( struct type * value_type)
static

Definition at line 791 of file h8300-tdep.c.

References type::code(), and type::length().

Referenced by h8300_return_value().

◆ h8300h_extract_return_value()

static void h8300h_extract_return_value ( struct type * type,
struct regcache * regcache,
gdb_byte * valbuf )
static

◆ h8300h_register_name()

static const char * h8300h_register_name ( struct gdbarch * gdbarch,
int regno )
static

Definition at line 955 of file h8300-tdep.c.

References h8300_register_name_common().

Referenced by BP_MANIPULATION().

◆ h8300h_return_value()

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

◆ h8300h_store_return_value()

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

◆ h8300h_use_struct_convention()

static int h8300h_use_struct_convention ( struct type * value_type)
static

Definition at line 805 of file h8300-tdep.c.

References type::code(), and type::length().

Referenced by h8300h_return_value().

◆ h8300s_dbg_reg_to_regnum()

static int h8300s_dbg_reg_to_regnum ( struct gdbarch * gdbarch,
int regno )
static

Definition at line 1219 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().

◆ h8300s_register_name()

static const char * h8300s_register_name ( struct gdbarch * gdbarch,
int regno )
static

Definition at line 967 of file h8300-tdep.c.

References h8300_register_name_common().

Referenced by BP_MANIPULATION().

◆ h8300sx_register_name()

static const char * h8300sx_register_name ( struct gdbarch * gdbarch,
int regno )
static

Definition at line 980 of file h8300-tdep.c.

References h8300_register_name_common().

Referenced by BP_MANIPULATION().

◆ is_h8300_normal_mode()

static int is_h8300_normal_mode ( struct gdbarch * gdbarch)
static

Definition at line 1410 of file h8300-tdep.c.

References gdbarch_bfd_arch_info().

◆ is_h8300hmode()

static int is_h8300hmode ( struct gdbarch * gdbarch)
static

Definition at line 1383 of file h8300-tdep.c.

References gdbarch_bfd_arch_info().

Referenced by h8300_register_type().

◆ is_h8300smode()

static int is_h8300smode ( struct gdbarch * gdbarch)
static

Definition at line 1394 of file h8300-tdep.c.

References gdbarch_bfd_arch_info().

Referenced by h8300_print_register(), and h8300_print_registers_info().

◆ is_h8300sxmode()

static int is_h8300sxmode ( struct gdbarch * gdbarch)
static

Definition at line 1403 of file h8300-tdep.c.

References gdbarch_bfd_arch_info().

Referenced by h8300_print_registers_info().

◆ pseudo_from_raw_register()

static enum register_status pseudo_from_raw_register ( struct gdbarch * gdbarch,
readable_regcache * regcache,
gdb_byte * buf,
int pseudo_regno,
int raw_regno )
static

◆ raw_from_pseudo_register()

static void raw_from_pseudo_register ( struct gdbarch * gdbarch,
struct regcache * regcache,
const gdb_byte * buf,
int raw_regno,
int pseudo_regno )
static

Variable Documentation

◆ h8300_break_insn

constexpr gdb_byte h8300_break_insn[] = { 0x01, 0x80 }
constexpr

Definition at line 1229 of file h8300-tdep.c.

◆ h8300_frame_base

const struct frame_base h8300_frame_base
static
Initial value:
= {
}
static const struct frame_unwind h8300_frame_unwind
Definition h8300-tdep.c:503
static CORE_ADDR h8300_frame_base_address(frame_info_ptr this_frame, void **this_cache)
Definition h8300-tdep.c:514

Definition at line 520 of file h8300-tdep.c.

Referenced by BP_MANIPULATION().

◆ h8300_frame_unwind

const struct frame_unwind h8300_frame_unwind
static
Initial value:
= {
"h8300 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 * h8300_frame_prev_register(frame_info_ptr this_frame, void **this_cache, int regnum)
Definition h8300-tdep.c:483
static void h8300_frame_this_id(frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
Definition h8300-tdep.c:469

Definition at line 503 of file h8300-tdep.c.

Referenced by BP_MANIPULATION().