GDB (xrefs)
|
#include "defs.h"
#include "frame.h"
#include "frame-unwind.h"
#include "frame-base.h"
#include "inferior.h"
#include "dis-asm.h"
#include "symfile.h"
#include "remote.h"
#include "gdbcore.h"
#include "gdb/sim-lm32.h"
#include "gdb/callback.h"
#include "gdb/remote-sim.h"
#include "sim-regno.h"
#include "arch-utils.h"
#include "regcache.h"
#include "trad-frame.h"
#include "reggroups.h"
#include "opcodes/lm32-desc.h"
#include "gdb_string.h"
Go to the source code of this file.
Classes | |
struct | gdbarch_tdep |
struct | lm32_frame_cache |
Defines | |
#define | LM32_OPCODE(insn) ((insn >> 26) & 0x3f) |
#define | LM32_REG0(insn) ((insn >> 21) & 0x1f) |
#define | LM32_REG1(insn) ((insn >> 16) & 0x1f) |
#define | LM32_REG2(insn) ((insn >> 11) & 0x1f) |
#define | LM32_IMM16(insn) ((((long)insn & 0xffff) << 16) >> 16) |
Functions | |
static void | lm32_add_reggroups (struct gdbarch *gdbarch) |
static int | lm32_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *group) |
static const char * | lm32_register_name (struct gdbarch *gdbarch, int reg_nr) |
static struct type * | lm32_register_type (struct gdbarch *gdbarch, int reg_nr) |
static int | lm32_cannot_store_register (struct gdbarch *gdbarch, int regno) |
static CORE_ADDR | lm32_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR limit, struct lm32_frame_cache *info) |
static CORE_ADDR | lm32_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc) |
static const gdb_byte * | lm32_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr, int *lenptr) |
static CORE_ADDR | lm32_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 | lm32_extract_return_value (struct type *type, struct regcache *regcache, gdb_byte *valbuf) |
static void | lm32_store_return_value (struct type *type, struct regcache *regcache, const gdb_byte *valbuf) |
static enum return_value_convention | lm32_return_value (struct gdbarch *gdbarch, struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf) |
static CORE_ADDR | lm32_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame) |
static CORE_ADDR | lm32_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame) |
static struct frame_id | lm32_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame) |
static struct lm32_frame_cache * | lm32_frame_cache (struct frame_info *this_frame, void **this_prologue_cache) |
static void | lm32_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id) |
static struct value * | lm32_frame_prev_register (struct frame_info *this_frame, void **this_prologue_cache, int regnum) |
static CORE_ADDR | lm32_frame_base_address (struct frame_info *this_frame, void **this_cache) |
static CORE_ADDR | lm32_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp) |
static struct gdbarch * | lm32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
void | _initialize_lm32_tdep (void) |
Variables | |
static struct frame_unwind | lm32_frame_unwind |
static struct frame_base | lm32_frame_base |
initialize_file_ftype | _initialize_lm32_tdep |
#define LM32_IMM16 | ( | insn | ) | ((((long)insn & 0xffff) << 16) >> 16) |
Definition at line 47 of file lm32-tdep.c.
Referenced by lm32_analyze_prologue().
#define LM32_OPCODE | ( | insn | ) | ((insn >> 26) & 0x3f) |
Definition at line 43 of file lm32-tdep.c.
Referenced by lm32_analyze_prologue().
#define LM32_REG0 | ( | insn | ) | ((insn >> 21) & 0x1f) |
Definition at line 44 of file lm32-tdep.c.
Referenced by lm32_analyze_prologue().
#define LM32_REG1 | ( | insn | ) | ((insn >> 16) & 0x1f) |
Definition at line 45 of file lm32-tdep.c.
Referenced by lm32_analyze_prologue().
#define LM32_REG2 | ( | insn | ) | ((insn >> 11) & 0x1f) |
Definition at line 46 of file lm32-tdep.c.
Referenced by lm32_analyze_prologue().
void _initialize_lm32_tdep | ( | void | ) |
Definition at line 586 of file lm32-tdep.c.
References _initialize_lm32_tdep, lm32_gdbarch_init(), and register_gdbarch_init().
static void lm32_add_reggroups | ( | struct gdbarch * | gdbarch | ) | [static] |
Definition at line 68 of file lm32-tdep.c.
References all_reggroup, general_reggroup, reggroup_add(), and system_reggroup.
Referenced by lm32_gdbarch_init().
static CORE_ADDR lm32_analyze_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc, | ||
CORE_ADDR | limit, | ||
struct lm32_frame_cache * | info | ||
) | [static] |
Definition at line 128 of file lm32-tdep.c.
References trad_frame_saved_reg::addr, gdbarch_byte_order(), LM32_IMM16, LM32_OPCODE, LM32_REG0, LM32_REG1, LM32_REG2, read_memory_integer(), lm32_frame_cache::saved_regs, and lm32_frame_cache::size.
Referenced by lm32_frame_cache(), and lm32_skip_prologue().
static const gdb_byte* lm32_breakpoint_from_pc | ( | struct gdbarch * | gdbarch, |
CORE_ADDR * | pcptr, | ||
int * | lenptr | ||
) | [static] |
Definition at line 222 of file lm32-tdep.c.
Referenced by lm32_gdbarch_init().
static int lm32_cannot_store_register | ( | struct gdbarch * | gdbarch, |
int | regno | ||
) | [static] |
Definition at line 120 of file lm32-tdep.c.
Referenced by lm32_gdbarch_init().
static struct frame_id lm32_dummy_id | ( | struct gdbarch * | gdbarch, |
struct frame_info * | this_frame | ||
) | [static, read] |
Definition at line 404 of file lm32-tdep.c.
References frame_id_build(), get_frame_pc(), get_frame_register_unsigned(), and sp.
Referenced by lm32_gdbarch_init().
static void lm32_extract_return_value | ( | struct type * | type, |
struct regcache * | regcache, | ||
gdb_byte * | valbuf | ||
) | [static] |
Definition at line 309 of file lm32-tdep.c.
References gdbarch::byte_order, gdbarch_byte_order(), get_regcache_arch(), memcpy(), read_memory(), regcache_cooked_read_unsigned(), store_unsigned_integer(), TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_INT, TYPE_CODE_STRUCT, TYPE_CODE_UNION, TYPE_LENGTH, and ULONGEST.
Referenced by lm32_return_value().
static CORE_ADDR lm32_frame_align | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | sp | ||
) | [static] |
Definition at line 511 of file lm32-tdep.c.
Referenced by lm32_gdbarch_init().
static CORE_ADDR lm32_frame_base_address | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static] |
Definition at line 496 of file lm32-tdep.c.
References lm32_frame_cache::base, and lm32_frame_cache().
static struct lm32_frame_cache* lm32_frame_cache | ( | struct frame_info * | this_frame, |
void ** | this_prologue_cache | ||
) | [static, read] |
Definition at line 418 of file lm32-tdep.c.
References trad_frame_saved_reg::addr, lm32_frame_cache::base, FRAME_OBSTACK_ZALLOC, gdbarch_num_regs(), get_frame_arch(), get_frame_func(), get_frame_pc(), get_frame_register_unsigned(), lm32_analyze_prologue(), lm32_frame_cache::pc, lm32_frame_cache::saved_regs, lm32_frame_cache::size, trad_frame_addr_p(), trad_frame_alloc_saved_regs(), trad_frame_set_value(), and ULONGEST.
Referenced by lm32_frame_base_address(), lm32_frame_prev_register(), and lm32_frame_this_id().
static struct value* lm32_frame_prev_register | ( | struct frame_info * | this_frame, |
void ** | this_prologue_cache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 477 of file lm32-tdep.c.
References lm32_frame_cache(), lm32_frame_cache::saved_regs, and trad_frame_get_prev_register().
static void lm32_frame_this_id | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
struct frame_id * | this_id | ||
) | [static] |
Definition at line 464 of file lm32-tdep.c.
References lm32_frame_cache::base, frame_id_build(), lm32_frame_cache(), and lm32_frame_cache::pc.
static struct gdbarch* lm32_gdbarch_init | ( | struct gdbarch_info | info, |
struct gdbarch_list * | arches | ||
) | [static, read] |
Definition at line 519 of file lm32-tdep.c.
References core_addr_lessthan(), frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_list_lookup_by_info(), lm32_add_reggroups(), lm32_breakpoint_from_pc(), lm32_cannot_store_register(), lm32_dummy_id(), lm32_frame_align(), lm32_push_dummy_call(), lm32_register_name(), lm32_register_reggroup_p(), lm32_register_type(), lm32_return_value(), lm32_skip_prologue(), lm32_unwind_pc(), lm32_unwind_sp(), set_gdbarch_breakpoint_from_pc(), set_gdbarch_cannot_store_register(), set_gdbarch_decr_pc_after_break(), set_gdbarch_double_bit(), set_gdbarch_dummy_id(), set_gdbarch_float_bit(), set_gdbarch_frame_align(), set_gdbarch_frame_args_skip(), set_gdbarch_have_nonsteppable_watchpoint(), 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_regs(), set_gdbarch_pc_regnum(), set_gdbarch_print_insn(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_register_name(), set_gdbarch_register_reggroup_p(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), and XMALLOC.
Referenced by _initialize_lm32_tdep().
static CORE_ADDR lm32_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 235 of file lm32-tdep.c.
References builtin_type::builtin_int32, builtin_type(), check_typedef(), extract_unsigned_integer(), gdbarch_byte_order(), regcache_cooked_write_signed(), regcache_cooked_write_unsigned(), TYPE_CODE, TYPE_CODE_BOOL, TYPE_CODE_CHAR, TYPE_CODE_ENUM, TYPE_CODE_INT, TYPE_CODE_RANGE, TYPE_LENGTH, ULONGEST, value_cast(), value_contents(), value_type(), and write_memory().
Referenced by lm32_gdbarch_init().
static const char* lm32_register_name | ( | struct gdbarch * | gdbarch, |
int | reg_nr | ||
) | [static] |
Definition at line 93 of file lm32-tdep.c.
Referenced by lm32_gdbarch_init().
static int lm32_register_reggroup_p | ( | struct gdbarch * | gdbarch, |
int | regnum, | ||
struct reggroup * | group | ||
) | [static] |
Definition at line 78 of file lm32-tdep.c.
References default_register_reggroup_p(), general_reggroup, and system_reggroup.
Referenced by lm32_gdbarch_init().
static struct type* lm32_register_type | ( | struct gdbarch * | gdbarch, |
int | reg_nr | ||
) | [static, read] |
Definition at line 112 of file lm32-tdep.c.
References builtin_type::builtin_int32, and builtin_type().
Referenced by lm32_gdbarch_init().
static enum return_value_convention lm32_return_value | ( | struct gdbarch * | gdbarch, |
struct value * | function, | ||
struct type * | valtype, | ||
struct regcache * | regcache, | ||
gdb_byte * | readbuf, | ||
const gdb_byte * | writebuf | ||
) | [static] |
Definition at line 372 of file lm32-tdep.c.
References code, lm32_extract_return_value(), lm32_store_return_value(), RETURN_VALUE_REGISTER_CONVENTION, RETURN_VALUE_STRUCT_CONVENTION, TYPE_CODE, TYPE_CODE_ARRAY, TYPE_CODE_STRUCT, TYPE_CODE_UNION, and TYPE_LENGTH.
Referenced by lm32_gdbarch_init().
static CORE_ADDR lm32_skip_prologue | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | pc | ||
) | [static] |
Definition at line 188 of file lm32-tdep.c.
References find_pc_partial_function(), lm32_analyze_prologue(), max, lm32_frame_cache::saved_regs, and skip_prologue_using_sal().
Referenced by lm32_gdbarch_init().
static void lm32_store_return_value | ( | struct type * | type, |
struct regcache * | regcache, | ||
const gdb_byte * | valbuf | ||
) | [static] |
Definition at line 346 of file lm32-tdep.c.
References _, gdbarch::byte_order, error(), extract_unsigned_integer(), gdbarch_byte_order(), get_regcache_arch(), len, regcache_cooked_write_unsigned(), TYPE_LENGTH, and ULONGEST.
Referenced by lm32_return_value().
static CORE_ADDR lm32_unwind_pc | ( | struct gdbarch * | gdbarch, |
struct frame_info * | next_frame | ||
) | [static] |
Definition at line 392 of file lm32-tdep.c.
References frame_unwind_register_unsigned().
Referenced by lm32_gdbarch_init().
static CORE_ADDR lm32_unwind_sp | ( | struct gdbarch * | gdbarch, |
struct frame_info * | next_frame | ||
) | [static] |
Definition at line 398 of file lm32-tdep.c.
References frame_unwind_register_unsigned().
Referenced by lm32_gdbarch_init().
Referenced by _initialize_lm32_tdep(), and initialize_all_files().
struct frame_base lm32_frame_base [static] |
{ &lm32_frame_unwind, lm32_frame_base_address, lm32_frame_base_address, lm32_frame_base_address }
Definition at line 503 of file lm32-tdep.c.
struct frame_unwind lm32_frame_unwind [static] |
{ NORMAL_FRAME, default_frame_unwind_stop_reason, lm32_frame_this_id, lm32_frame_prev_register, NULL, default_frame_sniffer }
Definition at line 486 of file lm32-tdep.c.