87 #define MIPS_LINUX_JB_ELEMENT_SIZE 4
88 #define MIPS_LINUX_JB_PC 0
164 int regnum,
const void *gregs,
size_t len)
185 for (regi = 1; regi < 32; regi++)
197 if (regno > 0 && regno < 32)
224 dst = regp + regaddr;
251 for (regi = 0; regi < 32; regi++)
269 int regnum,
const void *gregs,
size_t len)
292 else if (regno ==
mips_regnum (gdbarch)->fp_control_status)
294 to = (
char *) (*fpregsetp + 32);
297 else if (regno == -1)
301 for (regi = 0; regi < 32; regi++)
329 #define MIPS64_LINUX_JB_PC 0
414 int regnum,
const void *gregs,
size_t len)
436 for (regi = 1; regi < 32; regi++)
449 if (regno > 0 && regno < 32)
477 dst = regp + regaddr;
504 for (regi = 0; regi < 32; regi++)
507 = (
const gdb_byte *) (*fpregsetp + (regi & ~1));
515 for (regi = 0; regi < 32; regi++)
518 (
const char *) (*fpregsetp + regi));
521 (
const gdb_byte *) (*fpregsetp + 32));
528 (
const gdb_byte *) (*fpregsetp + 32) + 4);
534 int regnum,
const void *gregs,
size_t len)
561 to = (
gdb_byte *) (*fpregsetp + (regi & ~1));
568 to = (
gdb_byte *) (*fpregsetp + regno
573 else if (regno ==
mips_regnum (gdbarch)->fp_control_status)
581 to = (
gdb_byte *) (*fpregsetp + 32);
584 else if (regno ==
mips_regnum (gdbarch)->fp_implementation_revision)
592 to = (
gdb_byte *) (*fpregsetp + 32) + 4;
595 else if (regno == -1)
599 for (regi = 0; regi < 32; regi++)
605 mips_regnum (gdbarch)->fp_implementation_revision);
619 static const struct regset mips_linux_gregset =
624 static const struct regset mips64_linux_gregset =
629 static const struct regset mips_linux_fpregset =
634 static const struct regset mips64_linux_fpregset =
666 asection *section = bfd_get_section_by_name (abfd,
".reg");
670 switch (bfd_section_size (abfd, section))
741 if (insn != 0x03e0782d)
747 if (insn != 0x03e07821)
753 if (insn != 0x0320f809)
760 if ((insn & 0xffff0000) != 0x64180000)
766 if ((insn & 0xffff0000) != 0x24180000)
838 #define MIPS_NR_LINUX 4000
839 #define MIPS_NR_N64_LINUX 5000
840 #define MIPS_NR_N32_LINUX 6000
842 #define MIPS_NR_sigreturn MIPS_NR_LINUX + 119
843 #define MIPS_NR_rt_sigreturn MIPS_NR_LINUX + 193
844 #define MIPS_NR_N64_rt_sigreturn MIPS_NR_N64_LINUX + 211
845 #define MIPS_NR_N32_rt_sigreturn MIPS_NR_N32_LINUX + 211
847 #define MIPS_INST_LI_V0_SIGRETURN 0x24020000 + MIPS_NR_sigreturn
848 #define MIPS_INST_LI_V0_RT_SIGRETURN 0x24020000 + MIPS_NR_rt_sigreturn
849 #define MIPS_INST_LI_V0_N64_RT_SIGRETURN 0x24020000 + MIPS_NR_N64_rt_sigreturn
850 #define MIPS_INST_LI_V0_N32_RT_SIGRETURN 0x24020000 + MIPS_NR_N32_rt_sigreturn
851 #define MIPS_INST_SYSCALL 0x0000000c
853 #define MICROMIPS_INST_LI_V0 0x3040
854 #define MICROMIPS_INST_POOL32A 0x0000
855 #define MICROMIPS_INST_SYSCALL 0x8b7c
918 static const struct tramp_frame micromips_linux_o32_rt_sigframe = {
932 static const struct tramp_frame micromips_linux_n32_rt_sigframe = {
946 static const struct tramp_frame micromips_linux_n64_rt_sigframe = {
1037 #define SIGFRAME_SIGCONTEXT_OFFSET (6 * 4)
1039 #define RTSIGFRAME_SIGINFO_SIZE 128
1040 #define STACK_T_SIZE (3 * 4)
1041 #define UCONTEXT_SIGCONTEXT_OFFSET (2 * 4 + STACK_T_SIZE + 4)
1042 #define RTSIGFRAME_SIGCONTEXT_OFFSET (SIGFRAME_SIGCONTEXT_OFFSET \
1043 + RTSIGFRAME_SIGINFO_SIZE \
1044 + UCONTEXT_SIGCONTEXT_OFFSET)
1046 #define SIGCONTEXT_PC (1 * 8)
1047 #define SIGCONTEXT_REGS (2 * 8)
1048 #define SIGCONTEXT_FPREGS (34 * 8)
1049 #define SIGCONTEXT_FPCSR (66 * 8 + 4)
1050 #define SIGCONTEXT_DSPCTL (68 * 8 + 0)
1051 #define SIGCONTEXT_HI (69 * 8)
1052 #define SIGCONTEXT_LO (70 * 8)
1053 #define SIGCONTEXT_CAUSE (71 * 8 + 0)
1054 #define SIGCONTEXT_BADVADDR (71 * 8 + 4)
1055 #define SIGCONTEXT_HI1 (71 * 8 + 0)
1056 #define SIGCONTEXT_LO1 (71 * 8 + 4)
1057 #define SIGCONTEXT_HI2 (72 * 8 + 0)
1058 #define SIGCONTEXT_LO2 (72 * 8 + 4)
1059 #define SIGCONTEXT_HI3 (73 * 8 + 0)
1060 #define SIGCONTEXT_LO3 (73 * 8 + 4)
1062 #define SIGCONTEXT_REG_SIZE 8
1077 if (
self == &mips_linux_o32_sigframe
1078 ||
self == µmips_linux_o32_sigframe)
1089 regs_base = sigcontext_base + 4;
1091 regs_base = sigcontext_base;
1099 for (ireg = 1; ireg < 32; ireg++)
1114 for (ireg = 0; ireg < 32; ireg++)
1119 + (ireg & ~1) * SIGCONTEXT_REG_SIZE));
1124 + (ireg & ~1) * SIGCONTEXT_REG_SIZE));
1240 #define N32_STACK_T_SIZE STACK_T_SIZE
1241 #define N64_STACK_T_SIZE (2 * 8 + 4)
1242 #define N32_UCONTEXT_SIGCONTEXT_OFFSET (2 * 4 + N32_STACK_T_SIZE + 4)
1243 #define N64_UCONTEXT_SIGCONTEXT_OFFSET (2 * 8 + N64_STACK_T_SIZE + 4)
1244 #define N32_SIGFRAME_SIGCONTEXT_OFFSET (SIGFRAME_SIGCONTEXT_OFFSET \
1245 + RTSIGFRAME_SIGINFO_SIZE \
1246 + N32_UCONTEXT_SIGCONTEXT_OFFSET)
1247 #define N64_SIGFRAME_SIGCONTEXT_OFFSET (SIGFRAME_SIGCONTEXT_OFFSET \
1248 + RTSIGFRAME_SIGINFO_SIZE \
1249 + N64_UCONTEXT_SIGCONTEXT_OFFSET)
1251 #define N64_SIGCONTEXT_REGS (0 * 8)
1252 #define N64_SIGCONTEXT_FPREGS (32 * 8)
1253 #define N64_SIGCONTEXT_HI (64 * 8)
1254 #define N64_SIGCONTEXT_HI1 (65 * 8)
1255 #define N64_SIGCONTEXT_HI2 (66 * 8)
1256 #define N64_SIGCONTEXT_HI3 (67 * 8)
1257 #define N64_SIGCONTEXT_LO (68 * 8)
1258 #define N64_SIGCONTEXT_LO1 (69 * 8)
1259 #define N64_SIGCONTEXT_LO2 (70 * 8)
1260 #define N64_SIGCONTEXT_LO3 (71 * 8)
1261 #define N64_SIGCONTEXT_PC (72 * 8)
1262 #define N64_SIGCONTEXT_FPCSR (73 * 8 + 0)
1263 #define N64_SIGCONTEXT_DSPCTL (74 * 8 + 0)
1265 #define N64_SIGCONTEXT_REG_SIZE 8
1279 if (
self == &mips_linux_n32_rt_sigframe
1280 ||
self == µmips_linux_n32_rt_sigframe)
1291 for (ireg = 1; ireg < 32; ireg++)
1298 for (ireg = 0; ireg < 32; ireg++)
1302 + ireg * N64_SIGCONTEXT_REG_SIZE));
1462 enum gdb_signal signal)
1466 case GDB_SIGNAL_EMT:
1469 case GDB_SIGNAL_BUS:
1472 case GDB_SIGNAL_SYS:
1475 case GDB_SIGNAL_USR1:
1478 case GDB_SIGNAL_USR2:
1481 case GDB_SIGNAL_CHLD:
1484 case GDB_SIGNAL_PWR:
1487 case GDB_SIGNAL_WINCH:
1490 case GDB_SIGNAL_URG:
1496 case GDB_SIGNAL_POLL:
1499 case GDB_SIGNAL_STOP:
1502 case GDB_SIGNAL_TSTP:
1505 case GDB_SIGNAL_CONT:
1508 case GDB_SIGNAL_TTIN:
1511 case GDB_SIGNAL_TTOU:
1514 case GDB_SIGNAL_VTALRM:
1517 case GDB_SIGNAL_PROF:
1520 case GDB_SIGNAL_XCPU:
1523 case GDB_SIGNAL_XFSZ:
1528 case GDB_SIGNAL_REALTIME_32:
1532 if (signal >= GDB_SIGNAL_REALTIME_33
1533 && signal <= GDB_SIGNAL_REALTIME_63)
1535 int offset = signal - GDB_SIGNAL_REALTIME_33;
1539 else if (signal >= GDB_SIGNAL_REALTIME_64
1540 && signal <= GDB_SIGNAL_REALTIME_127)
1542 int offset = signal - GDB_SIGNAL_REALTIME_64;
1553 static enum gdb_signal
1559 return GDB_SIGNAL_EMT;
1562 return GDB_SIGNAL_BUS;
1565 return GDB_SIGNAL_SYS;
1568 return GDB_SIGNAL_USR1;
1571 return GDB_SIGNAL_USR2;
1574 return GDB_SIGNAL_CHLD;
1577 return GDB_SIGNAL_PWR;
1580 return GDB_SIGNAL_WINCH;
1583 return GDB_SIGNAL_URG;
1588 return GDB_SIGNAL_IO;
1591 return GDB_SIGNAL_STOP;
1594 return GDB_SIGNAL_TSTP;
1597 return GDB_SIGNAL_CONT;
1600 return GDB_SIGNAL_TTIN;
1603 return GDB_SIGNAL_TTOU;
1606 return GDB_SIGNAL_VTALRM;
1609 return GDB_SIGNAL_PROF;
1612 return GDB_SIGNAL_XCPU;
1615 return GDB_SIGNAL_XFSZ;
1625 return GDB_SIGNAL_REALTIME_32;
1626 else if (offset < 32)
1627 return (
enum gdb_signal) (offset - 1
1628 + (
int) GDB_SIGNAL_REALTIME_33);
1630 return (
enum gdb_signal) (offset - 32
1631 + (
int) GDB_SIGNAL_REALTIME_64);
1661 µmips_linux_o32_rt_sigframe);
1678 µmips_linux_n32_rt_sigframe);
1694 µmips_linux_n64_rt_sigframe);
1749 "org.gnu.gdb.mips.linux");
1750 if (feature != NULL)
1762 const struct bfd_arch_info *arch_info;
1764 for (arch_info = bfd_lookup_arch (bfd_arch_mips, 0);
1766 arch_info = arch_info->next)
struct gdbarch * target_gdbarch(void)
void set_gdbarch_num_regs(struct gdbarch *gdbarch, int num_regs)
#define SIGCONTEXT_REG_SIZE
ULONGEST extract_unsigned_integer(const gdb_byte *, int, enum bfd_endian)
CORE_ADDR(* syscall_next_pc)(struct frame_info *frame)
static void mips_linux_n32n64_sigframe_init(const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
int mips_pc_is_micromips(struct gdbarch *gdbarch, CORE_ADDR memaddr)
#define MIPS_INST_LI_V0_N32_RT_SIGRETURN
void trad_frame_set_reg_addr(struct trad_frame_cache *this_trad_cache, int regnum, CORE_ADDR addr)
static void mips_fill_fpregset_wrapper(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
struct frame_id frame_id_build(CORE_ADDR stack_addr, CORE_ADDR code_addr)
void set_gdbarch_get_longjmp_target(struct gdbarch *gdbarch, gdbarch_get_longjmp_target_ftype get_longjmp_target)
#define N64_SIGCONTEXT_REG_SIZE
#define SIGFRAME_SIGCONTEXT_OFFSET
#define N64_SIGFRAME_SIGCONTEXT_OFFSET
CORE_ADDR get_frame_pc(struct frame_info *frame)
void set_gdbarch_gdb_signal_to_target(struct gdbarch *gdbarch, gdbarch_gdb_signal_to_target_ftype gdb_signal_to_target)
struct frame_info * get_current_frame(void)
void set_gdbarch_fetch_tls_load_module_address(struct gdbarch *gdbarch, gdbarch_fetch_tls_load_module_address_ftype fetch_tls_load_module_address)
#define TRAMP_SENTINEL_INSN
struct link_map_offsets * svr4_lp64_fetch_link_map_offsets(void)
struct regcache * get_thread_regcache(ptid_t ptid)
void store_signed_integer(gdb_byte *, int, enum bfd_endian, LONGEST)
CORE_ADDR mips_unmake_compact_addr(CORE_ADDR addr)
struct gdbarch * get_regcache_arch(const struct regcache *regcache)
CORE_ADDR frame_unwind_caller_pc(struct frame_info *this_frame)
void set_solib_ops(struct gdbarch *gdbarch, const struct target_so_ops *new_ops)
#define BMSYMBOL_VALUE_ADDRESS(symbol)
CORE_ADDR glibc_skip_solib_resolver(struct gdbarch *gdbarch, CORE_ADDR pc)
#define MIPS_INST_LI_V0_RT_SIGRETURN
int svr4_in_dynsym_resolve_code(CORE_ADDR pc)
void set_gdbarch_write_pc(struct gdbarch *gdbarch, gdbarch_write_pc_ftype write_pc)
#define SIGCONTEXT_FPREGS
static void mips64_supply_fpregset_wrapper(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
int gdbarch_ptr_bit(struct gdbarch *gdbarch)
void trad_frame_set_id(struct trad_frame_cache *this_trad_cache, struct frame_id this_id)
CORE_ADDR get_frame_sp(struct frame_info *this_frame)
static CORE_ADDR mips_linux_skip_resolver(struct gdbarch *gdbarch, CORE_ADDR pc)
static void mips_linux_iterate_over_regset_sections(struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
void set_gdbarch_gdb_signal_from_target(struct gdbarch *gdbarch, gdbarch_gdb_signal_from_target_ftype gdb_signal_from_target)
void linux_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
#define MIPS_INST_LI_V0_SIGRETURN
#define MIPS64_EF_CP0_BADVADDR
struct link_map_offsets * svr4_ilp32_fetch_link_map_offsets(void)
#define MIPS64_EF_CP0_CAUSE
const struct floatformat * floatformats_ia64_quad[BFD_ENDIAN_UNKNOWN]
void mips64_fill_gregset(const struct regcache *regcache, mips64_elf_gregset_t *gregsetp, int regno)
#define N32_SIGFRAME_SIGCONTEXT_OFFSET
int gdbarch_num_regs(struct gdbarch *gdbarch)
#define N64_SIGCONTEXT_FPREGS
struct gdbarch_tdep_info * tdep_info
static void mips_supply_fpregset_wrapper(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
const struct mips_regnum * mips_regnum(struct gdbarch *gdbarch)
struct gdbarch_tdep * gdbarch_tdep(struct gdbarch *gdbarch)
unsigned char mips_elf_greg_t[4]
void mips_write_pc(struct regcache *regcache, CORE_ADDR pc)
#define MIPS_NR_rt_sigreturn
#define N64_SIGCONTEXT_LO
static enum gdb_signal mips_gdb_signal_from_target(struct gdbarch *gdbarch, int signal)
#define MIPS_INST_LI_V0_N64_RT_SIGRETURN
#define N64_SIGCONTEXT_LO3
CORE_ADDR svr4_fetch_objfile_link_map(struct objfile *objfile)
int tdesc_numbered_register(const struct tdesc_feature *feature, struct tdesc_arch_data *data, int regno, const char *name)
#define MICROMIPS_INST_POOL32A
#define MIPS_NR_N64_rt_sigreturn
int(* in_dynsym_resolve_code)(CORE_ADDR pc)
void mips_fill_gregset(const struct regcache *regcache, mips_elf_gregset_t *gregsetp, int regno)
#define N64_SIGCONTEXT_HI1
#define SIGCONTEXT_BADVADDR
mips64_elf_greg_t mips64_elf_gregset_t[MIPS64_ELF_NGREG]
enum gdb_signal linux_gdb_signal_from_target(struct gdbarch *gdbarch, int signal)
void initialize_file_ftype(void)
#define MIPS64_LINUX_JB_PC
struct target_desc * mips_tdesc_gp64
static void supply_32bit_reg(struct regcache *regcache, int regnum, const void *addr)
static void mips64_supply_gregset_wrapper(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
#define N64_SIGCONTEXT_HI3
void set_solib_svr4_fetch_link_map_offsets(struct gdbarch *gdbarch, struct link_map_offsets *(*flmo)(void))
#define MIPS64_EF_CP0_STATUS
int mips_linux_restart_reg_p(struct gdbarch *gdbarch)
static int mips_linux_get_longjmp_target(struct frame_info *frame, CORE_ADDR *pc)
void mips64_supply_gregset(struct regcache *regcache, const mips64_elf_gregset_t *gregsetp)
#define MIPS64_EF_CP0_EPC
#define MIPS_INST_SYSCALL
#define MIPS_NR_N32_rt_sigreturn
void set_xml_syscall_file_name(struct gdbarch *gdbarch, const char *name)
void read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
#define N64_SIGCONTEXT_LO2
void( iterate_over_regset_sections_cb)(const char *sect_name, int size, const struct regset *regset, const char *human_name, void *cb_data)
ULONGEST get_frame_register_unsigned(struct frame_info *frame, int regnum)
int mips_pc_is_mips(CORE_ADDR memaddr)
#define N64_SIGCONTEXT_HI
static int mips_linux_sigframe_validate(const struct tramp_frame *self, struct frame_info *this_frame, CORE_ADDR *pc)
#define SIGCONTEXT_DSPCTL
void mips64_fill_fpregset(const struct regcache *regcache, mips64_elf_fpregset_t *fpregsetp, int regno)
#define MIPS_LINUX_JB_ELEMENT_SIZE
#define MIPS_NR_sigreturn
const struct target_desc * target_desc
static CORE_ADDR mips_linux_syscall_next_pc(struct frame_info *frame)
void set_gdbarch_software_single_step(struct gdbarch *gdbarch, gdbarch_software_single_step_ftype software_single_step)
static const struct target_desc * mips_linux_core_read_description(struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd)
static int mips64_linux_get_longjmp_target(struct frame_info *frame, CORE_ADDR *pc)
static void mips_linux_o32_sigframe_init(const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
const char const char int
unsigned char mips64_elf_greg_t[8]
struct target_so_ops svr4_so_ops
#define MICROMIPS_INST_LI_V0
static void mips_linux_write_pc(struct regcache *regcache, CORE_ADDR pc)
int linux_gdb_signal_to_target(struct gdbarch *gdbarch, enum gdb_signal signal)
static void mips64_fill_gregset_wrapper(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
int gdbarch_fp0_regnum(struct gdbarch *gdbarch)
#define N64_SIGCONTEXT_PC
void regcache_cooked_write_unsigned(struct regcache *regcache, int regnum, ULONGEST val)
initialize_file_ftype _initialize_mips_linux_tdep
int target_read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
#define RTSIGFRAME_SIGCONTEXT_OFFSET
mips_elf_fpreg_t mips_elf_fpregset_t[ELF_NFPREG]
void mips_supply_fpregset(struct regcache *regcache, const mips_elf_fpregset_t *fpregsetp)
void set_gdbarch_get_syscall_number(struct gdbarch *gdbarch, gdbarch_get_syscall_number_ftype get_syscall_number)
static int mips_linux_in_dynsym_stub(CORE_ADDR pc)
void tramp_frame_prepend_unwinder(struct gdbarch *gdbarch, const struct tramp_frame *tramp_frame)
void set_gdbarch_num_pseudo_regs(struct gdbarch *gdbarch, int num_pseudo_regs)
enum register_status regcache_cooked_read(struct regcache *regcache, int regnum, gdb_byte *buf)
void mips_supply_gregset(struct regcache *regcache, const mips_elf_gregset_t *gregsetp)
#define N64_SIGCONTEXT_LO1
static int mips_linux_in_dynsym_resolve_code(CORE_ADDR pc)
void regcache_raw_supply(struct regcache *regcache, int regnum, const void *buf)
static int mips_gdb_signal_to_target(struct gdbarch *gdbarch, enum gdb_signal signal)
unsigned long long ULONGEST
const struct tdesc_feature * tdesc_find_feature(const struct target_desc *target_desc, const char *name)
void mips64_supply_fpregset(struct regcache *regcache, const mips64_elf_fpregset_t *fpregsetp)
int register_size(struct gdbarch *gdbarch, int regnum)
#define N64_SIGCONTEXT_HI2
void set_gdbarch_long_double_bit(struct gdbarch *gdbarch, int long_double_bit)
static void mips_fill_gregset_wrapper(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
static void mips_linux_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
void regcache_raw_collect(const struct regcache *regcache, int regnum, void *buf)
struct target_desc * mips_tdesc_gp32
void set_gdbarch_long_double_format(struct gdbarch *gdbarch, const struct floatformat **long_double_format)
#define N64_SIGCONTEXT_DSPCTL
static void mips64_fill_fpregset_wrapper(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t len)
static LONGEST mips_linux_get_syscall_number(struct gdbarch *gdbarch, ptid_t ptid)
void mips_fill_fpregset(const struct regcache *regcache, mips_elf_fpregset_t *fpregsetp, int regno)
static int micromips_linux_sigframe_validate(const struct tramp_frame *self, struct frame_info *this_frame, CORE_ADDR *pc)
mips_elf_greg_t mips_elf_gregset_t[ELF_NGREG]
void set_gdbarch_iterate_over_regset_sections(struct gdbarch *gdbarch, gdbarch_iterate_over_regset_sections_ftype iterate_over_regset_sections)
#define N64_SIGCONTEXT_REGS
LONGEST extract_signed_integer(const gdb_byte *, int, enum bfd_endian)
static struct gdbarch_data * tdesc_data
mips64_elf_fpreg_t mips64_elf_fpregset_t[MIPS64_ELF_NFPREG]
void set_gdbarch_skip_solib_resolver(struct gdbarch *gdbarch, gdbarch_skip_solib_resolver_ftype skip_solib_resolver)
struct bound_minimal_symbol lookup_minimal_symbol(const char *name, const char *sfile, struct objfile *objf)
enum bfd_endian byte_order
static void mips_supply_gregset_wrapper(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
void set_gdbarch_core_read_description(struct gdbarch *gdbarch, gdbarch_core_read_description_ftype core_read_description)
int tdesc_has_registers(const struct target_desc *target_desc)
void gdbarch_register_osabi(enum bfd_architecture arch, unsigned long machine, enum gdb_osabi osabi, void(*init_osabi)(struct gdbarch_info, struct gdbarch *))
int mips_software_single_step(struct frame_info *frame)
struct gdbarch * get_frame_arch(struct frame_info *this_frame)
#define MICROMIPS_INST_SYSCALL
#define N64_SIGCONTEXT_FPCSR
static struct target_so_ops mips_svr4_so_ops
const struct target_desc * gdbarch_target_desc(struct gdbarch *gdbarch)
static void supply_64bit_reg(struct regcache *regcache, int regnum, const gdb_byte *buf)
static int in_mips_stubs_section(CORE_ADDR pc)
const ULONGEST const LONGEST len