GDB (xrefs)

Classes | Macros | Enumerations | Functions | Variables
/tmp/gdb-8.1/gdb/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 { ARM_A1_REGNUM = 0, ARM_A4_REGNUM = 3, ARM_AP_REGNUM = 11, ARM_IP_REGNUM = 12, ARM_SP_REGNUM = 13, ARM_LR_REGNUM = 14, ARM_PC_REGNUM = 15, ARM_F0_REGNUM = 16, ARM_F3_REGNUM = 19, ARM_F7_REGNUM = 23, ARM_FPS_REGNUM = 24, ARM_PS_REGNUM = 25, ARM_WR0_REGNUM, ARM_WR15_REGNUM = ARM_WR0_REGNUM + 15, ARM_WC0_REGNUM, ARM_WCSSF_REGNUM = ARM_WC0_REGNUM + 2, ARM_WCASF_REGNUM = ARM_WC0_REGNUM + 3, ARM_WC7_REGNUM = ARM_WC0_REGNUM + 7, ARM_WCGR0_REGNUM, ARM_WCGR3_REGNUM = ARM_WCGR0_REGNUM + 3, ARM_WCGR7_REGNUM = ARM_WCGR0_REGNUM + 7, ARM_D0_REGNUM, ARM_D31_REGNUM = ARM_D0_REGNUM + 31, ARM_FPSCR_REGNUM, ARM_NUM_REGS, ARM_FP_REGNUM = 11, THUMB_FP_REGNUM = 7, ARM_NUM_ARG_REGS = 4, ARM_LAST_ARG_REGNUM = ARM_A4_REGNUM, ARM_NUM_FP_ARG_REGS = 4, ARM_LAST_FP_ARG_REGNUM = ARM_F3_REGNUM, BFIN_R0_REGNUM = 0, BFIN_R1_REGNUM, BFIN_R2_REGNUM, BFIN_R3_REGNUM, BFIN_R4_REGNUM, BFIN_R5_REGNUM, BFIN_R6_REGNUM, BFIN_R7_REGNUM, BFIN_P0_REGNUM, BFIN_P1_REGNUM, BFIN_P2_REGNUM, BFIN_P3_REGNUM, BFIN_P4_REGNUM, BFIN_P5_REGNUM, BFIN_SP_REGNUM, BFIN_FP_REGNUM, BFIN_I0_REGNUM, BFIN_I1_REGNUM, BFIN_I2_REGNUM, BFIN_I3_REGNUM, BFIN_M0_REGNUM, BFIN_M1_REGNUM, BFIN_M2_REGNUM, BFIN_M3_REGNUM, BFIN_B0_REGNUM, BFIN_B1_REGNUM, BFIN_B2_REGNUM, BFIN_B3_REGNUM, BFIN_L0_REGNUM, BFIN_L1_REGNUM, BFIN_L2_REGNUM, BFIN_L3_REGNUM, BFIN_A0_DOT_X_REGNUM, BFIN_A0_DOT_W_REGNUM, BFIN_A1_DOT_X_REGNUM, BFIN_A1_DOT_W_REGNUM, BFIN_ASTAT_REGNUM, BFIN_RETS_REGNUM, BFIN_LC0_REGNUM, BFIN_LT0_REGNUM, BFIN_LB0_REGNUM, BFIN_LC1_REGNUM, BFIN_LT1_REGNUM, BFIN_LB1_REGNUM, BFIN_CYCLES_REGNUM, BFIN_CYCLES2_REGNUM, BFIN_USP_REGNUM, BFIN_SEQSTAT_REGNUM, BFIN_SYSCFG_REGNUM, BFIN_RETI_REGNUM, BFIN_RETX_REGNUM, BFIN_RETN_REGNUM, BFIN_RETE_REGNUM, BFIN_PC_REGNUM, BFIN_CC_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, E_R0_REGNUM, E_R1_REGNUM, E_R2_REGNUM, E_R3_REGNUM, E_R4_REGNUM, E_R5_REGNUM, E_R6_REGNUM, E_R7_REGNUM, E_R8_REGNUM, E_R9_REGNUM, E_R10_REGNUM, E_R11_REGNUM, E_R12_REGNUM, E_R13_REGNUM, E_R14_REGNUM, E_R15_REGNUM, E_R16_REGNUM, E_R17_REGNUM, E_R18_REGNUM, E_R19_REGNUM, E_R20_REGNUM, E_R21_REGNUM, E_R22_REGNUM, E_R23_REGNUM, E_R24_REGNUM, E_R25_REGNUM, E_R26_REGNUM, E_R27_REGNUM, E_R28_REGNUM, E_R29_REGNUM, E_R30_REGNUM, E_R31_REGNUM, E_PC_REGNUM, E_LR_REGNUM = E_R31_REGNUM, E_SP_REGNUM = E_R29_REGNUM, E_FP_REGNUM = E_R27_REGNUM, E_FN_RETURN_REGNUM = E_R2_REGNUM, E_1ST_ARGREG = E_R4_REGNUM, E_LAST_ARGREG = E_R11_REGNUM, E_NUM_REGS = E_PC_REGNUM + 1, SCORE_SP_REGNUM = 0, SCORE_FP_REGNUM = 2, SCORE_RA_REGNUM = 3, SCORE_A0_REGNUM = 4, SCORE_AL_REGNUM = 7, SCORE_EPC_REGNUM = 37, SCORE_PC_REGNUM = 49, E_R0_REGNUM, E_R1_REGNUM, E_R2_REGNUM, E_1ST_ARG_REGNUM = E_R2_REGNUM, E_PTR_RET_REGNUM = E_R2_REGNUM, E_R3_REGNUM, E_R4_REGNUM, E_R5_REGNUM, E_R6_REGNUM, E_R7_REGNUM, E_LST_ARG_REGNUM = E_R7_REGNUM, E_R8_REGNUM, E_R9_REGNUM, E_R10_REGNUM, E_R11_REGNUM, E_R12_REGNUM, E_R13_REGNUM, E_FP_REGNUM = E_R13_REGNUM, E_R14_REGNUM, E_PSW_REGNUM = E_R14_REGNUM, E_R15_REGNUM, E_SP_REGNUM = E_R15_REGNUM, E_PC_REGNUM, E_NUM_REGS }
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 CORE_ADDR | h8300_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
static CORE_ADDR | h8300_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
static struct frame_id | h8300_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
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 (struct frame_info *this_frame, void **this_cache)
static void | h8300_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static struct value * | h8300_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
static CORE_ADDR | h8300_frame_base_address (struct frame_info *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, int struct_return, 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 (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, struct frame_info *frame, int regno)
static void | h8300_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regno, int cpregs)
static struct type * | h8300_register_type (struct gdbarch *gdbarch, int regno)
static enum register_status | pseudo_from_raw_register (struct gdbarch *gdbarch, struct 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, struct 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 (void)

## 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:
((is_h8300hmode (gdbarch) \
&& !is_h8300_normal_mode (gdbarch)) \
? h8300h_reg_size : h8300_reg_size)
gdbarch
Definition: gdbarch.c:127
h8300_reg_size
Definition: h8300-tdep.c:81
h8300h_reg_size
Definition: h8300-tdep.c:82
is_h8300hmode
static int is_h8300hmode(struct gdbarch *gdbarch)
Definition: h8300-tdep.c:1403
is_h8300_normal_mode
static int is_h8300_normal_mode(struct gdbarch *gdbarch)
Definition: h8300-tdep.c:1430

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))

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().

## ◆ E_PSEUDO_EXR_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().

## ◆ 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 158 of file h8300-tdep.c.

Referenced by h8300_analyze_prologue().

## ◆ IS_ADD_RnSP

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

Definition at line 163 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 161 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 155 of file h8300-tdep.c.

Referenced by h8300_analyze_prologue().

## ◆ IS_MOVB_EXT

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

Definition at line 142 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 141 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 143 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 138 of file h8300-tdep.c.

Referenced by h8300_is_argument_spill().

## ◆ IS_MOVL_EXT

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

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

Referenced by h8300_is_argument_spill().

## ◆ IS_MOVL_PRE

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

Definition at line 148 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 149 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 151 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 140 of file h8300-tdep.c.

Referenced by h8300_is_argument_spill().

## ◆ IS_MOVW_EXT

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

Definition at line 145 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 144 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 146 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 139 of file h8300-tdep.c.

Referenced by h8300_is_argument_spill().

## ◆ IS_PUSH

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

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

Referenced by h8300_analyze_prologue().

## ◆ IS_PUSH_FP

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

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

Referenced by h8300_analyze_prologue().

## ◆ IS_PUSHFP_MOVESPFP

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

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

Referenced by h8300_analyze_prologue().

## ◆ IS_SUB2_SP

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

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

Referenced by h8300_analyze_prologue().

## ◆ IS_SUB4_SP

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

Definition at line 157 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 159 of file h8300-tdep.c.

Referenced by h8300_analyze_prologue().

## ◆ IS_SUB_RnSP

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

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

Referenced by h8300_analyze_prologue().

## ◆ IS_SUBL4_SP

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

Definition at line 160 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
ARM_A1_REGNUM |
ARM_A4_REGNUM |
ARM_AP_REGNUM |
ARM_IP_REGNUM |
ARM_SP_REGNUM |
ARM_LR_REGNUM |
ARM_PC_REGNUM |
ARM_F0_REGNUM |
ARM_F3_REGNUM |
ARM_F7_REGNUM |
ARM_FPS_REGNUM |
ARM_PS_REGNUM |
ARM_WR0_REGNUM |
ARM_WR15_REGNUM |
ARM_WC0_REGNUM |
ARM_WCSSF_REGNUM |
ARM_WCASF_REGNUM |
ARM_WC7_REGNUM |
ARM_WCGR0_REGNUM |
ARM_WCGR3_REGNUM |
ARM_WCGR7_REGNUM |
ARM_D0_REGNUM |
ARM_D31_REGNUM |
ARM_FPSCR_REGNUM |
ARM_NUM_REGS |
ARM_FP_REGNUM |
THUMB_FP_REGNUM |
ARM_NUM_ARG_REGS |
ARM_LAST_ARG_REGNUM |
ARM_NUM_FP_ARG_REGS |
ARM_LAST_FP_ARG_REGNUM |
BFIN_R0_REGNUM |
BFIN_R1_REGNUM |
BFIN_R2_REGNUM |
BFIN_R3_REGNUM |
BFIN_R4_REGNUM |
BFIN_R5_REGNUM |
BFIN_R6_REGNUM |
BFIN_R7_REGNUM |
BFIN_P0_REGNUM |
BFIN_P1_REGNUM |
BFIN_P2_REGNUM |
BFIN_P3_REGNUM |
BFIN_P4_REGNUM |
BFIN_P5_REGNUM |
BFIN_SP_REGNUM |
BFIN_FP_REGNUM |
BFIN_I0_REGNUM |
BFIN_I1_REGNUM |
BFIN_I2_REGNUM |
BFIN_I3_REGNUM |
BFIN_M0_REGNUM |
BFIN_M1_REGNUM |
BFIN_M2_REGNUM |
BFIN_M3_REGNUM |
BFIN_B0_REGNUM |
BFIN_B1_REGNUM |
BFIN_B2_REGNUM |
BFIN_B3_REGNUM |
BFIN_L0_REGNUM |
BFIN_L1_REGNUM |
BFIN_L2_REGNUM |
BFIN_L3_REGNUM |
BFIN_A0_DOT_X_REGNUM |
BFIN_A0_DOT_W_REGNUM |
BFIN_A1_DOT_X_REGNUM |
BFIN_A1_DOT_W_REGNUM |
BFIN_ASTAT_REGNUM |
BFIN_RETS_REGNUM |
BFIN_LC0_REGNUM |
BFIN_LT0_REGNUM |
BFIN_LB0_REGNUM |
BFIN_LC1_REGNUM |
BFIN_LT1_REGNUM |
BFIN_LB1_REGNUM |
BFIN_CYCLES_REGNUM |
BFIN_CYCLES2_REGNUM |
BFIN_USP_REGNUM |
BFIN_SEQSTAT_REGNUM |
BFIN_SYSCFG_REGNUM |
BFIN_RETI_REGNUM |
BFIN_RETX_REGNUM |
BFIN_RETN_REGNUM |
BFIN_RETE_REGNUM |
BFIN_PC_REGNUM |
BFIN_CC_REGNUM |
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 |
E_R0_REGNUM |
E_R1_REGNUM |
E_R2_REGNUM |
E_R3_REGNUM |
E_R4_REGNUM |
E_R5_REGNUM |
E_R6_REGNUM |
E_R7_REGNUM |
E_R8_REGNUM |
E_R9_REGNUM |
E_R10_REGNUM |
E_R11_REGNUM |
E_R12_REGNUM |
E_R13_REGNUM |
E_R14_REGNUM |
E_R15_REGNUM |
E_R16_REGNUM |
E_R17_REGNUM |
E_R18_REGNUM |
E_R19_REGNUM |
E_R20_REGNUM |
E_R21_REGNUM |
E_R22_REGNUM |
E_R23_REGNUM |
E_R24_REGNUM |
E_R25_REGNUM |
E_R26_REGNUM |
E_R27_REGNUM |
E_R28_REGNUM |
E_R29_REGNUM |
E_R30_REGNUM |
E_R31_REGNUM |
E_PC_REGNUM |
E_LR_REGNUM |
E_SP_REGNUM |
E_FP_REGNUM |
E_FN_RETURN_REGNUM |
E_1ST_ARGREG |
E_LAST_ARGREG |
E_NUM_REGS |
SCORE_SP_REGNUM |
SCORE_FP_REGNUM |
SCORE_RA_REGNUM |
SCORE_A0_REGNUM |
SCORE_AL_REGNUM |
SCORE_EPC_REGNUM |
SCORE_PC_REGNUM |
E_R0_REGNUM |
E_R1_REGNUM |
E_R2_REGNUM |
E_1ST_ARG_REGNUM |
E_PTR_RET_REGNUM |
E_R3_REGNUM |
E_R4_REGNUM |
E_R5_REGNUM |
E_R6_REGNUM |
E_R7_REGNUM |
E_LST_ARG_REGNUM |
E_R8_REGNUM |
E_R9_REGNUM |
E_R10_REGNUM |
E_R11_REGNUM |
E_R12_REGNUM |
E_R13_REGNUM |
E_FP_REGNUM |
E_R14_REGNUM |
E_PSW_REGNUM |
E_R15_REGNUM |
E_SP_REGNUM |
E_PC_REGNUM |
E_NUM_REGS |

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

## Function Documentation

## ◆ _initialize_h8300_tdep()

void _initialize_h8300_tdep | ( | void |  | ) |

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

References register_gdbarch_init().

## ◆ BP_MANIPULATION()

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.

## ◆ 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

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().

## ◆ h8300_dbg_reg_to_regnum()

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

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

References E_CCR_REGNUM, and E_PSEUDO_CCR_REGNUM.

Referenced by BP_MANIPULATION().

## ◆ h8300_dummy_id()

static struct frame_id h8300_dummy_id | ( | struct gdbarch * | gdbarch,
|  | struct frame_info * | this_frame
| ) |  |
| 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().

## ◆ h8300_extract_return_value()

static void h8300_extract_return_value | ( | struct type * | type,
|  | struct regcache * | regcache,
|  | gdb_byte * | valbuf
| ) |  |
| 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().

## ◆ h8300_frame_base_address()

static CORE_ADDR h8300_frame_base_address | ( | struct frame_info * | this_frame,
|  | void ** | this_cache
| ) |  |
| static

Definition at line 531 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 | ( | struct frame_info * | this_frame,
|  | void ** | this_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().

## ◆ h8300_frame_prev_register()

static struct value* h8300_frame_prev_register | ( | struct frame_info * | this_frame,
|  | void ** | this_cache,
|  | int | regnum
| ) |  |
| 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.

## ◆ h8300_frame_this_id()

static void h8300_frame_this_id | ( | struct frame_info * | this_frame,
|  | void ** | this_cache,
|  | struct frame_id * | this_id
| ) |  |
| 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.

## ◆ h8300_init_frame_cache()

static void h8300_init_frame_cache | ( | struct gdbarch * | gdbarch,
|  | struct h8300_frame_cache * | cache
| ) |  |
| 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().

## ◆ h8300_is_argument_spill()

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

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().

## ◆ h8300_print_register()

static void h8300_print_register | ( | struct gdbarch * | gdbarch,
|  | struct ui_file * | file,
|  | struct frame_info * | frame,
|  | int | regno
| ) |  |
| 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().

## ◆ h8300_print_registers_info()

static void h8300_print_registers_info | ( | struct gdbarch * | gdbarch,
|  | struct ui_file * | file,
|  | struct frame_info * | frame,
|  | int | regno,
|  | int | cpregs
| ) |  |
| 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().

## ◆ h8300_pseudo_register_read()

static enum register_status h8300_pseudo_register_read | ( | struct gdbarch * | gdbarch,
|  | struct regcache * | regcache,
|  | int | regno,
|  | gdb_byte * | buf
| ) |  |
| 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().

## ◆ h8300_pseudo_register_write()

static void h8300_pseudo_register_write | ( | struct gdbarch * | gdbarch,
|  | struct regcache * | regcache,
|  | int | regno,
|  | const gdb_byte * | buf
| ) |  |
| 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().

## ◆ 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,
|  | int | struct_return,
|  | CORE_ADDR | struct_addr
| ) |  |
| 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().

## ◆ h8300_register_name()

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

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

References _, and internal_error().

Referenced by BP_MANIPULATION().

## ◆ h8300_register_sim_regno()

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

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

References gdb_assert, gdbarch_num_regs(), and regnum.

Referenced by BP_MANIPULATION().

## ◆ h8300_register_type()

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

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().

## ◆ 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

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().

## ◆ h8300_skip_prologue()

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

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().

## ◆ h8300_store_return_value()

static void h8300_store_return_value | ( | struct type * | type,
|  | struct regcache * | regcache,
|  | const gdb_byte * | valbuf
| ) |  |
| 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().

## ◆ h8300_unwind_pc()

static CORE_ADDR h8300_unwind_pc | ( | struct gdbarch * | gdbarch,
|  | struct frame_info * | next_frame
| ) |  |
| static

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

References E_PC_REGNUM, and frame_unwind_register_unsigned().

Referenced by BP_MANIPULATION().

## ◆ h8300_unwind_sp()

static CORE_ADDR h8300_unwind_sp | ( | struct gdbarch * | gdbarch,
|  | struct frame_info * | next_frame
| ) |  |
| static

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

References E_SP_REGNUM, and frame_unwind_register_unsigned().

Referenced by BP_MANIPULATION().

## ◆ h8300_use_struct_convention()

static int h8300_use_struct_convention | ( | struct type * | value_type | ) |
| 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().

## ◆ h8300h_extract_return_value()

static void h8300h_extract_return_value | ( | struct type * | type,
|  | struct regcache * | regcache,
|  | gdb_byte * | valbuf
| ) |  |
| 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().

## ◆ 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

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().

## ◆ h8300h_store_return_value()

static void h8300h_store_return_value | ( | struct type * | type,
|  | struct regcache * | regcache,
|  | const gdb_byte * | valbuf
| ) |  |
| 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().

## ◆ h8300h_use_struct_convention()

static int h8300h_use_struct_convention | ( | struct type * | value_type | ) |
| 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().

## ◆ h8300s_dbg_reg_to_regnum()

static int h8300s_dbg_reg_to_regnum | ( | struct gdbarch * | gdbarch,
|  | int | regno
| ) |  |
| 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().

## ◆ h8300s_register_name()

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

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

References _, and internal_error().

Referenced by BP_MANIPULATION().

## ◆ h8300sx_register_name()

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

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

References _, and internal_error().

Referenced by BP_MANIPULATION().

## ◆ is_h8300_normal_mode()

static int is_h8300_normal_mode | ( | struct gdbarch * | gdbarch | ) |
| static

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

References gdbarch_bfd_arch_info().

## ◆ is_h8300hmode()

static int is_h8300hmode | ( | struct gdbarch * | gdbarch | ) |
| static

Definition at line 1403 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 1414 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 1423 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,
|  | struct regcache * | regcache,
|  | gdb_byte * | buf,
|  | int | pseudo_regno,
|  | int | raw_regno
| ) |  |
| 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().

## ◆ 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

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().

## Variable Documentation

## ◆ h8300_break_insn

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

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

## ◆ h8300_frame_base

const struct frame_base h8300_frame_base
| static

Initial value:
= {
&h8300_frame_unwind,
h8300_frame_base_address,
h8300_frame_base_address,
h8300_frame_base_address
}
h8300_frame_unwind
static const struct frame_unwind h8300_frame_unwind
Definition: h8300-tdep.c:521
h8300_frame_base_address
static CORE_ADDR h8300_frame_base_address(struct frame_info *this_frame, void **this_cache)
Definition: h8300-tdep.c:531

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

Referenced by BP_MANIPULATION().

## ◆ h8300_frame_unwind

const struct frame_unwind h8300_frame_unwind
| static

Initial value:
= {
NORMAL_FRAME,
default_frame_unwind_stop_reason,
h8300_frame_this_id,
h8300_frame_prev_register,
NULL,
default_frame_sniffer
}
h8300_frame_this_id
static void h8300_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: h8300-tdep.c:487
NORMAL_FRAME
Definition: frame.h:244
default_frame_sniffer
int default_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
Definition: frame-unwind.c:174
h8300_frame_prev_register
static struct value * h8300_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: h8300-tdep.c:501
default_frame_unwind_stop_reason
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:184

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

Referenced by BP_MANIPULATION().