36 const void *gprs,
size_t len)
39 const gdb_byte *buf =
nullptr;
45 for (
int i = 1; i < 32; i++)
47 buf = (
const gdb_byte*) gprs + regsize * i;
67 buf = (
const gdb_byte*) gprs + regsize *
regnum;
77 void *gprs,
size_t len)
80 gdb_byte *buf =
nullptr;
84 for (
int i = 0; i < 32; i++)
86 buf = (gdb_byte *) gprs + regsize * i;
104 buf = (gdb_byte *) gprs + regsize *
regnum;
122 const void *fprs,
size_t len)
124 const gdb_byte *buf =
nullptr;
132 buf = (
const gdb_byte *)fprs + fprsize * i;
168 void *fprs,
size_t len)
170 gdb_byte *buf =
nullptr;
178 buf = (gdb_byte *)fprs + fprsize * i;
220#define LOONGARCH_RT_SIGFRAME_UCONTEXT_OFFSET 128
221#define LOONGARCH_UCONTEXT_SIGCONTEXT_OFFSET 176
234 for (
int i = 0; i < 32; i++)
241#define LOONGARCH_INST_LIW_A7_RT_SIGRETURN 0x03822c0b
243#define LOONGARCH_INST_SYSCALL 0x002b0000
281#define LOONGARCH_NR_rt_sigreturn 139
310 info.bfd_arch_info->bits_per_address == 32
void raw_collect(int regnum, void *buf) const override
void raw_supply(int regnum, const void *buf) override
void raw_supply_zeroed(int regnum)
ULONGEST get_frame_register_unsigned(frame_info_ptr frame, int regnum)
CORE_ADDR frame_unwind_caller_pc(frame_info_ptr this_frame)
CORE_ADDR get_frame_pc(frame_info_ptr frame)
CORE_ADDR get_frame_sp(frame_info_ptr this_frame)
struct frame_id frame_id_build(CORE_ADDR stack_addr, CORE_ADDR code_addr)
void set_gdbarch_skip_trampoline_code(struct gdbarch *gdbarch, gdbarch_skip_trampoline_code_ftype *skip_trampoline_code)
void set_gdbarch_fetch_tls_load_module_address(struct gdbarch *gdbarch, gdbarch_fetch_tls_load_module_address_ftype *fetch_tls_load_module_address)
void set_gdbarch_skip_solib_resolver(struct gdbarch *gdbarch, gdbarch_skip_solib_resolver_ftype *skip_solib_resolver)
void set_gdbarch_iterate_over_regset_sections(struct gdbarch *gdbarch, gdbarch_iterate_over_regset_sections_ftype *iterate_over_regset_sections)
void iterate_over_regset_sections_cb(const char *sect_name, int supply_size, int collect_size, const struct regset *regset, const char *human_name, void *cb_data)
CORE_ADDR glibc_skip_solib_resolver(struct gdbarch *gdbarch, CORE_ADDR pc)
link_map_offsets * linux_lp64_fetch_link_map_offsets()
link_map_offsets * linux_ilp32_fetch_link_map_offsets()
void linux_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch, int num_disp_step_buffers)
static CORE_ADDR loongarch_linux_syscall_next_pc(frame_info_ptr frame)
static void loongarch_supply_gregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *gprs, size_t len)
static void loongarch_fill_gregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *gprs, size_t len)
void _initialize_loongarch_linux_tdep()
#define LOONGARCH_RT_SIGFRAME_UCONTEXT_OFFSET
#define LOONGARCH_INST_SYSCALL
const struct regset loongarch_gregset
#define LOONGARCH_INST_LIW_A7_RT_SIGRETURN
static void loongarch_linux_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
#define LOONGARCH_UCONTEXT_SIGCONTEXT_OFFSET
static const struct tramp_frame loongarch_linux_rt_sigframe
const struct regset loongarch_fpregset
#define LOONGARCH_NR_rt_sigreturn
static void loongarch_iterate_over_regset_sections(struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
static void loongarch_fill_fpregset(const struct regset *r, const struct regcache *regcache, int regnum, void *fprs, size_t len)
static void loongarch_supply_fpregset(const struct regset *r, struct regcache *regcache, int regnum, const void *fprs, size_t len)
static void loongarch_linux_rt_sigframe_init(const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
@ LOONGARCH_LINUX_NUM_FPREGSET
@ LOONGARCH_LINUX_NUM_FCC
@ LOONGARCH_FIRST_FCC_REGNUM
@ LOONGARCH_FIRST_FP_REGNUM
@ LOONGARCH_LINUX_NUM_GREGSET
@ LOONGARCH_ORIG_A0_REGNUM
CORE_ADDR find_solib_trampoline_target(frame_info_ptr frame, CORE_ADDR pc)
void gdbarch_register_osabi(enum bfd_architecture arch, unsigned long machine, enum gdb_osabi osabi, void(*init_osabi)(struct gdbarch_info, struct gdbarch *))
int register_size(struct gdbarch *gdbarch, int regnum)
void(* func)(remote_target *remote, char *)
void set_solib_svr4_fetch_link_map_offsets(struct gdbarch *gdbarch, struct link_map_offsets *(*flmo)(void))
CORE_ADDR svr4_fetch_objfile_link_map(struct objfile *objfile)
CORE_ADDR(* syscall_next_pc)(frame_info_ptr frame)
void trad_frame_set_reg_addr(struct trad_frame_cache *this_trad_cache, int regnum, CORE_ADDR addr)
void trad_frame_set_id(struct trad_frame_cache *this_trad_cache, struct frame_id this_id)
void tramp_frame_prepend_unwinder(struct gdbarch *gdbarch, const struct tramp_frame *tramp_frame)
#define TRAMP_SENTINEL_INSN