GDB (xrefs)
Classes | Macros | Enumerations | Functions | Variables
/tmp/gdb-7.10/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_cacheh8300_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 valueh8300_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, void *valbuf)
 
static void h8300h_extract_return_value (struct type *type, struct regcache *regcache, void *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 void *valbuf)
 
static void h8300h_store_return_value (struct type *type, struct regcache *regcache, const void *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 typeh8300_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)
 
static const unsigned char * h8300_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr)
 
static struct gdbarchh8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 
void _initialize_h8300_tdep (void)
 

Variables

static const struct frame_unwind h8300_frame_unwind
 
static const struct frame_base h8300_frame_base
 
initialize_file_ftype _initialize_h8300_tdep
 

Macro Definition Documentation

#define BINWORD (   gdbarch)
Value:
static int is_h8300hmode(struct gdbarch *gdbarch)
Definition: h8300-tdep.c:1419
static int is_h8300_normal_mode(struct gdbarch *gdbarch)
Definition: h8300-tdep.c:1446

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

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

#define E_PSEUDO_CCR_REGNUM (   gdbarch)    (gdbarch_num_regs (gdbarch))
#define E_PSEUDO_EXR_REGNUM (   gdbarch)    (gdbarch_num_regs (gdbarch)+1)
#define H8300_MAX_NUM_REGS   18

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

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

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

Referenced by h8300_analyze_prologue().

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

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

Referenced by h8300_analyze_prologue().

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

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

Referenced by h8300_analyze_prologue().

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

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

Referenced by h8300_analyze_prologue().

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

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

Referenced by h8300_is_argument_spill().

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

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

Referenced by h8300_is_argument_spill().

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

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

Referenced by h8300_is_argument_spill().

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

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

Referenced by h8300_is_argument_spill().

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

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

Referenced by h8300_is_argument_spill().

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

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

Referenced by h8300_is_argument_spill().

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

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

Referenced by h8300_is_argument_spill().

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

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

Referenced by h8300_is_argument_spill().

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

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

Referenced by h8300_is_argument_spill().

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

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

Referenced by h8300_is_argument_spill().

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

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

Referenced by h8300_is_argument_spill().

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

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

Referenced by h8300_is_argument_spill().

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

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

Referenced by h8300_is_argument_spill().

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

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

Referenced by h8300_analyze_prologue().

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

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

Referenced by h8300_analyze_prologue().

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

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

Referenced by h8300_analyze_prologue().

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

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

Referenced by h8300_analyze_prologue().

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

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

Referenced by h8300_analyze_prologue().

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

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

Referenced by h8300_analyze_prologue().

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

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

Referenced by h8300_analyze_prologue().

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

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

Referenced by h8300_analyze_prologue().

Enumeration Type Documentation

anonymous enum
Enumerator
h8300_reg_size 
h8300h_reg_size 
h8300_max_reg_size 

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

enum gdb_regnum
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

void _initialize_h8300_tdep ( void  )

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

References h8300_gdbarch_init(), and register_gdbarch_init().

static CORE_ADDR h8300_analyze_prologue ( struct gdbarch gdbarch,
CORE_ADDR  pc,
CORE_ADDR  current_pc,
struct h8300_frame_cache cache 
)
static
static const unsigned char* h8300_breakpoint_from_pc ( struct gdbarch gdbarch,
CORE_ADDR pcptr,
int lenptr 
)
static

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

Referenced by h8300_gdbarch_init().

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

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

References E_CCR_REGNUM, and E_PSEUDO_CCR_REGNUM.

Referenced by h8300_gdbarch_init().

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

static void h8300_extract_return_value ( struct type type,
struct regcache regcache,
void *  valbuf 
)
static
static CORE_ADDR h8300_frame_base_address ( struct frame_info this_frame,
void **  this_cache 
)
static

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

References h8300_frame_cache::base, and h8300_frame_cache().

static struct h8300_frame_cache* h8300_frame_cache ( struct frame_info this_frame,
void **  this_cache 
)
static
static struct value* h8300_frame_prev_register ( struct frame_info this_frame,
void **  this_cache,
int  regnum 
)
static
static void h8300_frame_this_id ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
)
static
static struct gdbarch* h8300_gdbarch_init ( struct gdbarch_info  info,
struct gdbarch_list arches 
)
static

Definition at line 1260 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_breakpoint_from_pc(), h8300_dbg_reg_to_regnum(), h8300_dummy_id(), 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_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_insn(), 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_unwind_pc(), set_gdbarch_unwind_sp(), TARGET_CHAR_BIT, and xmalloc().

Referenced by _initialize_h8300_tdep().

static void h8300_init_frame_cache ( struct gdbarch gdbarch,
struct h8300_frame_cache cache 
)
static
static int h8300_is_argument_spill ( struct gdbarch gdbarch,
CORE_ADDR  pc 
)
static
static void h8300_print_register ( struct gdbarch gdbarch,
struct ui_file file,
struct frame_info frame,
int  regno 
)
static
static void h8300_print_registers_info ( struct gdbarch gdbarch,
struct ui_file file,
struct frame_info frame,
int  regno,
int  cpregs 
)
static
static enum register_status h8300_pseudo_register_read ( struct gdbarch gdbarch,
struct regcache regcache,
int  regno,
gdb_byte buf 
)
static
static void h8300_pseudo_register_write ( struct gdbarch gdbarch,
struct regcache regcache,
int  regno,
const gdb_byte buf 
)
static
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
static const char* h8300_register_name ( struct gdbarch gdbarch,
int  regno 
)
static

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

References _, and internal_error().

Referenced by h8300_gdbarch_init().

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

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

References gdb_assert, gdbarch_num_regs(), and regnum.

Referenced by h8300_gdbarch_init().

static struct type* h8300_register_type ( struct gdbarch gdbarch,
int  regno 
)
static
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
static CORE_ADDR h8300_skip_prologue ( struct gdbarch gdbarch,
CORE_ADDR  pc 
)
static
static void h8300_store_return_value ( struct type type,
struct regcache regcache,
const void *  valbuf 
)
static
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 h8300_gdbarch_init().

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

static int h8300_use_struct_convention ( struct type value_type)
static

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

References TYPE_CODE, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_LENGTH.

Referenced by h8300_return_value().

static void h8300h_extract_return_value ( struct type type,
struct regcache regcache,
void *  valbuf 
)
static
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
static void h8300h_store_return_value ( struct type type,
struct regcache regcache,
const void *  valbuf 
)
static
static int h8300h_use_struct_convention ( struct type value_type)
static

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

References TYPE_CODE, TYPE_CODE_INT, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_LENGTH.

Referenced by h8300h_return_value().

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

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

References E_CCR_REGNUM, E_EXR_REGNUM, E_PSEUDO_CCR_REGNUM, and E_PSEUDO_EXR_REGNUM.

Referenced by h8300_gdbarch_init().

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

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

References _, and internal_error().

Referenced by h8300_gdbarch_init().

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

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

References _, and internal_error().

Referenced by h8300_gdbarch_init().

static int is_h8300_normal_mode ( struct gdbarch gdbarch)
static

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

References gdbarch_bfd_arch_info().

static int is_h8300hmode ( struct gdbarch gdbarch)
static

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

References gdbarch_bfd_arch_info().

Referenced by h8300_register_type().

static int is_h8300smode ( struct gdbarch gdbarch)
static

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

References gdbarch_bfd_arch_info().

Referenced by h8300_print_register(), and h8300_print_registers_info().

static int is_h8300sxmode ( struct gdbarch gdbarch)
static

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

References gdbarch_bfd_arch_info().

Referenced by h8300_print_registers_info().

static enum register_status pseudo_from_raw_register ( struct gdbarch gdbarch,
struct regcache regcache,
gdb_byte buf,
int  pseudo_regno,
int  raw_regno 
)
static
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

initialize_file_ftype _initialize_h8300_tdep
const struct frame_base h8300_frame_base
static
Initial value:
= {
h8300_frame_base_address
}
static const struct frame_unwind h8300_frame_unwind
Definition: h8300-tdep.c:523
static CORE_ADDR h8300_frame_base_address(struct frame_info *this_frame, void **this_cache)
Definition: h8300-tdep.c:533

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

const struct frame_unwind h8300_frame_unwind
static
Initial value:
= {
NULL,
}
static void h8300_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: h8300-tdep.c:489
int default_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_prologue_cache)
Definition: frame-unwind.c:170
static struct value * h8300_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: h8300-tdep.c:503
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:180

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