GDB (xrefs)

Classes | Macros | Enumerations | Functions | Variables
/tmp/gdb-8.1/gdb/iq2000-tdep.c File Reference
`#include "defs.h"`
`#include "frame.h"`
`#include "frame-base.h"`
`#include "frame-unwind.h"`
`#include "dwarf2-frame.h"`
`#include "gdbtypes.h"`
`#include "value.h"`
`#include "dis-asm.h"`
`#include "arch-utils.h"`
`#include "regcache.h"`
`#include "osabi.h"`
`#include "gdbcore.h"`

Go to the source code of this file.

## Classes
struct | iq2000_frame_cache

## Macros
#define | INSN_IS_ADDIU(X) (((X) & 0xfc000000) == 0x24000000)
#define | ADDIU_REG_SRC(X) (((X) & 0x03e00000) >> 21)
#define | ADDIU_REG_TGT(X) (((X) & 0x001f0000) >> 16)
#define | ADDIU_IMMEDIATE(X) ((signed short) ((X) & 0x0000ffff))
#define | INSN_IS_MOVE(X) (((X) & 0xffe007ff) == 0x00000025)
#define | MOVE_REG_SRC(X) (((X) & 0x001f0000) >> 16)
#define | MOVE_REG_TGT(X) (((X) & 0x0000f800) >> 11)
#define | INSN_IS_STORE_WORD(X) (((X) & 0xfc000000) == 0xac000000)
#define | SW_REG_INDEX(X) (((X) & 0x03e00000) >> 21)
#define | SW_REG_SRC(X) (((X) & 0x001f0000) >> 16)
#define | SW_OFFSET(X) ((signed short) ((X) & 0x0000ffff))

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

## Functions
static CORE_ADDR | insn_ptr_from_addr (CORE_ADDR addr)
static CORE_ADDR | insn_addr_from_ptr (CORE_ADDR ptr)
static CORE_ADDR | iq2000_pointer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
static void | iq2000_address_to_pointer (struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr)
static const char * | iq2000_register_name (struct gdbarch *gdbarch, int regnum)
static struct symtab_and_line | find_last_line_symbol (CORE_ADDR start, CORE_ADDR end, int notcurrent)
static CORE_ADDR | iq2000_scan_prologue (struct gdbarch *gdbarch, CORE_ADDR scan_start, CORE_ADDR scan_end, struct frame_info *fi, struct iq2000_frame_cache *cache)
static void | iq2000_init_frame_cache (struct iq2000_frame_cache *cache)
static CORE_ADDR | iq2000_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
static struct iq2000_frame_cache * | iq2000_frame_cache (struct frame_info *this_frame, void **this_cache)
static struct value * | iq2000_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
static void | iq2000_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static CORE_ADDR | iq2000_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
static CORE_ADDR | iq2000_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
static struct frame_id | iq2000_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
static CORE_ADDR | iq2000_frame_base_address (struct frame_info *this_frame, void **this_cache)
static int | iq2000_breakpoint_kind_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr)
static const gdb_byte * | iq2000_sw_breakpoint_from_kind (struct gdbarch *gdbarch, int kind, int *size)
static void | iq2000_store_return_value (struct type *type, struct regcache *regcache, const void *valbuf)
static int | iq2000_use_struct_convention (struct type *type)
static void | iq2000_extract_return_value (struct type *type, struct regcache *regcache, gdb_byte *valbuf)
static enum return_value_convention | iq2000_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
static struct type * | iq2000_register_type (struct gdbarch *gdbarch, int regnum)
static CORE_ADDR | iq2000_frame_align (struct gdbarch *ignore, CORE_ADDR sp)
static int | iq2000_pass_8bytetype_by_address (struct type *type)
static CORE_ADDR | iq2000_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 struct gdbarch * | iq2000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
void | _initialize_iq2000_tdep (void)

## Variables
static const struct frame_unwind | iq2000_frame_unwind
static const struct frame_base | iq2000_frame_base

## Macro Definition Documentation

## ◆ ADDIU_IMMEDIATE

#define ADDIU_IMMEDIATE | ( |  | X | ) | ((signed short) ((X) & 0x0000ffff))

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

Referenced by iq2000_scan_prologue().

## ◆ ADDIU_REG_SRC

#define ADDIU_REG_SRC | ( |  | X | ) | (((X) & 0x03e00000) >> 21)

Definition at line 147 of file iq2000-tdep.c.

Referenced by iq2000_scan_prologue().

## ◆ ADDIU_REG_TGT

#define ADDIU_REG_TGT | ( |  | X | ) | (((X) & 0x001f0000) >> 16)

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

Referenced by iq2000_scan_prologue().

## ◆ INSN_IS_ADDIU

#define INSN_IS_ADDIU | ( |  | X | ) | (((X) & 0xfc000000) == 0x24000000)

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

Referenced by iq2000_scan_prologue().

## ◆ INSN_IS_MOVE

#define INSN_IS_MOVE | ( |  | X | ) | (((X) & 0xffe007ff) == 0x00000025)

Definition at line 152 of file iq2000-tdep.c.

Referenced by iq2000_scan_prologue().

## ◆ INSN_IS_STORE_WORD

#define INSN_IS_STORE_WORD | ( |  | X | ) | (((X) & 0xfc000000) == 0xac000000)

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

Referenced by iq2000_scan_prologue().

## ◆ MOVE_REG_SRC

#define MOVE_REG_SRC | ( |  | X | ) | (((X) & 0x001f0000) >> 16)

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

Referenced by iq2000_scan_prologue().

## ◆ MOVE_REG_TGT

#define MOVE_REG_TGT | ( |  | X | ) | (((X) & 0x0000f800) >> 11)

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

Referenced by iq2000_scan_prologue().

## ◆ SW_OFFSET

#define SW_OFFSET | ( |  | X | ) | ((signed short) ((X) & 0x0000ffff))

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

Referenced by iq2000_scan_prologue().

## ◆ SW_REG_INDEX

#define SW_REG_INDEX | ( |  | X | ) | (((X) & 0x03e00000) >> 21)

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

Referenced by iq2000_scan_prologue().

## ◆ SW_REG_SRC

#define SW_REG_SRC | ( |  | X | ) | (((X) & 0x001f0000) >> 16)

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

Referenced by iq2000_scan_prologue().

## Enumeration Type Documentation

## ◆ anonymous enum

anonymous enum

Enumerator
REG_UNAVAIL |

Definition at line 57 of file iq2000-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 iq2000-tdep.c.

## Function Documentation

## ◆ _initialize_iq2000_tdep()

void _initialize_iq2000_tdep | ( | void |  | ) |

Definition at line 862 of file iq2000-tdep.c.

References iq2000_gdbarch_init(), and register_gdbarch_init().

## ◆ find_last_line_symbol()

static struct symtab_and_line find_last_line_symbol | ( | CORE_ADDR | start,
|  | CORE_ADDR | end,
|  | int | notcurrent
| ) |  |
| static

Definition at line 172 of file iq2000-tdep.c.

References symtab_and_line::end, find_pc_line(), symtab_and_line::line, and symtab_and_line::pc.

Referenced by iq2000_scan_prologue().

## ◆ insn_addr_from_ptr()

static CORE_ADDR insn_addr_from_ptr | ( | CORE_ADDR | ptr | ) |
| static

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

References L.

Referenced by iq2000_pointer_to_address().

## ◆ insn_ptr_from_addr()

static CORE_ADDR insn_ptr_from_addr | ( | CORE_ADDR | addr | ) |
| static

Definition at line 73 of file iq2000-tdep.c.

References L.

Referenced by iq2000_address_to_pointer().

## ◆ iq2000_address_to_pointer()

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

Definition at line 108 of file iq2000-tdep.c.

References gdbarch_byte_order(), insn_ptr_from_addr(), store_unsigned_integer(), TYPE_CODE, TYPE_CODE_FUNC, TYPE_CODE_METHOD, TYPE_LENGTH, and TYPE_TARGET_TYPE.

Referenced by iq2000_gdbarch_init().

## ◆ iq2000_breakpoint_kind_from_pc()

static int iq2000_breakpoint_kind_from_pc | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR * | pcptr
| ) |  |
| static

Definition at line 473 of file iq2000-tdep.c.

References _, and error().

Referenced by iq2000_gdbarch_init().

## ◆ iq2000_dummy_id()

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

Definition at line 450 of file iq2000-tdep.c.

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

Referenced by iq2000_gdbarch_init().

## ◆ iq2000_extract_return_value()

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

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

References regcache::arch(), gdbarch::byte_order, E_FN_RETURN_REGNUM, gdbarch_byte_order(), read_memory(), regcache_cooked_read_unsigned(), size, store_unsigned_integer(), and TYPE_LENGTH.

Referenced by iq2000_return_value().

## ◆ iq2000_frame_align()

static CORE_ADDR iq2000_frame_align | ( | struct gdbarch * | ignore,
|  | CORE_ADDR | sp
| ) |  |
| static

Definition at line 605 of file iq2000-tdep.c.

Referenced by iq2000_gdbarch_init().

## ◆ iq2000_frame_base_address()

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

Definition at line 457 of file iq2000-tdep.c.

References iq2000_frame_cache::base, and iq2000_frame_cache().

## ◆ iq2000_frame_cache()

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

Definition at line 362 of file iq2000-tdep.c.

References iq2000_frame_cache::base, E_FP_REGNUM, E_NUM_REGS, E_SP_REGNUM, find_pc_partial_function(), FRAME_OBSTACK_ZALLOC, iq2000_frame_cache::framesize, get_frame_arch(), get_frame_pc(), get_frame_register_unsigned(), iq2000_init_frame_cache(), iq2000_scan_prologue(), iq2000_frame_cache::pc, iq2000_frame_cache::saved_regs, iq2000_frame_cache::saved_sp, and iq2000_frame_cache::using_fp.

Referenced by iq2000_frame_base_address(), iq2000_frame_prev_register(), and iq2000_frame_this_id().

## ◆ iq2000_frame_prev_register()

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

Definition at line 395 of file iq2000-tdep.c.

References E_LR_REGNUM, E_PC_REGNUM, E_SP_REGNUM, frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_register(), iq2000_frame_cache(), regnum, iq2000_frame_cache::saved_regs, and iq2000_frame_cache::saved_sp.

## ◆ iq2000_frame_this_id()

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

Definition at line 415 of file iq2000-tdep.c.

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

## ◆ iq2000_gdbarch_init()

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

Definition at line 804 of file iq2000-tdep.c.

References core_addr_lessthan(), dwarf2_append_unwinders(), E_NUM_REGS, E_PC_REGNUM, E_SP_REGNUM, floatformats_ieee_double, floatformats_ieee_single, frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), iq2000_address_to_pointer(), iq2000_breakpoint_kind_from_pc(), iq2000_dummy_id(), iq2000_frame_align(), iq2000_frame_base, iq2000_frame_unwind, iq2000_pointer_to_address(), iq2000_push_dummy_call(), iq2000_register_name(), iq2000_register_type(), iq2000_return_value(), iq2000_skip_prologue(), iq2000_sw_breakpoint_from_kind(), iq2000_unwind_pc(), iq2000_unwind_sp(), set_gdbarch_address_to_pointer(), set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_double_bit(), set_gdbarch_double_format(), set_gdbarch_dummy_id(), set_gdbarch_float_bit(), set_gdbarch_float_format(), set_gdbarch_frame_align(), set_gdbarch_frame_args_skip(), 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_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_sp_regnum(), set_gdbarch_sw_breakpoint_from_kind(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), and TARGET_CHAR_BIT.

Referenced by _initialize_iq2000_tdep().

## ◆ iq2000_init_frame_cache()

static void iq2000_init_frame_cache | ( | struct iq2000_frame_cache * | cache | ) |
| static

Definition at line 314 of file iq2000-tdep.c.

References iq2000_frame_cache::base, E_NUM_REGS, iq2000_frame_cache::framesize, iq2000_frame_cache::saved_regs, iq2000_frame_cache::saved_sp, and iq2000_frame_cache::using_fp.

Referenced by iq2000_frame_cache(), and iq2000_skip_prologue().

## ◆ iq2000_pass_8bytetype_by_address()

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

Definition at line 614 of file iq2000-tdep.c.

References TYPE_CODE, TYPE_CODE_FLT, TYPE_CODE_INT, TYPE_CODE_STRUCT, TYPE_CODE_TYPEDEF, TYPE_CODE_UNION, TYPE_FIELDS, TYPE_LENGTH, TYPE_NFIELDS, and TYPE_TARGET_TYPE.

Referenced by iq2000_push_dummy_call().

## ◆ iq2000_pointer_to_address()

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

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

References extract_unsigned_integer(), gdbarch_byte_order(), insn_addr_from_ptr(), TYPE_CODE, TYPE_CODE_FUNC, TYPE_CODE_METHOD, TYPE_CODE_SPACE, TYPE_LENGTH, and TYPE_TARGET_TYPE.

Referenced by iq2000_gdbarch_init().

## ◆ iq2000_push_dummy_call()

static CORE_ADDR iq2000_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 645 of file iq2000-tdep.c.

References E_1ST_ARGREG, E_LAST_ARGREG, E_LR_REGNUM, E_SP_REGNUM, gdbarch_byte_order(), iq2000_pass_8bytetype_by_address(), memset(), regcache_cooked_write_unsigned(), regcache_raw_write(), store_unsigned_integer(), type, TYPE_LENGTH, value_contents(), value_type(), and write_memory().

Referenced by iq2000_gdbarch_init().

## ◆ iq2000_register_name()

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

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

References E_NUM_REGS, and regnum.

Referenced by iq2000_gdbarch_init().

## ◆ iq2000_register_type()

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

Definition at line 599 of file iq2000-tdep.c.

References builtin_type::builtin_int32, and builtin_type().

Referenced by iq2000_gdbarch_init().

## ◆ iq2000_return_value()

static enum return_value_convention iq2000_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 582 of file iq2000-tdep.c.

References iq2000_extract_return_value(), iq2000_store_return_value(), iq2000_use_struct_convention(), RETURN_VALUE_REGISTER_CONVENTION, and RETURN_VALUE_STRUCT_CONVENTION.

Referenced by iq2000_gdbarch_init().

## ◆ iq2000_scan_prologue()

static CORE_ADDR iq2000_scan_prologue | ( | struct gdbarch * | gdbarch,
|  | CORE_ADDR | scan_start,
|  | CORE_ADDR | scan_end,
|  | struct frame_info * | fi,
|  | struct iq2000_frame_cache * | cache
| ) |  |
| static

Definition at line 199 of file iq2000-tdep.c.

References ADDIU_IMMEDIATE, ADDIU_REG_SRC, ADDIU_REG_TGT, E_FP_REGNUM, E_NUM_REGS, E_SP_REGNUM, symtab_and_line::end, find_last_line_symbol(), iq2000_frame_cache::framesize, gdbarch_byte_order(), INSN_IS_ADDIU, INSN_IS_MOVE, INSN_IS_STORE_WORD, MOVE_REG_SRC, MOVE_REG_TGT, offset, symtab_and_line::pc, read_memory_unsigned_integer(), iq2000_frame_cache::saved_regs, SW_OFFSET, SW_REG_INDEX, SW_REG_SRC, and iq2000_frame_cache::using_fp.

Referenced by iq2000_frame_cache(), and iq2000_skip_prologue().

## ◆ iq2000_skip_prologue()

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

Definition at line 337 of file iq2000-tdep.c.

References find_pc_line(), find_pc_partial_function(), iq2000_init_frame_cache(), iq2000_scan_prologue(), iq2000_frame_cache::pc, and symtab_and_line::pc.

Referenced by iq2000_gdbarch_init().

## ◆ iq2000_store_return_value()

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

Definition at line 500 of file iq2000-tdep.c.

References E_FN_RETURN_REGNUM, memset(), regcache_raw_write(), size, and TYPE_LENGTH.

Referenced by iq2000_return_value().

## ◆ iq2000_sw_breakpoint_from_kind()

static const gdb_byte* iq2000_sw_breakpoint_from_kind | ( | struct gdbarch * | gdbarch,
|  | int | kind,
|  | int * | size
| ) |  |
| static

Definition at line 483 of file iq2000-tdep.c.

References big_breakpoint, gdbarch_byte_order(), little_breakpoint, and size.

Referenced by iq2000_gdbarch_init().

## ◆ iq2000_unwind_pc()

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

Definition at line 444 of file iq2000-tdep.c.

References E_PC_REGNUM, and frame_unwind_register_unsigned().

Referenced by iq2000_gdbarch_init().

## ◆ iq2000_unwind_sp()

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

Definition at line 438 of file iq2000-tdep.c.

References E_SP_REGNUM, and frame_unwind_register_unsigned().

Referenced by iq2000_gdbarch_init().

## ◆ iq2000_use_struct_convention()

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

Definition at line 524 of file iq2000-tdep.c.

References TYPE_CODE, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_LENGTH.

Referenced by iq2000_return_value().

## Variable Documentation

## ◆ iq2000_frame_base

const struct frame_base iq2000_frame_base
| static

Initial value:
= {
&iq2000_frame_unwind,
iq2000_frame_base_address,
iq2000_frame_base_address,
iq2000_frame_base_address
}
iq2000_frame_base_address
static CORE_ADDR iq2000_frame_base_address(struct frame_info *this_frame, void **this_cache)
Definition: iq2000-tdep.c:457
iq2000_frame_unwind
static const struct frame_unwind iq2000_frame_unwind
Definition: iq2000-tdep.c:428

Definition at line 465 of file iq2000-tdep.c.

Referenced by iq2000_gdbarch_init().

## ◆ iq2000_frame_unwind

const struct frame_unwind iq2000_frame_unwind
| static

Initial value:
= {
NORMAL_FRAME,
default_frame_unwind_stop_reason,
iq2000_frame_this_id,
iq2000_frame_prev_register,
NULL,
default_frame_sniffer
}
iq2000_frame_prev_register
static struct value * iq2000_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: iq2000-tdep.c:395
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
iq2000_frame_this_id
static void iq2000_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: iq2000-tdep.c:415
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 428 of file iq2000-tdep.c.

Referenced by iq2000_gdbarch_init().