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 "gdb_string.h"
#include "arch-utils.h"
#include "regcache.h"
#include "osabi.h"
#include "gdbcore.h"
Go to the source code of this file.
#define ADDIU_IMMEDIATE | ( | X | ) | ((signed short) ((X) & 0x0000ffff)) |
Definition at line 150 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
#define ADDIU_REG_SRC | ( | X | ) | (((X) & 0x03e00000) >> 21) |
Definition at line 148 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
#define ADDIU_REG_TGT | ( | X | ) | (((X) & 0x001f0000) >> 16) |
Definition at line 149 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
#define INSN_IS_ADDIU | ( | X | ) | (((X) & 0xfc000000) == 0x24000000) |
Definition at line 147 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
#define INSN_IS_MOVE | ( | X | ) | (((X) & 0xffe007ff) == 0x00000025) |
Definition at line 153 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
#define INSN_IS_STORE_WORD | ( | X | ) | (((X) & 0xfc000000) == 0xac000000) |
Definition at line 158 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
#define MOVE_REG_SRC | ( | X | ) | (((X) & 0x001f0000) >> 16) |
Definition at line 154 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
#define MOVE_REG_TGT | ( | X | ) | (((X) & 0x0000f800) >> 11) |
Definition at line 155 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
Definition at line 161 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
#define SW_REG_INDEX | ( | X | ) | (((X) & 0x03e00000) >> 21) |
Definition at line 159 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
#define SW_REG_SRC | ( | X | ) | (((X) & 0x001f0000) >> 16) |
Definition at line 160 of file iq2000-tdep.c.
Referenced by iq2000_scan_prologue().
anonymous enum |
Definition at line 58 of file iq2000-tdep.c.
enum gdb_regnum |
Definition at line 37 of file iq2000-tdep.c.
void _initialize_iq2000_tdep | ( | void | ) |
Definition at line 866 of file iq2000-tdep.c.
References iq2000_gdbarch_init(), and register_gdbarch_init().
static struct symtab_and_line find_last_line_symbol | ( | CORE_ADDR | start, |
CORE_ADDR | end, | ||
int | notcurrent | ||
) | [static, read] |
Definition at line 173 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 CORE_ADDR insn_addr_from_ptr | ( | CORE_ADDR | ptr | ) | [static] |
Definition at line 80 of file iq2000-tdep.c.
References L.
Referenced by iq2000_pointer_to_address().
static CORE_ADDR insn_ptr_from_addr | ( | CORE_ADDR | addr | ) | [static] |
Definition at line 74 of file iq2000-tdep.c.
References L.
Referenced by 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 109 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().
static const unsigned char* iq2000_breakpoint_from_pc | ( | struct gdbarch * | gdbarch, |
CORE_ADDR * | pcptr, | ||
int * | lenptr | ||
) | [static] |
Definition at line 481 of file iq2000-tdep.c.
References _, error(), and gdbarch_byte_order().
Referenced by iq2000_gdbarch_init().
static struct frame_id iq2000_dummy_id | ( | struct gdbarch * | gdbarch, |
struct frame_info * | this_frame | ||
) | [static, read] |
Definition at line 458 of file iq2000-tdep.c.
References E_SP_REGNUM, frame_id_build(), get_frame_pc(), get_frame_register_unsigned(), and sp.
Referenced by iq2000_gdbarch_init().
static void iq2000_extract_return_value | ( | struct type * | type, |
struct regcache * | regcache, | ||
void * | valbuf | ||
) | [static] |
Definition at line 542 of file iq2000-tdep.c.
References gdbarch::byte_order, E_FN_RETURN_REGNUM, gdbarch_byte_order(), get_regcache_arch(), len, read_memory(), regcache_cooked_read_unsigned(), size, store_unsigned_integer(), TYPE_LENGTH, and ULONGEST.
Referenced by iq2000_return_value().
static CORE_ADDR iq2000_frame_align | ( | struct gdbarch * | ignore, |
CORE_ADDR | sp | ||
) | [static] |
Definition at line 608 of file iq2000-tdep.c.
Referenced by iq2000_gdbarch_init().
static CORE_ADDR iq2000_frame_base_address | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static] |
Definition at line 465 of file iq2000-tdep.c.
References iq2000_frame_cache::base, and iq2000_frame_cache().
static struct iq2000_frame_cache* iq2000_frame_cache | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static, read] |
Definition at line 368 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 struct value* iq2000_frame_prev_register | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 403 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(), iq2000_frame_cache::saved_regs, and iq2000_frame_cache::saved_sp.
static void iq2000_frame_this_id | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
struct frame_id * | this_id | ||
) | [static] |
Definition at line 423 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 struct gdbarch* iq2000_gdbarch_init | ( | struct gdbarch_info | info, |
struct gdbarch_list * | arches | ||
) | [static, read] |
Definition at line 807 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_from_pc(), iq2000_dummy_id(), iq2000_frame_align(), iq2000_pointer_to_address(), iq2000_push_dummy_call(), iq2000_register_name(), iq2000_register_type(), iq2000_return_value(), iq2000_skip_prologue(), iq2000_unwind_pc(), iq2000_unwind_sp(), set_gdbarch_address_to_pointer(), set_gdbarch_breakpoint_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_print_insn(), 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_unwind_pc(), and set_gdbarch_unwind_sp().
Referenced by _initialize_iq2000_tdep().
static void iq2000_init_frame_cache | ( | struct iq2000_frame_cache * | cache | ) | [static] |
Definition at line 320 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 int iq2000_pass_8bytetype_by_address | ( | struct type * | type | ) | [static] |
Definition at line 617 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().
static CORE_ADDR iq2000_pointer_to_address | ( | struct gdbarch * | gdbarch, |
struct type * | type, | ||
const gdb_byte * | buf | ||
) | [static] |
Definition at line 89 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().
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 648 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(), memcpy(), 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().
static const char* iq2000_register_name | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static] |
Definition at line 126 of file iq2000-tdep.c.
References E_NUM_REGS, and regnum.
Referenced by iq2000_gdbarch_init().
static struct type* iq2000_register_type | ( | struct gdbarch * | gdbarch, |
int | regnum | ||
) | [static, read] |
Definition at line 602 of file iq2000-tdep.c.
References builtin_type::builtin_int32, and builtin_type().
Referenced by iq2000_gdbarch_init().
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 585 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 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 200 of file iq2000-tdep.c.
References ADDIU_IMMEDIATE, ADDIU_REG_SRC, ADDIU_REG_TGT, E_FP_REGNUM, E_LR_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, LONGEST, 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().
static CORE_ADDR iq2000_skip_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc | ||
) | [static] |
Definition at line 343 of file iq2000-tdep.c.
References find_pc_line(), find_pc_partial_function(), iq2000_init_frame_cache(), iq2000_scan_prologue(), and iq2000_frame_cache::pc.
Referenced by iq2000_gdbarch_init().
static void iq2000_store_return_value | ( | struct type * | type, |
struct regcache * | regcache, | ||
const void * | valbuf | ||
) | [static] |
Definition at line 503 of file iq2000-tdep.c.
References E_FN_RETURN_REGNUM, len, memcpy(), memset(), regcache_raw_write(), size, and TYPE_LENGTH.
Referenced by iq2000_return_value().
static CORE_ADDR iq2000_unwind_pc | ( | struct gdbarch * | gdbarch, |
struct frame_info * | next_frame | ||
) | [static] |
Definition at line 452 of file iq2000-tdep.c.
References E_PC_REGNUM, and frame_unwind_register_unsigned().
Referenced by iq2000_gdbarch_init().
static CORE_ADDR iq2000_unwind_sp | ( | struct gdbarch * | gdbarch, |
struct frame_info * | next_frame | ||
) | [static] |
Definition at line 446 of file iq2000-tdep.c.
References E_SP_REGNUM, and frame_unwind_register_unsigned().
Referenced by iq2000_gdbarch_init().
static int iq2000_use_struct_convention | ( | struct type * | type | ) | [static] |
Definition at line 527 of file iq2000-tdep.c.
References TYPE_CODE, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_LENGTH.
Referenced by iq2000_return_value().
Referenced by initialize_all_files().
struct frame_base iq2000_frame_base [static] |
{ &iq2000_frame_unwind, iq2000_frame_base_address, iq2000_frame_base_address, iq2000_frame_base_address }
Definition at line 473 of file iq2000-tdep.c.
struct frame_unwind iq2000_frame_unwind [static] |
{ NORMAL_FRAME, default_frame_unwind_stop_reason, iq2000_frame_this_id, iq2000_frame_prev_register, NULL, default_frame_sniffer }
Definition at line 436 of file iq2000-tdep.c.