GDB (xrefs)
|
#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 { 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 } |
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, frame_info_ptr 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 (frame_info_ptr this_frame, void **this_cache) |
static struct value * | iq2000_frame_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum) |
static void | iq2000_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id) |
static CORE_ADDR | iq2000_frame_base_address (frame_info_ptr 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, function_call_return_method return_method, CORE_ADDR struct_addr) |
static struct gdbarch * | iq2000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
void | _initialize_iq2000_tdep () |
Variables | |
static const struct frame_unwind | iq2000_frame_unwind |
static const struct frame_base | iq2000_frame_base |
Definition at line 148 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
Definition at line 146 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
Definition at line 147 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
Definition at line 145 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
Definition at line 151 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
Definition at line 156 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
Definition at line 152 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
Definition at line 153 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
Definition at line 159 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
Definition at line 157 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
Definition at line 158 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
anonymous enum |
Enumerator | |
---|---|
REG_UNAVAIL |
Definition at line 57 of file iq2000-tdep.c.
enum gdb_regnum |
Definition at line 36 of file iq2000-tdep.c.
void _initialize_iq2000_tdep | ( | ) |
Definition at line 844 of file iq2000-tdep.c.
References gdbarch_register(), and iq2000_gdbarch_init().
|
static |
Definition at line 171 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().
|
static |
Definition at line 79 of file iq2000-tdep.c.
Referenced by iq2000_pointer_to_address().
|
static |
Definition at line 73 of file iq2000-tdep.c.
Referenced by iq2000_address_to_pointer().
|
static |
Definition at line 108 of file iq2000-tdep.c.
References type::code(), gdbarch_byte_order(), insn_ptr_from_addr(), type::length(), store_unsigned_integer(), and type::target_type().
Referenced by iq2000_gdbarch_init().
|
static |
Definition at line 454 of file iq2000-tdep.c.
Referenced by iq2000_gdbarch_init().
|
static |
Definition at line 520 of file iq2000-tdep.c.
References reg_buffer::arch(), E_FN_RETURN_REGNUM, gdbarch_byte_order(), type::length(), read_memory(), regcache_cooked_read_unsigned(), size, and store_unsigned_integer().
Referenced by iq2000_return_value().
|
static |
Definition at line 586 of file iq2000-tdep.c.
Referenced by iq2000_gdbarch_init().
|
static |
Definition at line 438 of file iq2000-tdep.c.
References iq2000_frame_cache::base, and iq2000_frame_cache().
|
static |
Definition at line 361 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().
|
static |
Definition at line 394 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.
|
static |
Definition at line 414 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.
|
static |
Definition at line 788 of file iq2000-tdep.c.
References arches, 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_alloc(), gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), gdbarch::info(), iq2000_address_to_pointer(), iq2000_breakpoint_kind_from_pc(), 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(), set_gdbarch_address_to_pointer(), set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_double_bit(), set_gdbarch_double_format(), 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(), and set_gdbarch_sw_breakpoint_from_kind().
Referenced by _initialize_iq2000_tdep().
|
static |
Definition at line 313 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().
|
static |
Definition at line 595 of file iq2000-tdep.c.
References type::code(), type::field(), type::length(), type::num_fields(), type::target_type(), and field::type().
Referenced by iq2000_push_dummy_call().
|
static |
Definition at line 88 of file iq2000-tdep.c.
References type::code(), extract_unsigned_integer(), gdbarch_byte_order(), insn_addr_from_ptr(), type::length(), type::target_type(), and TYPE_CODE_SPACE.
Referenced by iq2000_gdbarch_init().
|
static |
Definition at line 626 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(), type::length(), regcache::raw_write(), regcache_cooked_write_unsigned(), return_method_struct, store_unsigned_integer(), type, and write_memory().
Referenced by iq2000_gdbarch_init().
|
static |
Definition at line 125 of file iq2000-tdep.c.
References E_NUM_REGS, gdb_static_assert(), and regnum.
Referenced by iq2000_gdbarch_init().
Definition at line 580 of file iq2000-tdep.c.
References builtin_type::builtin_int32, and builtin_type().
Referenced by iq2000_gdbarch_init().
|
static |
Definition at line 563 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().
|
static |
Definition at line 198 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, 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().
|
static |
Definition at line 336 of file iq2000-tdep.c.
References symtab_and_line::end, 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().
|
static |
Definition at line 481 of file iq2000-tdep.c.
References E_FN_RETURN_REGNUM, type::length(), regcache::raw_write(), and size.
Referenced by iq2000_return_value().
|
static |
Definition at line 464 of file iq2000-tdep.c.
References big_breakpoint, gdbarch_byte_order(), little_breakpoint, and size.
Referenced by iq2000_gdbarch_init().
|
static |
Definition at line 505 of file iq2000-tdep.c.
References type::code(), and type::length().
Referenced by iq2000_return_value().
|
static |
Definition at line 446 of file iq2000-tdep.c.
Referenced by iq2000_gdbarch_init().
|
static |
Definition at line 427 of file iq2000-tdep.c.
Referenced by iq2000_gdbarch_init().