GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Enumerations | Functions | Variables
mips-tdep.c File Reference
#include "defs.h"
#include "frame.h"
#include "inferior.h"
#include "symtab.h"
#include "value.h"
#include "gdbcmd.h"
#include "language.h"
#include "gdbcore.h"
#include "symfile.h"
#include "objfiles.h"
#include "gdbtypes.h"
#include "target.h"
#include "arch-utils.h"
#include "regcache.h"
#include "osabi.h"
#include "mips-tdep.h"
#include "block.h"
#include "reggroups.h"
#include "opcode/mips.h"
#include "elf/mips.h"
#include "elf-bfd.h"
#include "symcat.h"
#include "sim-regno.h"
#include "dis-asm.h"
#include "disasm.h"
#include "frame-unwind.h"
#include "frame-base.h"
#include "trad-frame.h"
#include "infcall.h"
#include "remote.h"
#include "target-descriptions.h"
#include "dwarf2/frame.h"
#include "user-regs.h"
#include "valprint.h"
#include "ax.h"
#include "target-float.h"
#include <algorithm>

Go to the source code of this file.

Classes

struct  register_alias
 
struct  upk_mips16
 
struct  mips_frame_cache
 
struct  mips_objfile_private
 

Macros

#define ST0_FR   (1 << 26)
 
#define R(n)   { "r" #n, n }
 
#define R(n)   { #n, n }
 
#define MIPS_DEFAULT_FPU_TYPE   MIPS_FPU_DOUBLE
 
#define PROPERTY_GP32   "internal: transfers-32bit-registers"
 
#define PROPERTY_GP64   "internal: transfers-64bit-registers"
 
#define MAX_MIPS_ABI_REGSIZE   8
 
#define VM_MIN_ADDRESS   (CORE_ADDR)0x400000
 
#define mips32_op(x)   (x >> 26)
 
#define itype_op(x)   (x >> 26)
 
#define itype_rs(x)   ((x >> 21) & 0x1f)
 
#define itype_rt(x)   ((x >> 16) & 0x1f)
 
#define itype_immediate(x)   (x & 0xffff)
 
#define jtype_op(x)   (x >> 26)
 
#define jtype_target(x)   (x & 0x03ffffff)
 
#define rtype_op(x)   (x >> 26)
 
#define rtype_rs(x)   ((x >> 21) & 0x1f)
 
#define rtype_rt(x)   ((x >> 16) & 0x1f)
 
#define rtype_rd(x)   ((x >> 11) & 0x1f)
 
#define rtype_shamt(x)   ((x >> 6) & 0x1f)
 
#define rtype_funct(x)   (x & 0x3f)
 
#define micromips_op(x)   ((x) >> 10)
 
#define b0s4_imm(x)   ((x) & 0xf)
 
#define b0s5_imm(x)   ((x) & 0x1f)
 
#define b0s5_reg(x)   ((x) & 0x1f)
 
#define b0s7_imm(x)   ((x) & 0x7f)
 
#define b0s10_imm(x)   ((x) & 0x3ff)
 
#define b1s4_imm(x)   (((x) >> 1) & 0xf)
 
#define b1s9_imm(x)   (((x) >> 1) & 0x1ff)
 
#define b2s3_cc(x)   (((x) >> 2) & 0x7)
 
#define b4s2_regl(x)   (((x) >> 4) & 0x3)
 
#define b5s5_op(x)   (((x) >> 5) & 0x1f)
 
#define b5s5_reg(x)   (((x) >> 5) & 0x1f)
 
#define b6s4_op(x)   (((x) >> 6) & 0xf)
 
#define b7s3_reg(x)   (((x) >> 7) & 0x7)
 
#define b0s6_op(x)   ((x) & 0x3f)
 
#define b0s11_op(x)   ((x) & 0x7ff)
 
#define b0s12_imm(x)   ((x) & 0xfff)
 
#define b0s16_imm(x)   ((x) & 0xffff)
 
#define b0s26_imm(x)   ((x) & 0x3ffffff)
 
#define b6s10_ext(x)   (((x) >> 6) & 0x3ff)
 
#define b11s5_reg(x)   (((x) >> 11) & 0x1f)
 
#define b12s4_op(x)   (((x) >> 12) & 0xf)
 
#define LL_OPCODE   0x30
 
#define LLD_OPCODE   0x34
 
#define SC_OPCODE   0x38
 
#define SCD_OPCODE   0x3c
 

Enumerations

enum  { MIPS_FPU_SINGLE_REGSIZE = 4 , MIPS_FPU_DOUBLE_REGSIZE = 8 }
 
enum  { MIPS32_REGSIZE = 4 , MIPS64_REGSIZE = 8 }
 
enum  mips_breakpoint_kind { MIPS_BP_KIND_MIPS16 = 2 , MIPS_BP_KIND_MICROMIPS16 = 3 , MIPS_BP_KIND_MIPS32 = 4 , MIPS_BP_KIND_MICROMIPS32 = 5 }
 
enum  { NUM_MIPS_PROCESSOR_REGS = (90 - 32) }
 
enum  mips16_inst_fmts {
  itype , ritype , rrtype , rritype ,
  rrrtype , rriatype , shifttype , i8type ,
  i8movtype , i8mov32rtype , i64type , ri64type ,
  jalxtype , exiItype , extRitype , extRRItype ,
  extRRIAtype , EXTshifttype , extI8type , extI64type ,
  extRi64type , extshift64type
}
 
enum  mips_fval_reg { mips_fval_fpr , mips_fval_gpr , mips_fval_both }
 

Functions

static struct typemips_register_type (struct gdbarch *gdbarch, int regnum)
 
static int mips32_instruction_has_delay_slot (struct gdbarch *gdbarch, ULONGEST inst)
 
static int micromips_instruction_has_delay_slot (ULONGEST insn, int mustbe32)
 
static int mips16_instruction_has_delay_slot (unsigned short inst, int mustbe32)
 
static int mips32_insn_at_pc_has_delay_slot (struct gdbarch *gdbarch, CORE_ADDR addr)
 
static int micromips_insn_at_pc_has_delay_slot (struct gdbarch *gdbarch, CORE_ADDR addr, int mustbe32)
 
static int mips16_insn_at_pc_has_delay_slot (struct gdbarch *gdbarch, CORE_ADDR addr, int mustbe32)
 
static void mips_print_float_info (struct gdbarch *, struct ui_file *, frame_info_ptr, const char *)
 
const struct mips_regnum * mips_regnum (struct gdbarch *gdbarch)
 
static int mips_fpa0_regnum (struct gdbarch *gdbarch)
 
static int mips_float_register_p (struct gdbarch *gdbarch, int regnum)
 
static bool mips_eabi (gdbarch *arch)
 
static int mips_last_fp_arg_regnum (gdbarch *arch)
 
static int mips_last_arg_regnum (gdbarch *arch)
 
static enum mips_fpu_type mips_get_fpu_type (gdbarch *arch)
 
enum mips_abi mips_abi (struct gdbarch *gdbarch)
 
int mips_isa_regsize (struct gdbarch *gdbarch)
 
unsigned int mips_abi_regsize (struct gdbarch *gdbarch)
 
static int is_mips16_isa (struct gdbarch *gdbarch)
 
static int is_micromips_isa (struct gdbarch *gdbarch)
 
static int is_compact_addr (CORE_ADDR addr)
 
static int is_mips_addr (CORE_ADDR addr)
 
static int is_mips16_addr (struct gdbarch *gdbarch, CORE_ADDR addr)
 
static int is_micromips_addr (struct gdbarch *gdbarch, CORE_ADDR addr)
 
static CORE_ADDR unmake_compact_addr (CORE_ADDR addr)
 
static CORE_ADDR make_compact_addr (CORE_ADDR addr)
 
CORE_ADDR mips_unmake_compact_addr (CORE_ADDR addr)
 
static void mips_elf_make_msymbol_special (asymbol *sym, struct minimal_symbol *msym)
 
static int msymbol_is_mips (struct minimal_symbol *msym)
 
static int msymbol_is_mips16 (struct minimal_symbol *msym)
 
static int msymbol_is_micromips (struct minimal_symbol *msym)
 
static void mips_make_symbol_special (struct symbol *sym, struct objfile *objfile)
 
static void mips_xfer_register (struct gdbarch *gdbarch, struct regcache *regcache, int reg_num, int length, enum bfd_endian endian, gdb_byte *in, const gdb_byte *out, int buf_offset)
 
static int mips2_fp_compat (frame_info_ptr frame)
 
static CORE_ADDR heuristic_proc_start (struct gdbarch *, CORE_ADDR)
 
static const char * mips_register_name (struct gdbarch *gdbarch, int regno)
 
static int mips_register_reggroup_p (struct gdbarch *gdbarch, int regnum, const struct reggroup *reggroup)
 
static int mips_tdesc_register_reggroup_p (struct gdbarch *gdbarch, int regnum, const struct reggroup *reggroup)
 
static enum register_status mips_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache, int cookednum, gdb_byte *buf)
 
static void mips_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int cookednum, const gdb_byte *buf)
 
static int mips_ax_pseudo_register_collect (struct gdbarch *gdbarch, struct agent_expr *ax, int reg)
 
static int mips_ax_pseudo_register_push_stack (struct gdbarch *gdbarch, struct agent_expr *ax, int reg)
 
static void set_mips64_transfers_32bit_regs (const char *args, int from_tty, struct cmd_list_element *c)
 
static int mips_convert_register_float_case_p (struct gdbarch *gdbarch, int regnum, struct type *type)
 
static int mips_convert_register_gpreg_case_p (struct gdbarch *gdbarch, int regnum, struct type *type)
 
static int mips_convert_register_p (struct gdbarch *gdbarch, int regnum, struct type *type)
 
static int mips_register_to_value (frame_info_ptr frame, int regnum, struct type *type, gdb_byte *to, int *optimizedp, int *unavailablep)
 
static void mips_value_to_register (frame_info_ptr frame, int regnum, struct type *type, const gdb_byte *from)
 
static struct typemips_pseudo_register_type (struct gdbarch *gdbarch, int regnum)
 
static int mips_mask_address_p (mips_gdbarch_tdep *tdep)
 
static void show_mask_address (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
int mips_pc_is_mips (CORE_ADDR memaddr)
 
int mips_pc_is_mips16 (struct gdbarch *gdbarch, CORE_ADDR memaddr)
 
int mips_pc_is_micromips (struct gdbarch *gdbarch, CORE_ADDR memaddr)
 
static enum mips_isa mips_pc_isa (struct gdbarch *gdbarch, CORE_ADDR memaddr)
 
static CORE_ADDR mips_adjust_dwarf2_addr (CORE_ADDR pc)
 
static CORE_ADDR mips_adjust_dwarf2_line (CORE_ADDR addr, int rel)
 
static int mips_in_frame_stub (CORE_ADDR pc)
 
static CORE_ADDR mips_read_pc (readable_regcache *regcache)
 
static CORE_ADDR mips_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame)
 
static CORE_ADDR mips_unwind_sp (struct gdbarch *gdbarch, frame_info_ptr next_frame)
 
static struct frame_id mips_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame)
 
void mips_write_pc (struct regcache *regcache, CORE_ADDR pc)
 
static ULONGEST mips_fetch_instruction (struct gdbarch *gdbarch, enum mips_isa isa, CORE_ADDR addr, int *errp)
 
static int mips_insn_size (enum mips_isa isa, ULONGEST insn)
 
static LONGEST mips32_relative_offset (ULONGEST inst)
 
static CORE_ADDR mips32_bc1_pc (struct gdbarch *gdbarch, struct regcache *regcache, ULONGEST inst, CORE_ADDR pc, int count)
 
static int is_octeon (struct gdbarch *gdbarch)
 
static int is_octeon_bbit_op (int op, struct gdbarch *gdbarch)
 
static CORE_ADDR mips32_next_pc (struct regcache *regcache, CORE_ADDR pc)
 
static LONGEST micromips_relative_offset7 (ULONGEST insn)
 
static LONGEST micromips_relative_offset10 (ULONGEST insn)
 
static LONGEST micromips_relative_offset16 (ULONGEST insn)
 
static int micromips_pc_insn_size (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static CORE_ADDR micromips_bc1_pc (struct gdbarch *gdbarch, struct regcache *regcache, ULONGEST insn, CORE_ADDR pc, int count)
 
static CORE_ADDR micromips_next_pc (struct regcache *regcache, CORE_ADDR pc)
 
static CORE_ADDR extended_offset (unsigned int extension)
 
static unsigned int fetch_mips_16 (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static void unpack_mips16 (struct gdbarch *gdbarch, CORE_ADDR pc, unsigned int extension, unsigned int inst, enum mips16_inst_fmts insn_format, struct upk_mips16 *upk)
 
static CORE_ADDR add_offset_16 (CORE_ADDR pc, int offset)
 
static CORE_ADDR extended_mips16_next_pc (regcache *regcache, CORE_ADDR pc, unsigned int extension, unsigned int insn)
 
static CORE_ADDR mips16_next_pc (struct regcache *regcache, CORE_ADDR pc)
 
static CORE_ADDR mips_next_pc (struct regcache *regcache, CORE_ADDR pc)
 
static int mips16_instruction_is_compact_branch (unsigned short insn)
 
static int micromips_instruction_is_compact_branch (unsigned short insn)
 
static void set_reg_offset (struct gdbarch *gdbarch, struct mips_frame_cache *this_cache, int regnum, CORE_ADDR offset)
 
static int mips16_get_imm (unsigned short prev_inst, unsigned short inst, int nbits, int scale, int is_signed)
 
static CORE_ADDR mips16_scan_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc, CORE_ADDR limit_pc, frame_info_ptr this_frame, struct mips_frame_cache *this_cache)
 
static struct mips_frame_cachemips_insn16_frame_cache (frame_info_ptr this_frame, void **this_cache)
 
static void mips_insn16_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valuemips_insn16_frame_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum)
 
static int mips_insn16_frame_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_cache)
 
static CORE_ADDR mips_insn16_frame_base_address (frame_info_ptr this_frame, void **this_cache)
 
static const struct frame_basemips_insn16_frame_base_sniffer (frame_info_ptr this_frame)
 
static int micromips_decode_imm9 (int imm)
 
static CORE_ADDR micromips_scan_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc, CORE_ADDR limit_pc, frame_info_ptr this_frame, struct mips_frame_cache *this_cache)
 
static struct mips_frame_cachemips_micro_frame_cache (frame_info_ptr this_frame, void **this_cache)
 
static void mips_micro_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valuemips_micro_frame_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum)
 
static int mips_micro_frame_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_cache)
 
static CORE_ADDR mips_micro_frame_base_address (frame_info_ptr this_frame, void **this_cache)
 
static const struct frame_basemips_micro_frame_base_sniffer (frame_info_ptr this_frame)
 
static void reset_saved_regs (struct gdbarch *gdbarch, struct mips_frame_cache *this_cache)
 
static CORE_ADDR mips32_scan_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc, CORE_ADDR limit_pc, frame_info_ptr this_frame, struct mips_frame_cache *this_cache)
 
static struct mips_frame_cachemips_insn32_frame_cache (frame_info_ptr this_frame, void **this_cache)
 
static void mips_insn32_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valuemips_insn32_frame_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum)
 
static int mips_insn32_frame_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_cache)
 
static CORE_ADDR mips_insn32_frame_base_address (frame_info_ptr this_frame, void **this_cache)
 
static const struct frame_basemips_insn32_frame_base_sniffer (frame_info_ptr this_frame)
 
static struct trad_frame_cachemips_stub_frame_cache (frame_info_ptr this_frame, void **this_cache)
 
static void mips_stub_frame_this_id (frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valuemips_stub_frame_prev_register (frame_info_ptr this_frame, void **this_cache, int regnum)
 
static int mips_stub_frame_sniffer (const struct frame_unwind *self, frame_info_ptr this_frame, void **this_cache)
 
static CORE_ADDR mips_stub_frame_base_address (frame_info_ptr this_frame, void **this_cache)
 
static const struct frame_basemips_stub_frame_base_sniffer (frame_info_ptr this_frame)
 
static CORE_ADDR mips_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr)
 
static std::vector< CORE_ADDR > mips_deal_with_atomic_sequence (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static std::vector< CORE_ADDR > micromips_deal_with_atomic_sequence (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static std::vector< CORE_ADDR > deal_with_atomic_sequence (struct gdbarch *gdbarch, CORE_ADDR pc)
 
std::vector< CORE_ADDR > mips_software_single_step (struct regcache *regcache)
 
static int mips_about_to_return (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static int fp_register_arg_p (struct gdbarch *gdbarch, enum type_code typecode, struct type *arg_type)
 
static int mips_type_needs_double_align (struct type *type)
 
static CORE_ADDR mips_frame_align (struct gdbarch *gdbarch, CORE_ADDR addr)
 
static CORE_ADDR mips_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funaddr, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr, struct regcache *regcache)
 
static CORE_ADDR mips_eabi_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, function_call_return_method return_method, CORE_ADDR struct_addr)
 
static enum return_value_convention mips_eabi_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
 
static int mips_n32n64_fp_arg_chunk_p (struct gdbarch *gdbarch, struct type *arg_type, int offset)
 
static CORE_ADDR mips_n32n64_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, function_call_return_method return_method, CORE_ADDR struct_addr)
 
static enum return_value_convention mips_n32n64_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
 
static CORE_ADDR mips_o32_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, function_call_return_method return_method, CORE_ADDR struct_addr)
 
static enum return_value_convention mips_o32_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
 
static CORE_ADDR mips_o64_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, function_call_return_method return_method, CORE_ADDR struct_addr)
 
static enum return_value_convention mips_o64_return_value (struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
 
static void mips_read_fp_register_single (frame_info_ptr frame, int regno, gdb_byte *rare_buffer)
 
static void mips_read_fp_register_double (frame_info_ptr frame, int regno, gdb_byte *rare_buffer)
 
static void mips_print_fp_register (struct ui_file *file, frame_info_ptr frame, int regnum)
 
static void mips_print_register (struct ui_file *file, frame_info_ptr frame, int regnum)
 
static void print_fpu_flags (struct ui_file *file, int flags)
 
static int print_fp_register_row (struct ui_file *file, frame_info_ptr frame, int regnum)
 
static int print_gp_register_row (struct ui_file *file, frame_info_ptr frame, int start_regnum)
 
static void mips_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file, frame_info_ptr frame, int regnum, int all)
 
static int mips_single_step_through_delay (struct gdbarch *gdbarch, frame_info_ptr frame)
 
static CORE_ADDR mips_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static int mips32_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static int micromips_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static int mips16_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static int mips_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static void show_mipsfpu_command (const char *args, int from_tty)
 
static void set_mipsfpu_single_command (const char *args, int from_tty)
 
static void set_mipsfpu_double_command (const char *args, int from_tty)
 
static void set_mipsfpu_none_command (const char *args, int from_tty)
 
static void set_mipsfpu_auto_command (const char *args, int from_tty)
 
static void reinit_frame_cache_sfunc (const char *args, int from_tty, struct cmd_list_element *c)
 
static int gdb_print_insn_mips (bfd_vma memaddr, struct disassemble_info *info)
 
static int mips_breakpoint_kind_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr)
 
static const gdb_byte * mips_sw_breakpoint_from_kind (struct gdbarch *gdbarch, int kind, int *size)
 
static CORE_ADDR mips_segment_boundary (CORE_ADDR bpaddr)
 
static CORE_ADDR mips_adjust_breakpoint_address (struct gdbarch *gdbarch, CORE_ADDR bpaddr)
 
static int mips_is_stub_suffix (const char *suffix, int zero)
 
static int mips_is_stub_mode (const char *mode)
 
static CORE_ADDR mips_get_mips16_fn_stub_pc (frame_info_ptr frame, CORE_ADDR pc)
 
static CORE_ADDR mips_skip_mips16_trampoline_code (frame_info_ptr frame, CORE_ADDR pc)
 
static int mips_in_return_stub (struct gdbarch *gdbarch, CORE_ADDR pc, const char *name)
 
static CORE_ADDR mips_skip_pic_trampoline_code (frame_info_ptr frame, CORE_ADDR pc)
 
static CORE_ADDR mips_skip_trampoline_code (frame_info_ptr frame, CORE_ADDR pc)
 
static int mips_stab_reg_to_regnum (struct gdbarch *gdbarch, int num)
 
static int mips_dwarf_dwarf2_ecoff_reg_to_regnum (struct gdbarch *gdbarch, int num)
 
static int mips_register_sim_regno (struct gdbarch *gdbarch, int regnum)
 
static CORE_ADDR mips_integer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
 
static void mips_virtual_frame_pointer (struct gdbarch *gdbarch, CORE_ADDR pc, int *reg, LONGEST *offset)
 
static void mips_find_abi_section (bfd *abfd, asection *sect, void *obj)
 
static void mips_find_long_section (bfd *abfd, asection *sect, void *obj)
 
static enum mips_abi global_mips_abi (void)
 
static enum mips_isa global_mips_compression (void)
 
static void mips_register_g_packet_guesses (struct gdbarch *gdbarch)
 
static struct valuevalue_of_mips_user_reg (frame_info_ptr frame, const void *baton)
 
static struct gdbarchmips_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 
static void mips_abi_update (const char *ignore_args, int from_tty, struct cmd_list_element *c)
 
static void show_mips_abi (struct ui_file *file, int from_tty, struct cmd_list_element *ignored_cmd, const char *ignored_value)
 
static void show_mips_compression (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
static const char * mips_fpu_type_str (enum mips_fpu_type fpu_type)
 
static void mips_dump_tdep (struct gdbarch *gdbarch, struct ui_file *file)
 
void _initialize_mips_tdep ()
 

Variables

static const char * mips_abi_string
 
static const char *const mips_abi_strings []
 
static const char mips_compression_mips16 [] = "mips16"
 
static const char mips_compression_micromips [] = "micromips"
 
static const char *const mips_compression_strings []
 
static const char * mips_compression_string = mips_compression_mips16
 
const struct register_alias mips_o32_aliases []
 
const struct register_alias mips_n32_n64_aliases []
 
const struct register_alias mips_register_aliases []
 
const struct register_alias mips_numeric_register_aliases []
 
static int mips_fpu_type_auto = 1
 
static enum mips_fpu_type mips_fpu_type = MIPS_DEFAULT_FPU_TYPE
 
static unsigned int mips_debug = 0
 
struct target_descmips_tdesc_gp32
 
struct target_descmips_tdesc_gp64
 
static char * mips_disassembler_options
 
static const char mips_disassembler_options_o32 [] = "gpr-names=32"
 
static const char mips_disassembler_options_n32 [] = "gpr-names=n32"
 
static const char mips_disassembler_options_n64 [] = "gpr-names=64"
 
static struct cmd_list_elementsetmipscmdlist = NULL
 
static struct cmd_list_elementshowmipscmdlist = NULL
 
static const char *const mips_generic_reg_names [NUM_MIPS_PROCESSOR_REGS]
 
static const char *const mips_tx39_reg_names [NUM_MIPS_PROCESSOR_REGS]
 
static const char *const mips_linux_reg_names [NUM_MIPS_PROCESSOR_REGS]
 
static const signed char mips_reg3_to_reg [8] = { 16, 17, 2, 3, 4, 5, 6, 7 }
 
static int heuristic_fence_post = 0
 
static bool mips64_transfers_32bit_regs_p = false
 
static enum auto_boolean mask_address_var = AUTO_BOOLEAN_AUTO
 
static const char mips_str_mips16_call_stub [] = "__mips16_call_stub_"
 
static const char mips_str_mips16_ret_stub [] = "__mips16_ret_"
 
static const char mips_str_call_fp_stub [] = "__call_stub_fp_"
 
static const char mips_str_call_stub [] = "__call_stub_"
 
static const char mips_str_fn_stub [] = "__fn_stub_"
 
static const char mips_str_pic [] = ".pic."
 
static const struct frame_unwind mips_insn16_frame_unwind
 
static const struct frame_base mips_insn16_frame_base
 
static const struct frame_unwind mips_micro_frame_unwind
 
static const struct frame_base mips_micro_frame_base
 
static const struct frame_unwind mips_insn32_frame_unwind
 
static const struct frame_base mips_insn32_frame_base
 
static const struct frame_unwind mips_stub_frame_unwind
 
static const struct frame_base mips_stub_frame_base
 

Macro Definition Documentation

◆ b0s10_imm

#define b0s10_imm ( x)    ((x) & 0x3ff)

Definition at line 1524 of file mips-tdep.c.

Referenced by micromips_relative_offset10().

◆ b0s11_op

#define b0s11_op ( x)    ((x) & 0x7ff)

Definition at line 1537 of file mips-tdep.c.

Referenced by micromips_scan_prologue().

◆ b0s12_imm

#define b0s12_imm ( x)    ((x) & 0xfff)

Definition at line 1538 of file mips-tdep.c.

Referenced by micromips_scan_prologue().

◆ b0s16_imm

#define b0s16_imm ( x)    ((x) & 0xffff)

◆ b0s26_imm

#define b0s26_imm ( x)    ((x) & 0x3ffffff)

Definition at line 1540 of file mips-tdep.c.

Referenced by micromips_next_pc().

◆ b0s4_imm

#define b0s4_imm ( x)    ((x) & 0xf)

Definition at line 1520 of file mips-tdep.c.

Referenced by micromips_scan_prologue().

◆ b0s5_imm

#define b0s5_imm ( x)    ((x) & 0x1f)

Definition at line 1521 of file mips-tdep.c.

Referenced by micromips_scan_prologue().

◆ b0s5_reg

#define b0s5_reg ( x)    ((x) & 0x1f)

◆ b0s6_op

#define b0s6_op ( x)    ((x) & 0x3f)

◆ b0s7_imm

#define b0s7_imm ( x)    ((x) & 0x7f)

Definition at line 1523 of file mips-tdep.c.

Referenced by micromips_relative_offset7().

◆ b11s5_reg

#define b11s5_reg ( x)    (((x) >> 11) & 0x1f)

Definition at line 1542 of file mips-tdep.c.

Referenced by micromips_scan_prologue().

◆ b12s4_op

#define b12s4_op ( x)    (((x) >> 12) & 0xf)

Definition at line 1543 of file mips-tdep.c.

Referenced by micromips_deal_with_atomic_sequence(), and micromips_scan_prologue().

◆ b1s4_imm

#define b1s4_imm ( x)    (((x) >> 1) & 0xf)

Definition at line 1525 of file mips-tdep.c.

Referenced by heuristic_proc_start(), and micromips_scan_prologue().

◆ b1s9_imm

#define b1s9_imm ( x)    (((x) >> 1) & 0x1ff)

◆ b2s3_cc

#define b2s3_cc ( x)    (((x) >> 2) & 0x7)

Definition at line 1527 of file mips-tdep.c.

Referenced by micromips_bc1_pc().

◆ b4s2_regl

#define b4s2_regl ( x)    (((x) >> 4) & 0x3)

Definition at line 1528 of file mips-tdep.c.

Referenced by micromips_scan_prologue().

◆ b5s5_op

#define b5s5_op ( x)    (((x) >> 5) & 0x1f)

◆ b5s5_reg

#define b5s5_reg ( x)    (((x) >> 5) & 0x1f)

◆ b6s10_ext

#define b6s10_ext ( x)    (((x) >> 6) & 0x3ff)

◆ b6s4_op

#define b6s4_op ( x)    (((x) >> 6) & 0xf)

Definition at line 1531 of file mips-tdep.c.

Referenced by micromips_scan_prologue().

◆ b7s3_reg

#define b7s3_reg ( x)    (((x) >> 7) & 0x7)

Definition at line 1532 of file mips-tdep.c.

Referenced by micromips_next_pc().

◆ itype_immediate

#define itype_immediate ( x)    (x & 0xffff)

Definition at line 1503 of file mips-tdep.c.

Referenced by mips32_relative_offset(), and mips_get_mips16_fn_stub_pc().

◆ itype_op

#define itype_op ( x)    (x >> 26)

◆ itype_rs

#define itype_rs ( x)    ((x >> 21) & 0x1f)

◆ itype_rt

#define itype_rt ( x)    ((x >> 16) & 0x1f)

◆ jtype_op

#define jtype_op ( x)    (x >> 26)

Definition at line 1505 of file mips-tdep.c.

◆ jtype_target

#define jtype_target ( x)    (x & 0x03ffffff)

Definition at line 1506 of file mips-tdep.c.

Referenced by mips32_next_pc(), and mips_get_mips16_fn_stub_pc().

◆ LL_OPCODE

#define LL_OPCODE   0x30

Definition at line 3932 of file mips-tdep.c.

Referenced by mips_deal_with_atomic_sequence().

◆ LLD_OPCODE

#define LLD_OPCODE   0x34

Definition at line 3933 of file mips-tdep.c.

Referenced by mips_deal_with_atomic_sequence().

◆ MAX_MIPS_ABI_REGSIZE

#define MAX_MIPS_ABI_REGSIZE   8

Definition at line 304 of file mips-tdep.c.

Referenced by mips_eabi_push_dummy_call().

◆ micromips_op

#define micromips_op ( x)    ((x) >> 10)

◆ mips32_op

#define mips32_op ( x)    (x >> 26)

Definition at line 1499 of file mips-tdep.c.

◆ MIPS_DEFAULT_FPU_TYPE

#define MIPS_DEFAULT_FPU_TYPE   MIPS_FPU_DOUBLE

Definition at line 200 of file mips-tdep.c.

Referenced by mips_dump_tdep().

◆ PROPERTY_GP32

#define PROPERTY_GP32   "internal: transfers-32bit-registers"

Definition at line 209 of file mips-tdep.c.

Referenced by _initialize_mips_tdep(), and mips_gdbarch_init().

◆ PROPERTY_GP64

#define PROPERTY_GP64   "internal: transfers-64bit-registers"

Definition at line 210 of file mips-tdep.c.

Referenced by _initialize_mips_tdep(), and mips_gdbarch_init().

◆ R [1/2]

#define R ( n)    { "r" #n, n }

◆ R [2/2]

#define R ( n)    { #n, n }

◆ rtype_funct

#define rtype_funct ( x)    (x & 0x3f)

◆ rtype_op

#define rtype_op ( x)    (x >> 26)

Definition at line 1508 of file mips-tdep.c.

◆ rtype_rd

#define rtype_rd ( x)    ((x >> 11) & 0x1f)

Definition at line 1511 of file mips-tdep.c.

Referenced by mips_get_mips16_fn_stub_pc().

◆ rtype_rs

#define rtype_rs ( x)    ((x >> 21) & 0x1f)

Definition at line 1509 of file mips-tdep.c.

Referenced by mips32_next_pc(), and mips_get_mips16_fn_stub_pc().

◆ rtype_rt

#define rtype_rt ( x)    ((x >> 16) & 0x1f)

Definition at line 1510 of file mips-tdep.c.

Referenced by mips_get_mips16_fn_stub_pc().

◆ rtype_shamt

#define rtype_shamt ( x)    ((x >> 6) & 0x1f)

Definition at line 1512 of file mips-tdep.c.

◆ SC_OPCODE

#define SC_OPCODE   0x38

Definition at line 3934 of file mips-tdep.c.

Referenced by mips_deal_with_atomic_sequence().

◆ SCD_OPCODE

#define SCD_OPCODE   0x3c

Definition at line 3935 of file mips-tdep.c.

Referenced by mips_deal_with_atomic_sequence().

◆ ST0_FR

#define ST0_FR   (1 << 26)

Definition at line 81 of file mips-tdep.c.

Referenced by mips2_fp_compat().

◆ VM_MIN_ADDRESS

#define VM_MIN_ADDRESS   (CORE_ADDR)0x400000

Definition at line 586 of file mips-tdep.c.

Referenced by gnu_nat_target::find_memory_regions(), and heuristic_proc_start().

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
MIPS_FPU_SINGLE_REGSIZE 
MIPS_FPU_DOUBLE_REGSIZE 

Definition at line 85 of file mips-tdep.c.

◆ anonymous enum

anonymous enum
Enumerator
MIPS32_REGSIZE 
MIPS64_REGSIZE 

Definition at line 91 of file mips-tdep.c.

◆ anonymous enum

anonymous enum
Enumerator
NUM_MIPS_PROCESSOR_REGS 

Definition at line 599 of file mips-tdep.c.

◆ mips16_inst_fmts

Enumerator
itype 
ritype 
rrtype 
rritype 
rrrtype 
rriatype 
shifttype 
i8type 
i8movtype 
i8mov32rtype 
i64type 
ri64type 
jalxtype 
exiItype 
extRitype 
extRRItype 
extRRIAtype 
EXTshifttype 
extI8type 
extI64type 
extRi64type 
extshift64type 

Definition at line 2124 of file mips-tdep.c.

◆ mips_breakpoint_kind

Enumerator
MIPS_BP_KIND_MIPS16 
MIPS_BP_KIND_MICROMIPS16 
MIPS_BP_KIND_MIPS32 
MIPS_BP_KIND_MICROMIPS32 

Definition at line 112 of file mips-tdep.c.

◆ mips_fval_reg

Enumerator
mips_fval_fpr 
mips_fval_gpr 
mips_fval_both 

Definition at line 5381 of file mips-tdep.c.

Function Documentation

◆ _initialize_mips_tdep()

void _initialize_mips_tdep ( )

◆ add_offset_16()

static CORE_ADDR add_offset_16 ( CORE_ADDR pc,
int offset )
static

Definition at line 2271 of file mips-tdep.c.

Referenced by extended_mips16_next_pc().

◆ deal_with_atomic_sequence()

static std::vector< CORE_ADDR > deal_with_atomic_sequence ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ extended_mips16_next_pc()

static CORE_ADDR extended_mips16_next_pc ( regcache * regcache,
CORE_ADDR pc,
unsigned int extension,
unsigned int insn )
static

◆ extended_offset()

static CORE_ADDR extended_offset ( unsigned int extension)
static

Definition at line 2163 of file mips-tdep.c.

References value.

Referenced by unpack_mips16().

◆ fetch_mips_16()

static unsigned int fetch_mips_16 ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ fp_register_arg_p()

static int fp_register_arg_p ( struct gdbarch * gdbarch,
enum type_code typecode,
struct type * arg_type )
static

◆ gdb_print_insn_mips()

static int gdb_print_insn_mips ( bfd_vma memaddr,
struct disassemble_info * info )
static

◆ global_mips_abi()

static enum mips_abi global_mips_abi ( void )
static

Definition at line 8025 of file mips-tdep.c.

References mips_abi_string, and mips_abi_strings.

Referenced by mips_gdbarch_init(), and show_mips_abi().

◆ global_mips_compression()

static enum mips_isa global_mips_compression ( void )
static

Definition at line 8042 of file mips-tdep.c.

References mips_compression_string, and mips_compression_strings.

Referenced by mips_gdbarch_init().

◆ heuristic_proc_start()

static CORE_ADDR heuristic_proc_start ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ is_compact_addr()

static int is_compact_addr ( CORE_ADDR addr)
static

Definition at line 354 of file mips-tdep.c.

Referenced by is_micromips_addr(), is_mips16_addr(), and is_mips_addr().

◆ is_micromips_addr()

static int is_micromips_addr ( struct gdbarch * gdbarch,
CORE_ADDR addr )
static

Definition at line 378 of file mips-tdep.c.

References is_compact_addr(), and is_micromips_isa().

Referenced by mips_pc_is_micromips(), and mips_pc_isa().

◆ is_micromips_isa()

static int is_micromips_isa ( struct gdbarch * gdbarch)
static

Definition at line 345 of file mips-tdep.c.

References ISA_MICROMIPS.

Referenced by is_micromips_addr().

◆ is_mips16_addr()

static int is_mips16_addr ( struct gdbarch * gdbarch,
CORE_ADDR addr )
static

Definition at line 370 of file mips-tdep.c.

References is_compact_addr(), and is_mips16_isa().

Referenced by mips_pc_is_mips16().

◆ is_mips16_isa()

static int is_mips16_isa ( struct gdbarch * gdbarch)
static

Definition at line 336 of file mips-tdep.c.

References ISA_MIPS16.

Referenced by is_mips16_addr().

◆ is_mips_addr()

static int is_mips_addr ( CORE_ADDR addr)
static

Definition at line 362 of file mips-tdep.c.

References is_compact_addr().

Referenced by mips_pc_is_mips(), and mips_pc_isa().

◆ is_octeon()

static int is_octeon ( struct gdbarch * gdbarch)
static

Definition at line 1609 of file mips-tdep.c.

References gdbarch_bfd_arch_info().

Referenced by is_octeon_bbit_op().

◆ is_octeon_bbit_op()

static int is_octeon_bbit_op ( int op,
struct gdbarch * gdbarch )
static

Definition at line 1621 of file mips-tdep.c.

References is_octeon().

Referenced by mips32_instruction_has_delay_slot(), and mips32_next_pc().

◆ make_compact_addr()

static CORE_ADDR make_compact_addr ( CORE_ADDR addr)
static

◆ micromips_bc1_pc()

static CORE_ADDR micromips_bc1_pc ( struct gdbarch * gdbarch,
struct regcache * regcache,
ULONGEST insn,
CORE_ADDR pc,
int count )
static

◆ micromips_deal_with_atomic_sequence()

static std::vector< CORE_ADDR > micromips_deal_with_atomic_sequence ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ micromips_decode_imm9()

static int micromips_decode_imm9 ( int imm)
static

◆ micromips_insn_at_pc_has_delay_slot()

static int micromips_insn_at_pc_has_delay_slot ( struct gdbarch * gdbarch,
CORE_ADDR addr,
int mustbe32 )
static

◆ micromips_instruction_has_delay_slot()

static int micromips_instruction_has_delay_slot ( ULONGEST insn,
int mustbe32 )
static

Definition at line 7199 of file mips-tdep.c.

References b0s6_op, b5s5_op, b6s10_ext, and micromips_op.

Referenced by micromips_insn_at_pc_has_delay_slot(), and micromips_scan_prologue().

◆ micromips_instruction_is_compact_branch()

static int micromips_instruction_is_compact_branch ( unsigned short insn)
static

Definition at line 2432 of file mips-tdep.c.

References b5s5_op, and micromips_op.

Referenced by micromips_scan_prologue().

◆ micromips_next_pc()

static CORE_ADDR micromips_next_pc ( struct regcache * regcache,
CORE_ADDR pc )
static

◆ micromips_pc_insn_size()

static int micromips_pc_insn_size ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

Definition at line 1863 of file mips-tdep.c.

References ISA_MICROMIPS, mips_fetch_instruction(), and mips_insn_size().

Referenced by micromips_bc1_pc(), and micromips_next_pc().

◆ micromips_relative_offset10()

static LONGEST micromips_relative_offset10 ( ULONGEST insn)
static

Definition at line 1846 of file mips-tdep.c.

References b0s10_imm.

Referenced by micromips_next_pc().

◆ micromips_relative_offset16()

static LONGEST micromips_relative_offset16 ( ULONGEST insn)
static

Definition at line 1855 of file mips-tdep.c.

References b0s16_imm.

Referenced by micromips_bc1_pc(), micromips_deal_with_atomic_sequence(), and micromips_next_pc().

◆ micromips_relative_offset7()

static LONGEST micromips_relative_offset7 ( ULONGEST insn)
static

Definition at line 1837 of file mips-tdep.c.

References b0s7_imm.

Referenced by micromips_deal_with_atomic_sequence(), and micromips_next_pc().

◆ micromips_scan_prologue()

static CORE_ADDR micromips_scan_prologue ( struct gdbarch * gdbarch,
CORE_ADDR start_pc,
CORE_ADDR limit_pc,
frame_info_ptr this_frame,
struct mips_frame_cache * this_cache )
static

◆ micromips_stack_frame_destroyed_p()

static int micromips_stack_frame_destroyed_p ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ mips16_get_imm()

static int mips16_get_imm ( unsigned short prev_inst,
unsigned short inst,
int nbits,
int scale,
int is_signed )
static

Definition at line 2488 of file mips-tdep.c.

Referenced by mips16_scan_prologue().

◆ mips16_insn_at_pc_has_delay_slot()

static int mips16_insn_at_pc_has_delay_slot ( struct gdbarch * gdbarch,
CORE_ADDR addr,
int mustbe32 )
static

◆ mips16_instruction_has_delay_slot()

static int mips16_instruction_has_delay_slot ( unsigned short inst,
int mustbe32 )
static

Definition at line 7286 of file mips-tdep.c.

Referenced by mips16_insn_at_pc_has_delay_slot(), and mips16_scan_prologue().

◆ mips16_instruction_is_compact_branch()

static int mips16_instruction_is_compact_branch ( unsigned short insn)
static

Definition at line 2411 of file mips-tdep.c.

Referenced by mips16_scan_prologue().

◆ mips16_next_pc()

static CORE_ADDR mips16_next_pc ( struct regcache * regcache,
CORE_ADDR pc )
static

Definition at line 2382 of file mips-tdep.c.

References reg_buffer::arch(), extended_mips16_next_pc(), and fetch_mips_16().

Referenced by mips_next_pc().

◆ mips16_scan_prologue()

static CORE_ADDR mips16_scan_prologue ( struct gdbarch * gdbarch,
CORE_ADDR start_pc,
CORE_ADDR limit_pc,
frame_info_ptr this_frame,
struct mips_frame_cache * this_cache )
static

◆ mips16_stack_frame_destroyed_p()

static int mips16_stack_frame_destroyed_p ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ mips2_fp_compat()

static int mips2_fp_compat ( frame_info_ptr frame)
static

◆ mips32_bc1_pc()

static CORE_ADDR mips32_bc1_pc ( struct gdbarch * gdbarch,
struct regcache * regcache,
ULONGEST inst,
CORE_ADDR pc,
int count )
static

◆ mips32_insn_at_pc_has_delay_slot()

static int mips32_insn_at_pc_has_delay_slot ( struct gdbarch * gdbarch,
CORE_ADDR addr )
static

◆ mips32_instruction_has_delay_slot()

static int mips32_instruction_has_delay_slot ( struct gdbarch * gdbarch,
ULONGEST inst )
static

◆ mips32_next_pc()

static CORE_ADDR mips32_next_pc ( struct regcache * regcache,
CORE_ADDR pc )
static

◆ mips32_relative_offset()

static LONGEST mips32_relative_offset ( ULONGEST inst)
static

Definition at line 1571 of file mips-tdep.c.

References itype_immediate.

Referenced by mips32_bc1_pc(), mips32_next_pc(), and mips_deal_with_atomic_sequence().

◆ mips32_scan_prologue()

static CORE_ADDR mips32_scan_prologue ( struct gdbarch * gdbarch,
CORE_ADDR start_pc,
CORE_ADDR limit_pc,
frame_info_ptr this_frame,
struct mips_frame_cache * this_cache )
static

◆ mips32_stack_frame_destroyed_p()

static int mips32_stack_frame_destroyed_p ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ mips_abi()

enum mips_abi mips_abi ( struct gdbarch * gdbarch)

Definition at line 283 of file mips-tdep.c.

◆ mips_abi_regsize()

unsigned int mips_abi_regsize ( struct gdbarch * gdbarch)

◆ mips_abi_update()

static void mips_abi_update ( const char * ignore_args,
int from_tty,
struct cmd_list_element * c )
static

Definition at line 8835 of file mips-tdep.c.

References gdbarch_update_p().

Referenced by _initialize_mips_tdep().

◆ mips_about_to_return()

static int mips_about_to_return ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

Definition at line 4230 of file mips-tdep.c.

References ISA_MIPS, mips_fetch_instruction(), and mips_pc_is_mips().

Referenced by heuristic_proc_start().

◆ mips_addr_bits_remove()

static CORE_ADDR mips_addr_bits_remove ( struct gdbarch * gdbarch,
CORE_ADDR addr )
static

Definition at line 3899 of file mips-tdep.c.

References mips_mask_address_p().

Referenced by mips_gdbarch_init().

◆ mips_adjust_breakpoint_address()

static CORE_ADDR mips_adjust_breakpoint_address ( struct gdbarch * gdbarch,
CORE_ADDR bpaddr )
static

◆ mips_adjust_dwarf2_addr()

static CORE_ADDR mips_adjust_dwarf2_addr ( CORE_ADDR pc)
static

◆ mips_adjust_dwarf2_line()

static CORE_ADDR mips_adjust_dwarf2_line ( CORE_ADDR addr,
int rel )
static

Definition at line 1342 of file mips-tdep.c.

References mips_adjust_dwarf2_addr().

Referenced by mips_gdbarch_init().

◆ mips_ax_pseudo_register_collect()

static int mips_ax_pseudo_register_collect ( struct gdbarch * gdbarch,
struct agent_expr * ax,
int reg )
static

Definition at line 832 of file mips-tdep.c.

References ax_reg_mask(), and gdbarch_num_regs().

Referenced by mips_gdbarch_init().

◆ mips_ax_pseudo_register_push_stack()

static int mips_ax_pseudo_register_push_stack ( struct gdbarch * gdbarch,
struct agent_expr * ax,
int reg )
static

◆ mips_breakpoint_kind_from_pc()

static int mips_breakpoint_kind_from_pc ( struct gdbarch * gdbarch,
CORE_ADDR * pcptr )
static

◆ mips_convert_register_float_case_p()

static int mips_convert_register_float_case_p ( struct gdbarch * gdbarch,
int regnum,
struct type * type )
static

◆ mips_convert_register_gpreg_case_p()

static int mips_convert_register_gpreg_case_p ( struct gdbarch * gdbarch,
int regnum,
struct type * type )
static

◆ mips_convert_register_p()

static int mips_convert_register_p ( struct gdbarch * gdbarch,
int regnum,
struct type * type )
static

◆ mips_deal_with_atomic_sequence()

static std::vector< CORE_ADDR > mips_deal_with_atomic_sequence ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ mips_dummy_id()

static struct frame_id mips_dummy_id ( struct gdbarch * gdbarch,
frame_info_ptr this_frame )
static

◆ mips_dump_tdep()

static void mips_dump_tdep ( struct gdbarch * gdbarch,
struct ui_file * file )
static

◆ mips_dwarf_dwarf2_ecoff_reg_to_regnum()

static int mips_dwarf_dwarf2_ecoff_reg_to_regnum ( struct gdbarch * gdbarch,
int num )
static

◆ mips_eabi()

static bool mips_eabi ( gdbarch * arch)
static

Definition at line 253 of file mips-tdep.c.

References MIPS_ABI_EABI32, and MIPS_ABI_EABI64.

Referenced by fp_register_arg_p(), and mips_dump_tdep().

◆ mips_eabi_push_dummy_call()

static CORE_ADDR mips_eabi_push_dummy_call ( struct gdbarch * gdbarch,
struct value * function,
struct regcache * regcache,
CORE_ADDR bp_addr,
int nargs,
struct value ** args,
CORE_ADDR sp,
function_call_return_method return_method,
CORE_ADDR struct_addr )
static

◆ mips_eabi_return_value()

static enum return_value_convention mips_eabi_return_value ( struct gdbarch * gdbarch,
struct value * function,
struct type * type,
struct regcache * regcache,
gdb_byte * readbuf,
const gdb_byte * writebuf )
static

◆ mips_elf_make_msymbol_special()

static void mips_elf_make_msymbol_special ( asymbol * sym,
struct minimal_symbol * msym )
static

◆ mips_fetch_instruction()

static ULONGEST mips_fetch_instruction ( struct gdbarch * gdbarch,
enum mips_isa isa,
CORE_ADDR addr,
int * errp )
static

◆ mips_find_abi_section()

static void mips_find_abi_section ( bfd * abfd,
asection * sect,
void * obj )
static

◆ mips_find_long_section()

static void mips_find_long_section ( bfd * abfd,
asection * sect,
void * obj )
static

Definition at line 8011 of file mips-tdep.c.

References name.

Referenced by mips_gdbarch_init().

◆ mips_float_register_p()

static int mips_float_register_p ( struct gdbarch * gdbarch,
int regnum )
static

◆ mips_fpa0_regnum()

static int mips_fpa0_regnum ( struct gdbarch * gdbarch)
static

◆ mips_fpu_type_str()

static const char * mips_fpu_type_str ( enum mips_fpu_type fpu_type)
static

Definition at line 8898 of file mips-tdep.c.

References MIPS_FPU_DOUBLE, MIPS_FPU_NONE, and MIPS_FPU_SINGLE.

Referenced by mips_dump_tdep().

◆ mips_frame_align()

static CORE_ADDR mips_frame_align ( struct gdbarch * gdbarch,
CORE_ADDR addr )
static

Definition at line 4477 of file mips-tdep.c.

Referenced by mips_gdbarch_init(), and mips_push_dummy_code().

◆ mips_gdbarch_init()

static struct gdbarch * mips_gdbarch_init ( struct gdbarch_info info,
struct gdbarch_list * arches )
static

Definition at line 8078 of file mips-tdep.c.

References address_to_signed_pointer(), arches, mips_regnum::badvaddr, mips_regnum::cause, core_addr_lessthan(), mips_gdbarch_tdep::default_mask_address_p, mips_regnum::dspacc, mips_regnum::dspctl, dwarf2_append_unwinders(), dwarf2_frame_base_sniffer(), mips_gdbarch_tdep::elf_flags, floatformats_ibm_long_double, mips_regnum::fp0, mips_regnum::fp_control_status, mips_regnum::fp_implementation_revision, frame_base_append_sniffer(), frame_unwind_append_unwinder(), GDB_OSABI_LINUX, gdb_print_insn_mips(), gdb_printf(), gdb_stdlog, gdbarch_alloc(), gdbarch_debug, gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), gdbarch_num_regs(), GDBARCH_OBSTACK_ZALLOC, registry< T >::get(), global_mips_abi(), global_mips_compression(), mips_regnum::hi, ISA_MICROMIPS, ISA_MIPS16, mips_regnum::lo, mips64_transfers_32bit_regs_p, mips_gdbarch_tdep::mips64_transfers_32bit_regs_p, MIPS_A0_REGNUM, MIPS_ABI_EABI32, MIPS_ABI_EABI64, MIPS_ABI_N32, MIPS_ABI_N64, MIPS_ABI_O32, MIPS_ABI_O64, MIPS_ABI_UNKNOWN, mips_addr_bits_remove(), mips_adjust_breakpoint_address(), mips_adjust_dwarf2_addr(), mips_adjust_dwarf2_line(), mips_ax_pseudo_register_collect(), mips_ax_pseudo_register_push_stack(), mips_breakpoint_kind_from_pc(), mips_compression_string, mips_compression_strings, mips_convert_register_p(), mips_disassembler_options, mips_disassembler_options_n32, mips_disassembler_options_n64, mips_disassembler_options_o32, mips_dummy_id(), mips_dwarf_dwarf2_ecoff_reg_to_regnum(), mips_eabi_push_dummy_call(), mips_eabi_return_value(), mips_elf_make_msymbol_special(), MIPS_EMBED_BADVADDR_REGNUM, MIPS_EMBED_CAUSE_REGNUM, MIPS_EMBED_FP0_REGNUM, MIPS_EMBED_HI_REGNUM, MIPS_EMBED_LO_REGNUM, MIPS_EMBED_PC_REGNUM, mips_find_abi_section(), mips_find_long_section(), MIPS_FPU_DOUBLE, MIPS_FPU_NONE, MIPS_FPU_SINGLE, mips_fpu_type, mips_fpu_type_auto, mips_frame_align(), mips_generic_reg_names, mips_get_fpu_type(), mips_in_return_stub(), mips_insn16_frame_base_sniffer(), mips_insn16_frame_unwind, mips_insn32_frame_base_sniffer(), mips_insn32_frame_unwind, mips_integer_to_address(), mips_gdbarch_tdep::mips_last_arg_regnum, MIPS_LAST_EMBED_REGNUM, mips_gdbarch_tdep::mips_last_fp_arg_regnum, mips_linux_reg_names, mips_make_symbol_special(), mips_micro_frame_base_sniffer(), mips_micro_frame_unwind, mips_n32_n64_aliases, mips_n32n64_push_dummy_call(), mips_n32n64_return_value(), mips_numeric_register_aliases, mips_o32_aliases, mips_o32_push_dummy_call(), mips_o32_return_value(), mips_o64_push_dummy_call(), mips_o64_return_value(), mips_print_float_info(), mips_print_registers_info(), mips_gdbarch_tdep::mips_processor_reg_names, MIPS_PS_REGNUM, mips_pseudo_register_read(), mips_pseudo_register_type(), mips_pseudo_register_write(), mips_push_dummy_code(), MIPS_RA_REGNUM, mips_read_pc(), mips_register_aliases, mips_register_g_packet_guesses(), mips_register_name(), mips_register_reggroup_p(), mips_register_sim_regno(), mips_register_to_value(), mips_register_type(), mips_regnum(), mips_single_step_through_delay(), mips_skip_prologue(), mips_skip_trampoline_code(), MIPS_SP_REGNUM, mips_stab_reg_to_regnum(), mips_stack_frame_destroyed_p(), mips_stub_frame_base_sniffer(), mips_stub_frame_unwind, mips_sw_breakpoint_from_kind(), mips_tdesc_register_reggroup_p(), mips_tx39_reg_names, mips_unwind_pc(), mips_unwind_sp(), mips_value_to_register(), mips_virtual_frame_pointer(), mips_write_pc(), MIPS_ZERO_REGNUM, name, ON_STACK, mips_regnum::pc, PROPERTY_GP32, PROPERTY_GP64, mips_gdbarch_tdep::register_size, mips_gdbarch_tdep::register_size_valid_p, regnum, mips_gdbarch_tdep::regnum, set_gdbarch_addr_bits_remove(), set_gdbarch_address_to_pointer(), set_gdbarch_adjust_breakpoint_address(), set_gdbarch_adjust_dwarf2_addr(), set_gdbarch_adjust_dwarf2_line(), set_gdbarch_ax_pseudo_register_collect(), set_gdbarch_ax_pseudo_register_push_stack(), set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_call_dummy_location(), set_gdbarch_convert_register_p(), set_gdbarch_disassembler_options(), set_gdbarch_disassembler_options_implicit(), set_gdbarch_double_bit(), set_gdbarch_dummy_id(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_ecoff_reg_to_regnum(), set_gdbarch_elf_make_msymbol_special(), set_gdbarch_float_bit(), set_gdbarch_fp0_regnum(), set_gdbarch_frame_align(), set_gdbarch_have_nonsteppable_watchpoint(), set_gdbarch_in_solib_return_trampoline(), set_gdbarch_inner_than(), set_gdbarch_int_bit(), set_gdbarch_integer_to_address(), set_gdbarch_long_bit(), set_gdbarch_long_double_bit(), set_gdbarch_long_double_format(), set_gdbarch_long_long_bit(), set_gdbarch_make_symbol_special(), set_gdbarch_num_pseudo_regs(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_pointer_to_address(), set_gdbarch_print_float_info(), set_gdbarch_print_insn(), set_gdbarch_print_registers_info(), set_gdbarch_pseudo_register_read(), set_gdbarch_pseudo_register_write(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_push_dummy_code(), set_gdbarch_read_pc(), set_gdbarch_register_name(), set_gdbarch_register_reggroup_p(), set_gdbarch_register_sim_regno(), set_gdbarch_register_to_value(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_single_step_through_delay(), set_gdbarch_skip_prologue(), set_gdbarch_skip_trampoline_code(), set_gdbarch_sp_regnum(), set_gdbarch_stab_reg_to_regnum(), set_gdbarch_stack_frame_destroyed_p(), set_gdbarch_sw_breakpoint_from_kind(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), set_gdbarch_valid_disassembler_options(), set_gdbarch_value_to_register(), set_gdbarch_vbit_in_delta(), set_gdbarch_virtual_frame_pointer(), set_gdbarch_write_pc(), set_tdesc_pseudo_register_type(), signed_pointer_to_address(), tdesc_data, tdesc_data_alloc(), tdesc_find_feature(), tdesc_has_registers(), tdesc_numbered_register(), tdesc_property(), tdesc_use_registers(), user_reg_add(), and value_of_mips_user_reg().

Referenced by _initialize_mips_tdep().

◆ mips_get_fpu_type()

static enum mips_fpu_type mips_get_fpu_type ( gdbarch * arch)
static

◆ mips_get_mips16_fn_stub_pc()

static CORE_ADDR mips_get_mips16_fn_stub_pc ( frame_info_ptr frame,
CORE_ADDR pc )
static

◆ mips_in_frame_stub()

static int mips_in_frame_stub ( CORE_ADDR pc)
static

◆ mips_in_return_stub()

static int mips_in_return_stub ( struct gdbarch * gdbarch,
CORE_ADDR pc,
const char * name )
static

◆ mips_insn16_frame_base_address()

static CORE_ADDR mips_insn16_frame_base_address ( frame_info_ptr this_frame,
void ** this_cache )
static

Definition at line 2939 of file mips-tdep.c.

References mips_insn16_frame_cache().

◆ mips_insn16_frame_base_sniffer()

static const struct frame_base * mips_insn16_frame_base_sniffer ( frame_info_ptr this_frame)
static

Definition at line 2956 of file mips-tdep.c.

References get_frame_arch(), get_frame_pc(), mips_insn16_frame_base, and mips_pc_is_mips16().

Referenced by mips_gdbarch_init().

◆ mips_insn16_frame_cache()

static struct mips_frame_cache * mips_insn16_frame_cache ( frame_info_ptr this_frame,
void ** this_cache )
static

◆ mips_insn16_frame_prev_register()

static struct value * mips_insn16_frame_prev_register ( frame_info_ptr this_frame,
void ** this_cache,
int regnum )
static

Definition at line 2908 of file mips-tdep.c.

References mips_insn16_frame_cache(), regnum, and trad_frame_get_prev_register().

◆ mips_insn16_frame_sniffer()

static int mips_insn16_frame_sniffer ( const struct frame_unwind * self,
frame_info_ptr this_frame,
void ** this_cache )
static

Definition at line 2917 of file mips-tdep.c.

References get_frame_arch(), get_frame_pc(), and mips_pc_is_mips16().

◆ mips_insn16_frame_this_id()

static void mips_insn16_frame_this_id ( frame_info_ptr this_frame,
void ** this_cache,
struct frame_id * this_id )
static

Definition at line 2896 of file mips-tdep.c.

References frame_id_build(), get_frame_func(), and mips_insn16_frame_cache().

◆ mips_insn32_frame_base_address()

static CORE_ADDR mips_insn32_frame_base_address ( frame_info_ptr this_frame,
void ** this_cache )
static

Definition at line 3754 of file mips-tdep.c.

References mips_insn32_frame_cache().

◆ mips_insn32_frame_base_sniffer()

static const struct frame_base * mips_insn32_frame_base_sniffer ( frame_info_ptr this_frame)
static

Definition at line 3771 of file mips-tdep.c.

References get_frame_pc(), mips_insn32_frame_base, and mips_pc_is_mips().

Referenced by mips_gdbarch_init().

◆ mips_insn32_frame_cache()

static struct mips_frame_cache * mips_insn32_frame_cache ( frame_info_ptr this_frame,
void ** this_cache )
static

◆ mips_insn32_frame_prev_register()

static struct value * mips_insn32_frame_prev_register ( frame_info_ptr this_frame,
void ** this_cache,
int regnum )
static

Definition at line 3724 of file mips-tdep.c.

References mips_insn32_frame_cache(), regnum, and trad_frame_get_prev_register().

◆ mips_insn32_frame_sniffer()

static int mips_insn32_frame_sniffer ( const struct frame_unwind * self,
frame_info_ptr this_frame,
void ** this_cache )
static

Definition at line 3733 of file mips-tdep.c.

References get_frame_pc(), and mips_pc_is_mips().

◆ mips_insn32_frame_this_id()

static void mips_insn32_frame_this_id ( frame_info_ptr this_frame,
void ** this_cache,
struct frame_id * this_id )
static

Definition at line 3712 of file mips-tdep.c.

References frame_id_build(), get_frame_func(), and mips_insn32_frame_cache().

◆ mips_insn_size()

static int mips_insn_size ( enum mips_isa isa,
ULONGEST insn )
static

◆ mips_integer_to_address()

static CORE_ADDR mips_integer_to_address ( struct gdbarch * gdbarch,
struct type * type,
const gdb_byte * buf )
static

Definition at line 7962 of file mips-tdep.c.

References extract_signed_integer(), gdbarch_byte_order(), and type::length().

Referenced by mips_gdbarch_init().

◆ mips_is_stub_mode()

static int mips_is_stub_mode ( const char * mode)
static

Definition at line 7507 of file mips-tdep.c.

Referenced by mips_in_return_stub(), and mips_skip_mips16_trampoline_code().

◆ mips_is_stub_suffix()

static int mips_is_stub_suffix ( const char * suffix,
int zero )
static

Definition at line 7485 of file mips-tdep.c.

Referenced by mips_in_return_stub(), and mips_skip_mips16_trampoline_code().

◆ mips_isa_regsize()

int mips_isa_regsize ( struct gdbarch * gdbarch)

◆ mips_last_arg_regnum()

static int mips_last_arg_regnum ( gdbarch * arch)
static

◆ mips_last_fp_arg_regnum()

static int mips_last_fp_arg_regnum ( gdbarch * arch)
static

◆ mips_make_symbol_special()

static void mips_make_symbol_special ( struct symbol * sym,
struct objfile * objfile )
static

◆ mips_mask_address_p()

static int mips_mask_address_p ( mips_gdbarch_tdep * tdep)
static

◆ mips_micro_frame_base_address()

static CORE_ADDR mips_micro_frame_base_address ( frame_info_ptr this_frame,
void ** this_cache )
static

Definition at line 3375 of file mips-tdep.c.

References mips_micro_frame_cache().

◆ mips_micro_frame_base_sniffer()

static const struct frame_base * mips_micro_frame_base_sniffer ( frame_info_ptr this_frame)
static

◆ mips_micro_frame_cache()

static struct mips_frame_cache * mips_micro_frame_cache ( frame_info_ptr this_frame,
void ** this_cache )
static

◆ mips_micro_frame_prev_register()

static struct value * mips_micro_frame_prev_register ( frame_info_ptr this_frame,
void ** this_cache,
int regnum )
static

Definition at line 3343 of file mips-tdep.c.

References mips_micro_frame_cache(), regnum, and trad_frame_get_prev_register().

◆ mips_micro_frame_sniffer()

static int mips_micro_frame_sniffer ( const struct frame_unwind * self,
frame_info_ptr this_frame,
void ** this_cache )
static

Definition at line 3352 of file mips-tdep.c.

References get_frame_arch(), get_frame_pc(), and mips_pc_is_micromips().

◆ mips_micro_frame_this_id()

static void mips_micro_frame_this_id ( frame_info_ptr this_frame,
void ** this_cache,
struct frame_id * this_id )
static

Definition at line 3331 of file mips-tdep.c.

References frame_id_build(), get_frame_func(), and mips_micro_frame_cache().

◆ mips_n32n64_fp_arg_chunk_p()

static int mips_n32n64_fp_arg_chunk_p ( struct gdbarch * gdbarch,
struct type * arg_type,
int offset )
static

◆ mips_n32n64_push_dummy_call()

static CORE_ADDR mips_n32n64_push_dummy_call ( struct gdbarch * gdbarch,
struct value * function,
struct regcache * regcache,
CORE_ADDR bp_addr,
int nargs,
struct value ** args,
CORE_ADDR sp,
function_call_return_method return_method,
CORE_ADDR struct_addr )
static

◆ mips_n32n64_return_value()

static enum return_value_convention mips_n32n64_return_value ( struct gdbarch * gdbarch,
struct value * function,
struct type * type,
struct regcache * regcache,
gdb_byte * readbuf,
const gdb_byte * writebuf )
static

◆ mips_next_pc()

static CORE_ADDR mips_next_pc ( struct regcache * regcache,
CORE_ADDR pc )
static

◆ mips_o32_push_dummy_call()

static CORE_ADDR mips_o32_push_dummy_call ( struct gdbarch * gdbarch,
struct value * function,
struct regcache * regcache,
CORE_ADDR bp_addr,
int nargs,
struct value ** args,
CORE_ADDR sp,
function_call_return_method return_method,
CORE_ADDR struct_addr )
static

◆ mips_o32_return_value()

static enum return_value_convention mips_o32_return_value ( struct gdbarch * gdbarch,
struct value * function,
struct type * type,
struct regcache * regcache,
gdb_byte * readbuf,
const gdb_byte * writebuf )
static

◆ mips_o64_push_dummy_call()

static CORE_ADDR mips_o64_push_dummy_call ( struct gdbarch * gdbarch,
struct value * function,
struct regcache * regcache,
CORE_ADDR bp_addr,
int nargs,
struct value ** args,
CORE_ADDR sp,
function_call_return_method return_method,
CORE_ADDR struct_addr )
static

◆ mips_o64_return_value()

static enum return_value_convention mips_o64_return_value ( struct gdbarch * gdbarch,
struct value * function,
struct type * type,
struct regcache * regcache,
gdb_byte * readbuf,
const gdb_byte * writebuf )
static

◆ mips_pc_is_micromips()

int mips_pc_is_micromips ( struct gdbarch * gdbarch,
CORE_ADDR memaddr )

◆ mips_pc_is_mips()

int mips_pc_is_mips ( CORE_ADDR memaddr)

◆ mips_pc_is_mips16()

int mips_pc_is_mips16 ( struct gdbarch * gdbarch,
CORE_ADDR memaddr )

◆ mips_pc_isa()

static enum mips_isa mips_pc_isa ( struct gdbarch * gdbarch,
CORE_ADDR memaddr )
static

◆ mips_print_float_info()

static void mips_print_float_info ( struct gdbarch * gdbarch,
struct ui_file * file,
frame_info_ptr frame,
const char * args )
static

◆ mips_print_fp_register()

static void mips_print_fp_register ( struct ui_file * file,
frame_info_ptr frame,
int regnum )
static

◆ mips_print_register()

static void mips_print_register ( struct ui_file * file,
frame_info_ptr frame,
int regnum )
static

◆ mips_print_registers_info()

static void mips_print_registers_info ( struct gdbarch * gdbarch,
struct ui_file * file,
frame_info_ptr frame,
int regnum,
int all )
static

◆ mips_pseudo_register_read()

static enum register_status mips_pseudo_register_read ( struct gdbarch * gdbarch,
readable_regcache * regcache,
int cookednum,
gdb_byte * buf )
static

◆ mips_pseudo_register_type()

static struct type * mips_pseudo_register_type ( struct gdbarch * gdbarch,
int regnum )
static

◆ mips_pseudo_register_write()

static void mips_pseudo_register_write ( struct gdbarch * gdbarch,
struct regcache * regcache,
int cookednum,
const gdb_byte * buf )
static

◆ mips_push_dummy_code()

static CORE_ADDR mips_push_dummy_code ( struct gdbarch * gdbarch,
CORE_ADDR sp,
CORE_ADDR funaddr,
struct value ** args,
int nargs,
struct type * value_type,
CORE_ADDR * real_pc,
CORE_ADDR * bp_addr,
struct regcache * regcache )
static

◆ mips_read_fp_register_double()

static void mips_read_fp_register_double ( frame_info_ptr frame,
int regno,
gdb_byte * rare_buffer )
static

◆ mips_read_fp_register_single()

static void mips_read_fp_register_single ( frame_info_ptr frame,
int regno,
gdb_byte * rare_buffer )
static

◆ mips_read_pc()

static CORE_ADDR mips_read_pc ( readable_regcache * regcache)
static

◆ mips_register_g_packet_guesses()

static void mips_register_g_packet_guesses ( struct gdbarch * gdbarch)
static

Definition at line 8054 of file mips-tdep.c.

References mips_tdesc_gp32, mips_tdesc_gp64, and register_remote_g_packet_guess().

Referenced by mips_gdbarch_init().

◆ mips_register_name()

static const char * mips_register_name ( struct gdbarch * gdbarch,
int regno )
static

◆ mips_register_reggroup_p()

static int mips_register_reggroup_p ( struct gdbarch * gdbarch,
int regnum,
const struct reggroup * reggroup )
static

◆ mips_register_sim_regno()

static int mips_register_sim_regno ( struct gdbarch * gdbarch,
int regnum )
static

Definition at line 7943 of file mips-tdep.c.

References gdbarch_num_regs(), gdbarch_register_name(), LEGACY_SIM_REGNO_IGNORE, and regnum.

Referenced by mips_gdbarch_init().

◆ mips_register_to_value()

static int mips_register_to_value ( frame_info_ptr frame,
int regnum,
struct type * type,
gdb_byte * to,
int * optimizedp,
int * unavailablep )
static

◆ mips_register_type()

static struct type * mips_register_type ( struct gdbarch * gdbarch,
int regnum )
static

◆ mips_regnum()

const struct mips_regnum * mips_regnum ( struct gdbarch * gdbarch)

◆ mips_segment_boundary()

static CORE_ADDR mips_segment_boundary ( CORE_ADDR bpaddr)
static

Definition at line 7315 of file mips-tdep.c.

Referenced by mips_adjust_breakpoint_address().

◆ mips_single_step_through_delay()

static int mips_single_step_through_delay ( struct gdbarch * gdbarch,
frame_info_ptr frame )
static

◆ mips_skip_mips16_trampoline_code()

static CORE_ADDR mips_skip_mips16_trampoline_code ( frame_info_ptr frame,
CORE_ADDR pc )
static

◆ mips_skip_pic_trampoline_code()

static CORE_ADDR mips_skip_pic_trampoline_code ( frame_info_ptr frame,
CORE_ADDR pc )
static

◆ mips_skip_prologue()

static CORE_ADDR mips_skip_prologue ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ mips_skip_trampoline_code()

static CORE_ADDR mips_skip_trampoline_code ( frame_info_ptr frame,
CORE_ADDR pc )
static

◆ mips_software_single_step()

std::vector< CORE_ADDR > mips_software_single_step ( struct regcache * regcache)

◆ mips_stab_reg_to_regnum()

static int mips_stab_reg_to_regnum ( struct gdbarch * gdbarch,
int num )
static

◆ mips_stack_frame_destroyed_p()

static int mips_stack_frame_destroyed_p ( struct gdbarch * gdbarch,
CORE_ADDR pc )
static

◆ mips_stub_frame_base_address()

static CORE_ADDR mips_stub_frame_base_address ( frame_info_ptr this_frame,
void ** this_cache )
static

◆ mips_stub_frame_base_sniffer()

static const struct frame_base * mips_stub_frame_base_sniffer ( frame_info_ptr this_frame)
static

Definition at line 3888 of file mips-tdep.c.

References mips_stub_frame_base, mips_stub_frame_sniffer(), and mips_stub_frame_unwind.

Referenced by mips_gdbarch_init().

◆ mips_stub_frame_cache()

static struct trad_frame_cache * mips_stub_frame_cache ( frame_info_ptr this_frame,
void ** this_cache )
static

◆ mips_stub_frame_prev_register()

static struct value * mips_stub_frame_prev_register ( frame_info_ptr this_frame,
void ** this_cache,
int regnum )
static

◆ mips_stub_frame_sniffer()

static int mips_stub_frame_sniffer ( const struct frame_unwind * self,
frame_info_ptr this_frame,
void ** this_cache )
static

◆ mips_stub_frame_this_id()

static void mips_stub_frame_this_id ( frame_info_ptr this_frame,
void ** this_cache,
struct frame_id * this_id )
static

◆ mips_sw_breakpoint_from_kind()

static const gdb_byte * mips_sw_breakpoint_from_kind ( struct gdbarch * gdbarch,
int kind,
int * size )
static

◆ mips_tdesc_register_reggroup_p()

static int mips_tdesc_register_reggroup_p ( struct gdbarch * gdbarch,
int regnum,
const struct reggroup * reggroup )
static

◆ mips_type_needs_double_align()

static int mips_type_needs_double_align ( struct type * type)
static

◆ mips_unmake_compact_addr()

CORE_ADDR mips_unmake_compact_addr ( CORE_ADDR addr)

Definition at line 403 of file mips-tdep.c.

References unmake_compact_addr().

Referenced by micromips_linux_sigframe_validate().

◆ mips_unwind_pc()

static CORE_ADDR mips_unwind_pc ( struct gdbarch * gdbarch,
frame_info_ptr next_frame )
static

◆ mips_unwind_sp()

static CORE_ADDR mips_unwind_sp ( struct gdbarch * gdbarch,
frame_info_ptr next_frame )
static

Definition at line 1429 of file mips-tdep.c.

References frame_unwind_register_signed(), gdbarch_num_regs(), and MIPS_SP_REGNUM.

Referenced by mips_gdbarch_init().

◆ mips_value_to_register()

static void mips_value_to_register ( frame_info_ptr frame,
int regnum,
struct type * type,
const gdb_byte * from )
static

◆ mips_virtual_frame_pointer()

static void mips_virtual_frame_pointer ( struct gdbarch * gdbarch,
CORE_ADDR pc,
int * reg,
LONGEST * offset )
static

Definition at line 7975 of file mips-tdep.c.

References MIPS_SP_REGNUM.

Referenced by mips_gdbarch_init().

◆ mips_write_pc()

void mips_write_pc ( struct regcache * regcache,
CORE_ADDR pc )

◆ mips_xfer_register()

static void mips_xfer_register ( struct gdbarch * gdbarch,
struct regcache * regcache,
int reg_num,
int length,
enum bfd_endian endian,
gdb_byte * in,
const gdb_byte * out,
int buf_offset )
static

◆ msymbol_is_micromips()

static int msymbol_is_micromips ( struct minimal_symbol * msym)
static

Definition at line 470 of file mips-tdep.c.

References MSYMBOL_TARGET_FLAG_MICROMIPS.

Referenced by mips_pc_is_micromips(), and mips_pc_isa().

◆ msymbol_is_mips()

static int msymbol_is_mips ( struct minimal_symbol * msym)
static

◆ msymbol_is_mips16()

static int msymbol_is_mips16 ( struct minimal_symbol * msym)
static

Definition at line 462 of file mips-tdep.c.

References MSYMBOL_TARGET_FLAG_MIPS16.

Referenced by mips_pc_is_mips16(), and mips_pc_isa().

◆ print_fp_register_row()

static int print_fp_register_row ( struct ui_file * file,
frame_info_ptr frame,
int regnum )
static

Definition at line 6513 of file mips-tdep.c.

References gdb_printf(), mips_print_fp_register(), and regnum.

Referenced by mips_print_registers_info().

◆ print_fpu_flags()

static void print_fpu_flags ( struct ui_file * file,
int flags )
static

Definition at line 6424 of file mips-tdep.c.

References flags, gdb_putc(), and gdb_puts().

Referenced by mips_print_float_info().

◆ print_gp_register_row()

static int print_gp_register_row ( struct ui_file * file,
frame_info_ptr frame,
int start_regnum )
static

◆ reinit_frame_cache_sfunc()

static void reinit_frame_cache_sfunc ( const char * args,
int from_tty,
struct cmd_list_element * c )
static

Definition at line 7010 of file mips-tdep.c.

References reinit_frame_cache().

Referenced by _initialize_mips_tdep().

◆ reset_saved_regs()

static void reset_saved_regs ( struct gdbarch * gdbarch,
struct mips_frame_cache * this_cache )
static

◆ set_mips64_transfers_32bit_regs()

static void set_mips64_transfers_32bit_regs ( const char * args,
int from_tty,
struct cmd_list_element * c )
static

Definition at line 892 of file mips-tdep.c.

References gdbarch_update_p(), and mips64_transfers_32bit_regs_p.

Referenced by _initialize_mips_tdep().

◆ set_mipsfpu_auto_command()

static void set_mipsfpu_auto_command ( const char * args,
int from_tty )
static

Definition at line 7001 of file mips-tdep.c.

References mips_fpu_type_auto.

Referenced by _initialize_mips_tdep().

◆ set_mipsfpu_double_command()

static void set_mipsfpu_double_command ( const char * args,
int from_tty )
static

Definition at line 6975 of file mips-tdep.c.

References gdbarch_update_p(), MIPS_FPU_DOUBLE, and mips_fpu_type_auto.

Referenced by _initialize_mips_tdep().

◆ set_mipsfpu_none_command()

static void set_mipsfpu_none_command ( const char * args,
int from_tty )
static

Definition at line 6988 of file mips-tdep.c.

References gdbarch_update_p(), MIPS_FPU_NONE, and mips_fpu_type_auto.

Referenced by _initialize_mips_tdep().

◆ set_mipsfpu_single_command()

static void set_mipsfpu_single_command ( const char * args,
int from_tty )
static

Definition at line 6962 of file mips-tdep.c.

References gdbarch_update_p(), MIPS_FPU_SINGLE, and mips_fpu_type_auto.

Referenced by _initialize_mips_tdep().

◆ set_reg_offset()

static void set_reg_offset ( struct gdbarch * gdbarch,
struct mips_frame_cache * this_cache,
int regnum,
CORE_ADDR offset )
static

◆ show_mask_address()

static void show_mask_address ( struct ui_file * file,
int from_tty,
struct cmd_list_element * c,
const char * value )
static

◆ show_mips_abi()

static void show_mips_abi ( struct ui_file * file,
int from_tty,
struct cmd_list_element * ignored_cmd,
const char * ignored_value )
static

◆ show_mips_compression()

static void show_mips_compression ( struct ui_file * file,
int from_tty,
struct cmd_list_element * c,
const char * value )
static

Definition at line 8888 of file mips-tdep.c.

References gdb_printf().

Referenced by _initialize_mips_tdep().

◆ show_mipsfpu_command()

static void show_mipsfpu_command ( const char * args,
int from_tty )
static

◆ unmake_compact_addr()

static CORE_ADDR unmake_compact_addr ( CORE_ADDR addr)
static

◆ unpack_mips16()

static void unpack_mips16 ( struct gdbarch * gdbarch,
CORE_ADDR pc,
unsigned int extension,
unsigned int inst,
enum mips16_inst_fmts insn_format,
struct upk_mips16 * upk )
static

◆ value_of_mips_user_reg()

static struct value * value_of_mips_user_reg ( frame_info_ptr frame,
const void * baton )
static

Definition at line 8071 of file mips-tdep.c.

References value_of_register().

Referenced by mips_gdbarch_init().

Variable Documentation

◆ heuristic_fence_post

int heuristic_fence_post = 0
static

Definition at line 883 of file mips-tdep.c.

Referenced by _initialize_mips_tdep(), and heuristic_proc_start().

◆ mask_address_var

enum auto_boolean mask_address_var = AUTO_BOOLEAN_AUTO
static

Definition at line 1159 of file mips-tdep.c.

Referenced by _initialize_mips_tdep(), mips_mask_address_p(), and show_mask_address().

◆ mips64_transfers_32bit_regs_p

bool mips64_transfers_32bit_regs_p = false
static

◆ mips_abi_string

const char* mips_abi_string
static

Definition at line 97 of file mips-tdep.c.

Referenced by _initialize_mips_tdep(), and global_mips_abi().

◆ mips_abi_strings

const char* const mips_abi_strings[]
static
Initial value:
= {
"auto",
"n32",
"o32",
"n64",
"o64",
"eabi32",
"eabi64",
NULL
}

Definition at line 99 of file mips-tdep.c.

Referenced by _initialize_mips_tdep(), global_mips_abi(), mips_dump_tdep(), and show_mips_abi().

◆ mips_compression_micromips

const char mips_compression_micromips[] = "micromips"
static

Definition at line 131 of file mips-tdep.c.

◆ mips_compression_mips16

const char mips_compression_mips16[] = "mips16"
static

Definition at line 130 of file mips-tdep.c.

◆ mips_compression_string

const char* mips_compression_string = mips_compression_mips16
static

Definition at line 139 of file mips-tdep.c.

Referenced by _initialize_mips_tdep(), global_mips_compression(), and mips_gdbarch_init().

◆ mips_compression_strings

const char* const mips_compression_strings[]
static
Initial value:
=
{
NULL
}
static const char mips_compression_micromips[]
Definition mips-tdep.c:131
static const char mips_compression_mips16[]
Definition mips-tdep.c:130

Definition at line 132 of file mips-tdep.c.

Referenced by _initialize_mips_tdep(), global_mips_compression(), and mips_gdbarch_init().

◆ mips_debug

unsigned int mips_debug = 0
static

◆ mips_disassembler_options

char* mips_disassembler_options
static

Definition at line 216 of file mips-tdep.c.

Referenced by mips_gdbarch_init().

◆ mips_disassembler_options_n32

const char mips_disassembler_options_n32[] = "gpr-names=n32"
static

Definition at line 224 of file mips-tdep.c.

Referenced by mips_gdbarch_init().

◆ mips_disassembler_options_n64

const char mips_disassembler_options_n64[] = "gpr-names=64"
static

Definition at line 225 of file mips-tdep.c.

Referenced by mips_gdbarch_init().

◆ mips_disassembler_options_o32

const char mips_disassembler_options_o32[] = "gpr-names=32"
static

Definition at line 223 of file mips-tdep.c.

Referenced by mips_gdbarch_init().

◆ mips_fpu_type

Definition at line 203 of file mips-tdep.c.

Referenced by mips_gdbarch_init().

◆ mips_fpu_type_auto

int mips_fpu_type_auto = 1
static

◆ mips_generic_reg_names

const char* const mips_generic_reg_names[NUM_MIPS_PROCESSOR_REGS]
static
Initial value:
= {
"sr", "lo", "hi", "bad", "cause", "pc",
"f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7",
"f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15",
"f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23",
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31",
"fsr", "fir",
}

Definition at line 604 of file mips-tdep.c.

Referenced by mips_gdbarch_init().

◆ mips_insn16_frame_base

const struct frame_base mips_insn16_frame_base
static
Initial value:
=
{
}
static const struct frame_unwind mips_insn16_frame_unwind
Definition mips-tdep.c:2927
static CORE_ADDR mips_insn16_frame_base_address(frame_info_ptr this_frame, void **this_cache)
Definition mips-tdep.c:2939

Definition at line 2947 of file mips-tdep.c.

Referenced by mips_insn16_frame_base_sniffer().

◆ mips_insn16_frame_unwind

const struct frame_unwind mips_insn16_frame_unwind
static
Initial value:
=
{
"mips insn16 prologue",
NULL,
}
enum unwind_stop_reason default_frame_unwind_stop_reason(frame_info_ptr this_frame, void **this_cache)
@ NORMAL_FRAME
Definition frame.h:187
static struct value * mips_insn16_frame_prev_register(frame_info_ptr this_frame, void **this_cache, int regnum)
Definition mips-tdep.c:2908
static void mips_insn16_frame_this_id(frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
Definition mips-tdep.c:2896
static int mips_insn16_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_cache)
Definition mips-tdep.c:2917

Definition at line 2927 of file mips-tdep.c.

Referenced by mips_gdbarch_init().

◆ mips_insn32_frame_base

const struct frame_base mips_insn32_frame_base
static
Initial value:
=
{
}
static const struct frame_unwind mips_insn32_frame_unwind
Definition mips-tdep.c:3742
static CORE_ADDR mips_insn32_frame_base_address(frame_info_ptr this_frame, void **this_cache)
Definition mips-tdep.c:3754

Definition at line 3762 of file mips-tdep.c.

Referenced by mips_insn32_frame_base_sniffer().

◆ mips_insn32_frame_unwind

const struct frame_unwind mips_insn32_frame_unwind
static
Initial value:
=
{
"mips insn32 prologue",
NULL,
}
static struct value * mips_insn32_frame_prev_register(frame_info_ptr this_frame, void **this_cache, int regnum)
Definition mips-tdep.c:3724
static int mips_insn32_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_cache)
Definition mips-tdep.c:3733
static void mips_insn32_frame_this_id(frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
Definition mips-tdep.c:3712

Definition at line 3742 of file mips-tdep.c.

Referenced by mips_gdbarch_init().

◆ mips_linux_reg_names

const char* const mips_linux_reg_names[NUM_MIPS_PROCESSOR_REGS]
static
Initial value:
= {
"sr", "lo", "hi", "bad", "cause", "pc",
"f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7",
"f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15",
"f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23",
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31",
"fsr", "fir"
}

Definition at line 627 of file mips-tdep.c.

Referenced by mips_gdbarch_init().

◆ mips_micro_frame_base

const struct frame_base mips_micro_frame_base
static
Initial value:
=
{
}
static const struct frame_unwind mips_micro_frame_unwind
Definition mips-tdep.c:3363
static CORE_ADDR mips_micro_frame_base_address(frame_info_ptr this_frame, void **this_cache)
Definition mips-tdep.c:3375

Definition at line 3383 of file mips-tdep.c.

Referenced by mips_micro_frame_base_sniffer().

◆ mips_micro_frame_unwind

const struct frame_unwind mips_micro_frame_unwind
static
Initial value:
=
{
"mips micro prologue",
NULL,
}
static struct value * mips_micro_frame_prev_register(frame_info_ptr this_frame, void **this_cache, int regnum)
Definition mips-tdep.c:3343
static void mips_micro_frame_this_id(frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
Definition mips-tdep.c:3331
static int mips_micro_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_cache)
Definition mips-tdep.c:3352

Definition at line 3363 of file mips-tdep.c.

Referenced by mips_gdbarch_init().

◆ mips_n32_n64_aliases

const struct register_alias mips_n32_n64_aliases[]
Initial value:
= {
{ "ta0", 8 },
{ "ta1", 9 },
{ "ta2", 10 },
{ "ta3", 11 }
}

Definition at line 157 of file mips-tdep.c.

Referenced by mips_gdbarch_init().

◆ mips_numeric_register_aliases

const struct register_alias mips_numeric_register_aliases[]
Initial value:
= {
#define R(n)
R(0), R(1), R(2), R(3), R(4), R(5), R(6), R(7),
R(8), R(9), R(10), R(11), R(12), R(13), R(14), R(15),
R(16), R(17), R(18), R(19), R(20), R(21), R(22), R(23),
R(24), R(25), R(26), R(27), R(28), R(29), R(30), R(31),
}
#define R(n)

Definition at line 190 of file mips-tdep.c.

Referenced by mips_gdbarch_init().

◆ mips_o32_aliases

const struct register_alias mips_o32_aliases[]
Initial value:
= {
{ "ta0", 12 },
{ "ta1", 13 },
{ "ta2", 14 },
{ "ta3", 15 }
}

Definition at line 149 of file mips-tdep.c.

Referenced by mips_gdbarch_init().

◆ mips_reg3_to_reg

const signed char mips_reg3_to_reg[8] = { 16, 17, 2, 3, 4, 5, 6, 7 }
static

Definition at line 877 of file mips-tdep.c.

Referenced by extended_mips16_next_pc(), micromips_next_pc(), and mips16_scan_prologue().

◆ mips_register_aliases

const struct register_alias mips_register_aliases[]
Initial value:
= {
#define R(n)
R(0), R(1), R(2), R(3), R(4), R(5), R(6), R(7),
R(8), R(9), R(10), R(11), R(12), R(13), R(14), R(15),
R(16), R(17), R(18), R(19), R(20), R(21), R(22), R(23),
R(24), R(25), R(26), R(27), R(28), R(29), R(30), R(31),
{ "kt0", 26 },
{ "kt1", 27 },
{ "sr", MIPS_PS_REGNUM },
{ "fsr", MIPS_EMBED_FP0_REGNUM + 32 }
}
@ MIPS_PS_REGNUM
Definition mips-tdep.h:144
@ MIPS_EMBED_FP0_REGNUM
Definition mips-tdep.h:150
@ MIPS_EMBED_BADVADDR_REGNUM
Definition mips-tdep.h:147

Definition at line 165 of file mips-tdep.c.

Referenced by mips_gdbarch_init().

◆ mips_str_call_fp_stub

const char mips_str_call_fp_stub[] = "__call_stub_fp_"
static

Definition at line 1359 of file mips-tdep.c.

Referenced by mips_in_return_stub().

◆ mips_str_call_stub

const char mips_str_call_stub[] = "__call_stub_"
static

Definition at line 1360 of file mips-tdep.c.

Referenced by mips_in_frame_stub(), and mips_skip_mips16_trampoline_code().

◆ mips_str_fn_stub

const char mips_str_fn_stub[] = "__fn_stub_"
static

Definition at line 1361 of file mips-tdep.c.

Referenced by mips_in_frame_stub(), and mips_skip_mips16_trampoline_code().

◆ mips_str_mips16_call_stub

const char mips_str_mips16_call_stub[] = "__mips16_call_stub_"
static

◆ mips_str_mips16_ret_stub

const char mips_str_mips16_ret_stub[] = "__mips16_ret_"
static

Definition at line 1358 of file mips-tdep.c.

Referenced by mips_in_return_stub(), and mips_skip_mips16_trampoline_code().

◆ mips_str_pic

const char mips_str_pic[] = ".pic."
static

Definition at line 1365 of file mips-tdep.c.

Referenced by mips_in_return_stub().

◆ mips_stub_frame_base

const struct frame_base mips_stub_frame_base
static
Initial value:
=
{
}
static CORE_ADDR mips_stub_frame_base_address(frame_info_ptr this_frame, void **this_cache)
Definition mips-tdep.c:3871
static const struct frame_unwind mips_stub_frame_unwind
Definition mips-tdep.c:3859

Definition at line 3879 of file mips-tdep.c.

Referenced by mips_stub_frame_base_sniffer().

◆ mips_stub_frame_unwind

const struct frame_unwind mips_stub_frame_unwind
static
Initial value:
=
{
"mips stub",
NULL,
}
static int mips_stub_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_cache)
Definition mips-tdep.c:3834
static void mips_stub_frame_this_id(frame_info_ptr this_frame, void **this_cache, struct frame_id *this_id)
Definition mips-tdep.c:3816
static struct value * mips_stub_frame_prev_register(frame_info_ptr this_frame, void **this_cache, int regnum)
Definition mips-tdep.c:3825

Definition at line 3859 of file mips-tdep.c.

Referenced by mips_gdbarch_init(), and mips_stub_frame_base_sniffer().

◆ mips_tdesc_gp32

struct target_desc* mips_tdesc_gp32

◆ mips_tdesc_gp64

struct target_desc* mips_tdesc_gp64

◆ mips_tx39_reg_names

const char* const mips_tx39_reg_names[NUM_MIPS_PROCESSOR_REGS]
static
Initial value:
= {
"sr", "lo", "hi", "bad", "cause", "pc",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "config", "cache", "debug", "depc", "epc",
}

Definition at line 615 of file mips-tdep.c.

Referenced by mips_gdbarch_init().

◆ setmipscmdlist

struct cmd_list_element* setmipscmdlist = NULL
static

Definition at line 592 of file mips-tdep.c.

Referenced by _initialize_mips_tdep().

◆ showmipscmdlist

struct cmd_list_element* showmipscmdlist = NULL
static

Definition at line 593 of file mips-tdep.c.

Referenced by _initialize_mips_tdep().