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 "sim/sim-lm32.h"
#include "arch-utils.h"
#include "regcache.h"
#include "trad-frame.h"
#include "reggroups.h"
#include <algorithm>
#include "gdbarch.h"
#include "cgen-remap.h"
#include "opcodes/lm32-desc.h"
Go to the source code of this file.
Classes | |
struct | lm32_gdbarch_tdep |
struct | lm32_frame_cache |
Macros | |
#define | GDB_CGEN_REMAP_PREFIX lm32 |
#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 int | lm32_register_reggroup_p (struct gdbarch *gdbarch, int regnum, const 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) |
typedef | BP_MANIPULATION (lm32_break_insn) |
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 struct lm32_frame_cache * | lm32_frame_cache (frame_info_ptr this_frame, void **this_prologue_cache) |
static void | lm32_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id) |
static struct value * | lm32_frame_prev_register (frame_info_ptr this_frame, void **this_prologue_cache, int regnum) |
static CORE_ADDR | lm32_frame_base_address (frame_info_ptr 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 () |
Variables | |
constexpr gdb_byte | lm32_break_insn [4] = { OP_RAISE << 2, 0, 0, 2 } |
static const struct frame_unwind | lm32_frame_unwind |
static const struct frame_base | lm32_frame_base |
#define GDB_CGEN_REMAP_PREFIX lm32 |
Definition at line 39 of file lm32-tdep.c.
#define LM32_IMM16 | ( | insn | ) | ((((long)insn & 0xffff) << 16) >> 16) |
Definition at line 48 of file lm32-tdep.c.
Referenced by lm32_analyze_prologue().
#define LM32_OPCODE | ( | insn | ) | ((insn >> 26) & 0x3f) |
Definition at line 44 of file lm32-tdep.c.
Referenced by lm32_analyze_prologue().
#define LM32_REG0 | ( | insn | ) | ((insn >> 21) & 0x1f) |
Definition at line 45 of file lm32-tdep.c.
Referenced by lm32_analyze_prologue().
#define LM32_REG1 | ( | insn | ) | ((insn >> 16) & 0x1f) |
Definition at line 46 of file lm32-tdep.c.
Referenced by lm32_analyze_prologue().
#define LM32_REG2 | ( | insn | ) | ((insn >> 11) & 0x1f) |
Definition at line 47 of file lm32-tdep.c.
Referenced by lm32_analyze_prologue().
void _initialize_lm32_tdep | ( | ) |
Definition at line 540 of file lm32-tdep.c.
References gdbarch_register(), and lm32_gdbarch_init().
typedef BP_MANIPULATION | ( | lm32_break_insn | ) |
Definition at line 210 of file lm32-tdep.c.
References builtin_type::builtin_int32, builtin_type(), check_typedef(), type::code(), value::contents(), extract_unsigned_integer(), gdbarch_byte_order(), type::length(), regcache_cooked_write_signed(), regcache_cooked_write_unsigned(), return_method_struct, value::type(), value_cast(), and write_memory_unsigned_integer().
|
static |
Definition at line 117 of file lm32-tdep.c.
References gdbarch_byte_order(), LM32_IMM16, LM32_OPCODE, LM32_REG0, LM32_REG1, LM32_REG2, and read_memory_integer().
Referenced by lm32_frame_cache(), and lm32_skip_prologue().
|
static |
Definition at line 109 of file lm32-tdep.c.
Referenced by lm32_gdbarch_init().
|
static |
Definition at line 293 of file lm32-tdep.c.
References reg_buffer::arch(), type::code(), gdbarch_byte_order(), type::length(), read_memory(), regcache_cooked_read_unsigned(), and store_unsigned_integer().
Referenced by lm32_return_value().
|
static |
Definition at line 476 of file lm32-tdep.c.
Referenced by lm32_gdbarch_init().
|
static |
Definition at line 461 of file lm32-tdep.c.
References lm32_frame_cache().
|
static |
Definition at line 382 of file lm32-tdep.c.
References FRAME_OBSTACK_ZALLOC, gdbarch_num_regs(), get_frame_arch(), get_frame_func(), get_frame_pc(), get_frame_register_unsigned(), lm32_analyze_prologue(), and trad_frame_alloc_saved_regs().
Referenced by lm32_frame_base_address(), lm32_frame_prev_register(), and lm32_frame_this_id().
|
static |
Definition at line 441 of file lm32-tdep.c.
References lm32_frame_cache(), regnum, and trad_frame_get_prev_register().
|
static |
Definition at line 428 of file lm32-tdep.c.
References lm32_frame_cache::base, frame_id_build(), lm32_frame_cache(), and lm32_frame_cache::pc.
|
static |
Definition at line 484 of file lm32-tdep.c.
References arches, core_addr_lessthan(), frame_base_set_default(), frame_unwind_append_unwinder(), gdbarch_alloc(), gdbarch_list_lookup_by_info(), gdbarch::info(), lm32_cannot_store_register(), lm32_frame_align(), lm32_frame_base, lm32_frame_unwind, lm32_register_name(), lm32_register_reggroup_p(), lm32_register_type(), lm32_return_value(), lm32_skip_prologue(), set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_cannot_store_register(), set_gdbarch_decr_pc_after_break(), set_gdbarch_double_bit(), 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_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(), and set_gdbarch_sw_breakpoint_from_kind().
Referenced by _initialize_lm32_tdep().
|
static |
Definition at line 84 of file lm32-tdep.c.
References gdb_static_assert().
Referenced by lm32_gdbarch_init().
|
static |
Definition at line 69 of file lm32-tdep.c.
References default_register_reggroup_p(), general_reggroup, regnum, and system_reggroup.
Referenced by lm32_gdbarch_init().
Definition at line 101 of file lm32-tdep.c.
References builtin_type::builtin_int32, and builtin_type().
Referenced by lm32_gdbarch_init().
|
static |
Definition at line 356 of file lm32-tdep.c.
References code, type::code(), type::length(), lm32_extract_return_value(), lm32_store_return_value(), RETURN_VALUE_REGISTER_CONVENTION, and RETURN_VALUE_STRUCT_CONVENTION.
Referenced by lm32_gdbarch_init().
|
static |
Definition at line 176 of file lm32-tdep.c.
References find_pc_partial_function(), lm32_analyze_prologue(), lm32_frame_cache::pc, lm32_frame_cache::saved_regs, and skip_prologue_using_sal().
Referenced by lm32_gdbarch_init().
|
static |
Definition at line 330 of file lm32-tdep.c.
References reg_buffer::arch(), extract_unsigned_integer(), gdbarch_byte_order(), type::length(), and regcache_cooked_write_unsigned().
Referenced by lm32_return_value().
|
constexpr |
Definition at line 208 of file lm32-tdep.c.
|
static |
Definition at line 468 of file lm32-tdep.c.
Referenced by lm32_gdbarch_init().
|
static |
Definition at line 450 of file lm32-tdep.c.
Referenced by lm32_gdbarch_init().