38 #define MIPS_FBSD_NUM_GREGS 40 44 #define MIPS_FBSD_NUM_FPREGS 34 72 const void *fpregs,
size_t regsize)
79 for (i = 0; i <= 32; i++)
82 regs + i * regsize, regsize);
85 regs + 32 * regsize, regsize);
92 regs + 33 * regsize, regsize);
101 const void *gregs,
size_t regsize)
118 void *fpregs,
size_t regsize)
125 for (i = 0; i < 32; i++)
128 regs + i * regsize, regsize);
131 regs + 32 * regsize, regsize);
136 regs + 33 * regsize, regsize);
145 void *gregs,
size_t regsize)
163 int regnum,
const void *fpregs,
size_t len)
180 int regnum,
void *fpregs,
size_t len)
196 const void *gregs,
size_t len)
213 int regnum,
void *gregs,
size_t len)
256 #define FBSD_SYS_sigreturn 417 258 #define MIPS_INST_LI_V0_SIGRETURN 0x24020000 + FBSD_SYS_sigreturn 259 #define MIPS_INST_SYSCALL 0x0000000c 260 #define MIPS_INST_BREAK 0x0000000d 262 #define O32_SIGFRAME_UCONTEXT_OFFSET (16) 263 #define O32_SIGSET_T_SIZE (16) 265 #define O32_UCONTEXT_ONSTACK (O32_SIGSET_T_SIZE) 266 #define O32_UCONTEXT_PC (O32_UCONTEXT_ONSTACK + 4) 267 #define O32_UCONTEXT_REGS (O32_UCONTEXT_PC + 4) 268 #define O32_UCONTEXT_SR (O32_UCONTEXT_REGS + 4 * 32) 269 #define O32_UCONTEXT_LO (O32_UCONTEXT_SR + 4) 270 #define O32_UCONTEXT_HI (O32_UCONTEXT_LO + 4) 271 #define O32_UCONTEXT_FPUSED (O32_UCONTEXT_HI + 4) 272 #define O32_UCONTEXT_FPREGS (O32_UCONTEXT_FPUSED + 4) 274 #define O32_UCONTEXT_REG_SIZE 4 337 #define MIPS_INST_ADDIU_A0_SP_O32 (0x27a40000 \ 338 + O32_SIGFRAME_UCONTEXT_OFFSET) 354 #define N64_SIGFRAME_UCONTEXT_OFFSET (32) 355 #define N64_SIGSET_T_SIZE (16) 357 #define N64_UCONTEXT_ONSTACK (N64_SIGSET_T_SIZE) 358 #define N64_UCONTEXT_PC (N64_UCONTEXT_ONSTACK + 8) 359 #define N64_UCONTEXT_REGS (N64_UCONTEXT_PC + 8) 360 #define N64_UCONTEXT_SR (N64_UCONTEXT_REGS + 8 * 32) 361 #define N64_UCONTEXT_LO (N64_UCONTEXT_SR + 8) 362 #define N64_UCONTEXT_HI (N64_UCONTEXT_LO + 8) 363 #define N64_UCONTEXT_FPUSED (N64_UCONTEXT_HI + 8) 364 #define N64_UCONTEXT_FPREGS (N64_UCONTEXT_FPUSED + 8) 366 #define N64_UCONTEXT_REG_SIZE 8 429 #define MIPS_INST_ADDIU_A0_SP_N32 (0x27a40000 \ 430 + N64_SIGFRAME_UCONTEXT_OFFSET) 446 #define MIPS_INST_DADDIU_A0_SP_N64 (0x67a40000 \ 447 + N64_SIGFRAME_UCONTEXT_OFFSET) void _initialize_mips_fbsd_tdep(void)
void trad_frame_set_reg_addr(struct trad_frame_cache *this_trad_cache, int regnum, CORE_ADDR addr)
struct frame_id frame_id_build(CORE_ADDR stack_addr, CORE_ADDR code_addr)
static void mips_fbsd_collect_fpregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *fpregs, size_t len)
#define TRAMP_SENTINEL_INSN
void() iterate_over_regset_sections_cb(const char *sect_name, int size, const struct regset *regset, const char *human_name, void *cb_data)
static struct link_map_offsets * mips_fbsd_lp64_fetch_link_map_offsets(void)
int gdbarch_ptr_bit(struct gdbarch *gdbarch)
void trad_frame_set_id(struct trad_frame_cache *this_trad_cache, struct frame_id this_id)
static void mips64_fbsd_sigframe_init(const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *cache, CORE_ADDR func)
static void mips_fbsd_supply_reg(struct regcache *regcache, int regnum, const void *addr, size_t len)
#define N64_UCONTEXT_FPUSED
#define O32_UCONTEXT_FPREGS
int gdbarch_num_regs(struct gdbarch *gdbarch)
static void mips_fbsd_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
const struct mips_regnum * mips_regnum(struct gdbarch *gdbarch)
void mips_fbsd_collect_gregs(const struct regcache *regcache, int regnum, void *gregs, size_t regsize)
static const struct tramp_frame mipsn32_fbsd_sigframe
static void mips_fbsd_supply_gregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
void raw_supply_integer(int regnum, const gdb_byte *addr, int addr_len, bool is_signed)
#define MIPS_INST_SYSCALL
#define MIPS_FBSD_NUM_GREGS
unsigned int mips_abi_regsize(struct gdbarch *gdbarch)
void mips_fbsd_supply_fpregs(struct regcache *regcache, int regnum, const void *fpregs, size_t regsize)
#define MIPS_INST_LI_V0_SIGRETURN
static struct link_map_offsets * mips_fbsd_ilp32_fetch_link_map_offsets(void)
void mips_fbsd_supply_gregs(struct regcache *regcache, int regnum, const void *gregs, size_t regsize)
static void mips_fbsd_sigframe_init(const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *cache, CORE_ADDR func)
static void mips_fbsd_iterate_over_regset_sections(struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
static ULONGEST extract_unsigned_integer(const gdb_byte *addr, int len, enum bfd_endian byte_order)
static const struct regset mips_fbsd_fpregset
#define MIPS_FBSD_NUM_FPREGS
#define N64_UCONTEXT_REG_SIZE
static const struct tramp_frame mips64_fbsd_sigframe
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
void set_solib_svr4_fetch_link_map_offsets(struct gdbarch *gdbarch, struct link_map_offsets *(*flmo)(void))
void raw_collect_integer(int regnum, gdb_byte *addr, int addr_len, bool is_signed) const
LONGEST get_frame_register_signed(struct frame_info *frame, int regnum)
void fbsd_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
#define MIPS_INST_DADDIU_A0_SP_N64
#define N64_SIGFRAME_UCONTEXT_OFFSET
#define N64_UCONTEXT_REGS
void gdbarch_register_osabi(enum bfd_architecture arch, unsigned long machine, enum gdb_osabi osabi, void(*init_osabi)(struct gdbarch_info, struct gdbarch *))
#define MIPS_INST_ADDIU_A0_SP_O32
static void mips_fbsd_collect_reg(const struct regcache *regcache, int regnum, void *addr, size_t len)
void set_gdbarch_software_single_step(struct gdbarch *gdbarch, gdbarch_software_single_step_ftype software_single_step)
#define O32_UCONTEXT_REGS
static const struct tramp_frame mips_fbsd_sigframe
#define MIPS_INST_ADDIU_A0_SP_N32
int gdbarch_fp0_regnum(struct gdbarch *gdbarch)
static void mips_fbsd_collect_gregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
static void mips_fbsd_supply_fpregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *fpregs, size_t len)
int target_read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
void tramp_frame_prepend_unwinder(struct gdbarch *gdbarch, const struct tramp_frame *tramp_frame)
#define N64_UCONTEXT_FPREGS
void mips_fbsd_collect_fpregs(const struct regcache *regcache, int regnum, void *fpregs, size_t regsize)
#define O32_UCONTEXT_REG_SIZE
static const struct regset mips_fbsd_gregset
void set_gdbarch_iterate_over_regset_sections(struct gdbarch *gdbarch, gdbarch_iterate_over_regset_sections_ftype iterate_over_regset_sections)
std::vector< CORE_ADDR > mips_software_single_step(struct regcache *regcache)
#define O32_SIGFRAME_UCONTEXT_OFFSET
#define O32_UCONTEXT_FPUSED
enum bfd_endian byte_order
struct gdbarch * get_frame_arch(struct frame_info *this_frame)