GDB (xrefs)

Classes | Macros | Enumerations | Functions | Variables
/tmp/gdb-8.1/gdb/xstormy16-tdep.c File Reference
`#include "defs.h"`
`#include "frame.h"`
`#include "frame-base.h"`
`#include "frame-unwind.h"`
`#include "dwarf2-frame.h"`
`#include "symtab.h"`
`#include "gdbtypes.h"`
`#include "gdbcmd.h"`
`#include "gdbcore.h"`
`#include "value.h"`
`#include "dis-asm.h"`
`#include "inferior.h"`
`#include "arch-utils.h"`
`#include "regcache.h"`
`#include "osabi.h"`
`#include "objfiles.h"`
`#include "common/byte-vector.h"`

Go to the source code of this file.

## Classes
struct | xstormy16_frame_cache

## Macros
#define | E_MAX_RETTYPE_SIZE(regnum)

## 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 | { REG_UNAVAIL = (CORE_ADDR) -1 }
enum | { xstormy16_inst_size = 2, xstormy16_reg_size = 2, xstormy16_pc_size = 4 }
enum | { E_MAX_RETTYPE_SIZE_IN_REGS = E_MAX_RETTYPE_SIZE (E_R2_REGNUM) }

## Functions
static const char * | xstormy16_register_name (struct gdbarch *gdbarch, int regnum)
static struct type * | xstormy16_register_type (struct gdbarch *gdbarch, int regnum)
static int | xstormy16_type_is_scalar (struct type *t)
static int | xstormy16_use_struct_convention (struct type *type)
static void | xstormy16_extract_return_value (struct type *type, struct regcache *regcache, gdb_byte *valbuf)
static void | xstormy16_store_return_value (struct type *type, struct regcache *regcache, const gdb_byte *valbuf)
static enum return_value_convention | xstormy16_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
static CORE_ADDR | xstormy16_frame_align (struct gdbarch *gdbarch, CORE_ADDR addr)
static CORE_ADDR | xstormy16_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 CORE_ADDR | xstormy16_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR start_addr, CORE_ADDR end_addr, struct xstormy16_frame_cache *cache, struct frame_info *this_frame)
static CORE_ADDR | xstormy16_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
static int | xstormy16_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
typedef | BP_MANIPULATION (xstormy16_break_insn)
static CORE_ADDR | xstormy16_find_jmp_table_entry (struct gdbarch *gdbarch, CORE_ADDR faddr)
static CORE_ADDR | xstormy16_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
static CORE_ADDR | xstormy16_pointer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
static void | xstormy16_address_to_pointer (struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr)
static struct xstormy16_frame_cache * | xstormy16_alloc_frame_cache (void)
static struct xstormy16_frame_cache * | xstormy16_frame_cache (struct frame_info *this_frame, void **this_cache)
static struct value * | xstormy16_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
static void | xstormy16_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static CORE_ADDR | xstormy16_frame_base_address (struct frame_info *this_frame, void **this_cache)
static CORE_ADDR | xstormy16_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
static CORE_ADDR | xstormy16_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
static struct frame_id | xstormy16_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
static struct gdbarch * | xstormy16_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
void | _initialize_xstormy16_tdep (void)

## Variables
constexpr gdb_byte | xstormy16_break_insn [] = { 0x06, 0x0 }
static const struct frame_unwind | xstormy16_frame_unwind
static const struct frame_base | xstormy16_frame_base

## Macro Definition Documentation

## ◆ E_MAX_RETTYPE_SIZE

#define E_MAX_RETTYPE_SIZE | ( |  | regnum | ) |

Value:
((E_LST_ARG_REGNUM - (regnum) + 1) \
* xstormy16_reg_size)
E_LST_ARG_REGNUM
Definition: xstormy16-tdep.c:54
xstormy16_reg_size
Definition: xstormy16-tdep.c:85
regnum
int regnum
Definition: aarch64-tdep.c:77

Definition at line 90 of file xstormy16-tdep.c.

Referenced by xstormy16_push_dummy_call().

## Enumeration Type Documentation

## ◆ anonymous enum

anonymous enum

Enumerator
REG_UNAVAIL |

Definition at line 68 of file xstormy16-tdep.c.

## ◆ anonymous enum

anonymous enum

Enumerator
xstormy16_inst_size |
xstormy16_reg_size |
xstormy16_pc_size |

Definition at line 82 of file xstormy16-tdep.c.

## ◆ anonymous enum

anonymous enum

Enumerator
E_MAX_RETTYPE_SIZE_IN_REGS |

Definition at line 94 of file xstormy16-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 38 of file xstormy16-tdep.c.

## Function Documentation

## ◆ _initialize_xstormy16_tdep()

void _initialize_xstormy16_tdep | ( | void |  | ) |

Definition at line 860 of file xstormy16-tdep.c.

References register_gdbarch_init(), and xstormy16_gdbarch_init().

## ◆ BP_MANIPULATION()

typedef BP_MANIPULATION | ( | xstormy16_break_insn |  | ) |

Definition at line 506 of file xstormy16-tdep.c.

References extract_unsigned_integer(), find_pc_section(), gdbarch_byte_order(), target_read_memory(), obj_section::the_bfd_section, and xstormy16_inst_size.

## ◆ xstormy16_address_to_pointer()

static void xstormy16_address_to_pointer | ( | struct gdbarch * | gdbarch,
|  | struct type * | type,
|  | gdb_byte * | buf,
|  | CORE_ADDR | addr
| ) |  |
| static

Definition at line 628 of file xstormy16-tdep.c.

References gdbarch::byte_order, gdbarch_byte_order(), store_unsigned_integer(), TYPE_CODE, TYPE_CODE_FUNC, TYPE_CODE_METHOD, TYPE_LENGTH, TYPE_TARGET_TYPE, and xstormy16_find_jmp_table_entry().

Referenced by xstormy16_gdbarch_init().

## ◆ xstormy16_alloc_frame_cache()

static struct xstormy16_frame_cache* xstormy16_alloc_frame_cache | ( | void |  | ) |
| static

Definition at line 644 of file xstormy16-tdep.c.

References xstormy16_frame_cache::base, E_NUM_REGS, FRAME_OBSTACK_ZALLOC, xstormy16_frame_cache::framesize, xstormy16_frame_cache::pc, REG_UNAVAIL, xstormy16_frame_cache::saved_regs, xstormy16_frame_cache::saved_sp, and xstormy16_frame_cache::uses_fp.

Referenced by xstormy16_frame_cache().

## ◆ xstormy16_analyze_prologue()

static CORE_ADDR xstormy16_analyze_prologue | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | start_addr,
|  | CORE_ADDR | end_addr,
|  | struct xstormy16_frame_cache * | cache,
|  | struct frame_info * | this_frame
| ) |  |
| static

Definition at line 311 of file xstormy16-tdep.c.

References E_PC_REGNUM, xstormy16_frame_cache::framesize, gdbarch_byte_order(), offset, read_memory_unsigned_integer(), regnum, xstormy16_frame_cache::saved_regs, xstormy16_frame_cache::uses_fp, xstormy16_inst_size, xstormy16_pc_size, and xstormy16_reg_size.

Referenced by xstormy16_frame_cache(), and xstormy16_skip_prologue().

## ◆ xstormy16_dummy_id()

static struct frame_id xstormy16_dummy_id | ( | struct gdbarch * | gdbarch,
|  | struct frame_info * | this_frame
| ) |  |
| static

Definition at line 767 of file xstormy16-tdep.c.

References E_SP_REGNUM, frame_id_build(), get_frame_pc(), and get_frame_register_unsigned().

Referenced by xstormy16_gdbarch_init().

## ◆ xstormy16_extract_return_value()

static void xstormy16_extract_return_value | ( | struct type * | type,
|  | struct regcache * | regcache,
|  | gdb_byte * | valbuf
| ) |  |
| static

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

References E_1ST_ARG_REGNUM, regcache_raw_read(), regnum, TYPE_LENGTH, and xstormy16_reg_size.

Referenced by xstormy16_return_value().

## ◆ xstormy16_find_jmp_table_entry()

static CORE_ADDR xstormy16_find_jmp_table_entry | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | faddr
| ) |  |
| static

Definition at line 542 of file xstormy16-tdep.c.

References ALL_OBJFILE_OSECTIONS, extract_unsigned_integer(), find_pc_section(), gdbarch_byte_order(), obj_section_addr, obj_section_endaddr, obj_section::objfile, objfile::sections_end, target_read_memory(), obj_section::the_bfd_section, and xstormy16_inst_size.

Referenced by xstormy16_address_to_pointer().

## ◆ xstormy16_frame_align()

static CORE_ADDR xstormy16_frame_align | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | addr
| ) |  |
| static

Definition at line 211 of file xstormy16-tdep.c.

Referenced by xstormy16_gdbarch_init(), and xstormy16_push_dummy_call().

## ◆ xstormy16_frame_base_address()

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

Definition at line 731 of file xstormy16-tdep.c.

References xstormy16_frame_cache::base, and xstormy16_frame_cache().

## ◆ xstormy16_frame_cache()

static struct xstormy16_frame_cache* xstormy16_frame_cache | ( | struct frame_info * | this_frame,
|  | void ** | this_cache
| ) |  |
| static

Definition at line 663 of file xstormy16-tdep.c.

References xstormy16_frame_cache::base, E_FP_REGNUM, E_NUM_REGS, E_SP_REGNUM, xstormy16_frame_cache::framesize, get_frame_arch(), get_frame_func(), get_frame_pc(), get_frame_register_unsigned(), xstormy16_frame_cache::pc, REG_UNAVAIL, xstormy16_frame_cache::saved_regs, xstormy16_frame_cache::saved_sp, xstormy16_frame_cache::uses_fp, xstormy16_alloc_frame_cache(), and xstormy16_analyze_prologue().

Referenced by xstormy16_frame_base_address(), xstormy16_frame_prev_register(), and xstormy16_frame_this_id().

## ◆ xstormy16_frame_prev_register()

static struct value* xstormy16_frame_prev_register | ( | struct frame_info * | this_frame,
|  | void ** | this_cache,
|  | int | regnum
| ) |  |
| static

Definition at line 699 of file xstormy16-tdep.c.

References E_SP_REGNUM, frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_register(), gdb_assert, REG_UNAVAIL, regnum, xstormy16_frame_cache::saved_regs, xstormy16_frame_cache::saved_sp, and xstormy16_frame_cache().

## ◆ xstormy16_frame_this_id()

static void xstormy16_frame_this_id | ( | struct frame_info * | this_frame,
|  | void ** | this_cache,
|  | struct frame_id * | this_id
| ) |  |
| static

Definition at line 717 of file xstormy16-tdep.c.

References xstormy16_frame_cache::base, frame_id_build(), xstormy16_frame_cache::pc, xstormy16_frame_cache::saved_sp, and xstormy16_frame_cache().

## ◆ xstormy16_gdbarch_init()

static struct gdbarch* xstormy16_gdbarch_init | ( | struct gdbarch_info | info,
|  | struct gdbarch_list * | arches
| ) |  |
| static

Definition at line 779 of file xstormy16-tdep.c.

References core_addr_greaterthan(), dwarf2_append_unwinders(), E_NUM_REGS, E_PC_REGNUM, E_SP_REGNUM, frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), set_gdbarch_addr_bit(), set_gdbarch_address_to_pointer(), set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_char_signed(), set_gdbarch_double_bit(), set_gdbarch_dummy_id(), set_gdbarch_dwarf2_addr_size(), set_gdbarch_float_bit(), set_gdbarch_frame_align(), 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_pointer_to_address(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_register_name(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_skip_prologue(), set_gdbarch_skip_trampoline_code(), set_gdbarch_sp_regnum(), set_gdbarch_stack_frame_destroyed_p(), set_gdbarch_sw_breakpoint_from_kind(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), set_gdbarch_wchar_bit(), set_gdbarch_wchar_signed(), TARGET_CHAR_BIT, xstormy16_address_to_pointer(), xstormy16_dummy_id(), xstormy16_frame_align(), xstormy16_frame_base, xstormy16_frame_unwind, xstormy16_pointer_to_address(), xstormy16_push_dummy_call(), xstormy16_register_name(), xstormy16_register_type(), xstormy16_return_value(), xstormy16_skip_prologue(), xstormy16_skip_trampoline_code(), xstormy16_stack_frame_destroyed_p(), xstormy16_unwind_pc(), and xstormy16_unwind_sp().

Referenced by _initialize_xstormy16_tdep().

## ◆ xstormy16_pointer_to_address()

static CORE_ADDR xstormy16_pointer_to_address | ( | struct gdbarch * | gdbarch,
|  | struct type * | type,
|  | const gdb_byte * | buf
| ) |  |
| static

Definition at line 609 of file xstormy16-tdep.c.

References gdbarch::byte_order, extract_unsigned_integer(), gdbarch_byte_order(), TYPE_CODE, TYPE_CODE_FUNC, TYPE_CODE_METHOD, TYPE_LENGTH, and TYPE_TARGET_TYPE.

Referenced by xstormy16_gdbarch_init().

## ◆ xstormy16_push_dummy_call()

static CORE_ADDR xstormy16_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 224 of file xstormy16-tdep.c.

References E_1ST_ARG_REGNUM, E_LST_ARG_REGNUM, E_MAX_RETTYPE_SIZE, E_PTR_RET_REGNUM, E_SP_REGNUM, extract_unsigned_integer(), gdbarch_byte_order(), memset(), regcache_cooked_write_unsigned(), size, store_unsigned_integer(), TYPE_LENGTH, value_contents(), value_enclosing_type(), write_memory(), xstormy16_frame_align(), xstormy16_pc_size, and xstormy16_reg_size.

Referenced by xstormy16_gdbarch_init().

## ◆ xstormy16_register_name()

static const char* xstormy16_register_name | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |
| static

Definition at line 103 of file xstormy16-tdep.c.

References _, E_NUM_REGS, internal_error(), and regnum.

Referenced by xstormy16_gdbarch_init().

## ◆ xstormy16_register_type()

static struct type* xstormy16_register_type | ( | struct gdbarch * | gdbarch,
|  | int | regnum
| ) |  |
| static

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

References builtin_type(), builtin_type::builtin_uint16, builtin_type::builtin_uint32, E_PC_REGNUM, and regnum.

Referenced by xstormy16_gdbarch_init().

## ◆ xstormy16_return_value()

static enum return_value_convention xstormy16_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 197 of file xstormy16-tdep.c.

References RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, xstormy16_extract_return_value(), xstormy16_store_return_value(), and xstormy16_use_struct_convention().

Referenced by xstormy16_gdbarch_init().

## ◆ xstormy16_skip_prologue()

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

Definition at line 410 of file xstormy16-tdep.c.

References symtab_and_line::end, find_pc_line(), find_pc_partial_function(), language_asm, lookup_symbol(), memset(), xstormy16_frame_cache::pc, block_symbol::symbol, SYMBOL_LANGUAGE, xstormy16_frame_cache::uses_fp, VAR_DOMAIN, and xstormy16_analyze_prologue().

Referenced by xstormy16_gdbarch_init().

## ◆ xstormy16_skip_trampoline_code()

static CORE_ADDR xstormy16_skip_trampoline_code | ( | struct frame_info * | frame,
|  | CORE_ADDR | pc
| ) |  |
| static

Definition at line 591 of file xstormy16-tdep.c.

References get_frame_arch().

Referenced by xstormy16_gdbarch_init().

## ◆ xstormy16_stack_frame_destroyed_p()

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

Definition at line 458 of file xstormy16-tdep.c.

References find_pc_partial_function(), gdbarch_byte_order(), xstormy16_frame_cache::pc, read_memory_unsigned_integer(), and xstormy16_inst_size.

Referenced by xstormy16_gdbarch_init().

## ◆ xstormy16_store_return_value()

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

Definition at line 175 of file xstormy16-tdep.c.

References E_1ST_ARG_REGNUM, memset(), regcache_raw_write(), regnum, TYPE_LENGTH, and xstormy16_reg_size.

Referenced by xstormy16_return_value().

## ◆ xstormy16_type_is_scalar()

static int xstormy16_type_is_scalar | ( | struct type * | t | ) |
| static

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

References TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_STRUCT, and TYPE_CODE_UNION.

Referenced by xstormy16_use_struct_convention().

## ◆ xstormy16_unwind_pc()

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

Definition at line 761 of file xstormy16-tdep.c.

References E_PC_REGNUM, and frame_unwind_register_unsigned().

Referenced by xstormy16_gdbarch_init().

## ◆ xstormy16_unwind_sp()

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

Definition at line 755 of file xstormy16-tdep.c.

References E_SP_REGNUM, and frame_unwind_register_unsigned().

Referenced by xstormy16_gdbarch_init().

## ◆ xstormy16_use_struct_convention()

static int xstormy16_use_struct_convention | ( | struct type * | type | ) |
| static

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

References E_MAX_RETTYPE_SIZE_IN_REGS, TYPE_LENGTH, and xstormy16_type_is_scalar().

Referenced by xstormy16_return_value().

## Variable Documentation

## ◆ xstormy16_break_insn

constexpr gdb_byte xstormy16_break_insn[] = { 0x06, 0x0 }

Definition at line 504 of file xstormy16-tdep.c.

## ◆ xstormy16_frame_base

const struct frame_base xstormy16_frame_base
| static

Initial value:
= {
&xstormy16_frame_unwind,
xstormy16_frame_base_address,
xstormy16_frame_base_address,
xstormy16_frame_base_address
}
xstormy16_frame_unwind
static const struct frame_unwind xstormy16_frame_unwind
Definition: xstormy16-tdep.c:738
xstormy16_frame_base_address
static CORE_ADDR xstormy16_frame_base_address(struct frame_info *this_frame, void **this_cache)
Definition: xstormy16-tdep.c:731

Definition at line 747 of file xstormy16-tdep.c.

Referenced by xstormy16_gdbarch_init().

## ◆ xstormy16_frame_unwind

const struct frame_unwind xstormy16_frame_unwind
| static

Initial value:
= {
NORMAL_FRAME,
default_frame_unwind_stop_reason,
xstormy16_frame_this_id,
xstormy16_frame_prev_register,
NULL,
default_frame_sniffer
}
xstormy16_frame_prev_register
static struct value * xstormy16_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: xstormy16-tdep.c:699
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
xstormy16_frame_this_id
static void xstormy16_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: xstormy16-tdep.c:717
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 738 of file xstormy16-tdep.c.

Referenced by xstormy16_gdbarch_init().