GDB (xrefs)
Classes | Macros | Enumerations | Functions | Variables
/tmp/gdb-8.1/gdb/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 MIPS_EABI(gdbarch)
 
#define MIPS_LAST_FP_ARG_REGNUM(gdbarch)   (gdbarch_tdep (gdbarch)->mips_last_fp_arg_regnum)
 
#define MIPS_LAST_ARG_REGNUM(gdbarch)   (gdbarch_tdep (gdbarch)->mips_last_arg_regnum)
 
#define MIPS_FPU_TYPE(gdbarch)   (gdbarch_tdep (gdbarch)->mips_fpu_type)
 
#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 *, struct frame_info *, const char *)
 
const struct mips_regnummips_regnum (struct gdbarch *gdbarch)
 
static int mips_fpa0_regnum (struct gdbarch *gdbarch)
 
static int mips_float_register_p (struct gdbarch *gdbarch, int regnum)
 
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 (struct frame_info *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, struct reggroup *reggroup)
 
static int mips_tdesc_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *reggroup)
 
static enum register_status mips_pseudo_register_read (struct gdbarch *gdbarch, struct 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 (struct frame_info *frame, int regnum, struct type *type, gdb_byte *to, int *optimizedp, int *unavailablep)
 
static void mips_value_to_register (struct frame_info *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 (struct 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 (struct regcache *regcache)
 
static CORE_ADDR mips_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
 
static CORE_ADDR mips_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
 
static struct frame_id mips_dummy_id (struct gdbarch *gdbarch, struct frame_info *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, struct frame_info *this_frame, struct mips_frame_cache *this_cache)
 
static struct mips_frame_cachemips_insn16_frame_cache (struct frame_info *this_frame, void **this_cache)
 
static void mips_insn16_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valuemips_insn16_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
 
static int mips_insn16_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
 
static CORE_ADDR mips_insn16_frame_base_address (struct frame_info *this_frame, void **this_cache)
 
static const struct frame_basemips_insn16_frame_base_sniffer (struct frame_info *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, struct frame_info *this_frame, struct mips_frame_cache *this_cache)
 
static struct mips_frame_cachemips_micro_frame_cache (struct frame_info *this_frame, void **this_cache)
 
static void mips_micro_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valuemips_micro_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
 
static int mips_micro_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
 
static CORE_ADDR mips_micro_frame_base_address (struct frame_info *this_frame, void **this_cache)
 
static const struct frame_basemips_micro_frame_base_sniffer (struct frame_info *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, struct frame_info *this_frame, struct mips_frame_cache *this_cache)
 
static struct mips_frame_cachemips_insn32_frame_cache (struct frame_info *this_frame, void **this_cache)
 
static void mips_insn32_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valuemips_insn32_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
 
static int mips_insn32_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
 
static CORE_ADDR mips_insn32_frame_base_address (struct frame_info *this_frame, void **this_cache)
 
static const struct frame_basemips_insn32_frame_base_sniffer (struct frame_info *this_frame)
 
static struct trad_frame_cachemips_stub_frame_cache (struct frame_info *this_frame, void **this_cache)
 
static void mips_stub_frame_this_id (struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
 
static struct valuemips_stub_frame_prev_register (struct frame_info *this_frame, void **this_cache, int regnum)
 
static int mips_stub_frame_sniffer (const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
 
static CORE_ADDR mips_stub_frame_base_address (struct frame_info *this_frame, void **this_cache)
 
static const struct frame_basemips_stub_frame_base_sniffer (struct frame_info *this_frame)
 
static CORE_ADDR mips_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr)
 
static std::vector< CORE_ADDRmips_deal_with_atomic_sequence (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static std::vector< CORE_ADDRmicromips_deal_with_atomic_sequence (struct gdbarch *gdbarch, CORE_ADDR pc)
 
static std::vector< CORE_ADDRdeal_with_atomic_sequence (struct gdbarch *gdbarch, CORE_ADDR pc)
 
std::vector< CORE_ADDRmips_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, int struct_return, 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, int struct_return, 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, int struct_return, 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, int struct_return, 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 (struct frame_info *frame, int regno, gdb_byte *rare_buffer)
 
static void mips_read_fp_register_double (struct frame_info *frame, int regno, gdb_byte *rare_buffer)
 
static void mips_print_fp_register (struct ui_file *file, struct frame_info *frame, int regnum)
 
static void mips_print_register (struct ui_file *file, struct frame_info *frame, int regnum)
 
static void print_fpu_flags (struct ui_file *file, int flags)
 
static int print_fp_register_row (struct ui_file *file, struct frame_info *frame, int regnum)
 
static int print_gp_register_row (struct ui_file *file, struct frame_info *frame, int start_regnum)
 
static void mips_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum, int all)
 
static int mips_single_step_through_delay (struct gdbarch *gdbarch, struct frame_info *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_mips_command (const char *args, int from_tty)
 
static void set_mips_command (const char *args, int from_tty)
 
static void show_mipsfpu_command (const char *args, int from_tty)
 
static void set_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 gdb_print_insn_mips_n32 (bfd_vma memaddr, struct disassemble_info *info)
 
static int gdb_print_insn_mips_n64 (bfd_vma memaddr, struct disassemble_info *info)
 
static int mips_breakpoint_kind_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr)
 
static const gdb_bytemips_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 (struct frame_info *frame, CORE_ADDR pc)
 
static CORE_ADDR mips_skip_mips16_trampoline_code (struct frame_info *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 (struct frame_info *frame, CORE_ADDR pc)
 
static CORE_ADDR mips_skip_trampoline_code (struct frame_info *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 (struct frame_info *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 (void)
 

Variables

static const struct objfile_data * mips_pdr_data
 
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 struct cmd_list_elementsetmipscmdlist = NULL
 
static struct cmd_list_elementshowmipscmdlist = NULL
 
static const char * mips_generic_reg_names [NUM_MIPS_PROCESSOR_REGS]
 
static const char * mips_tx39_reg_names [NUM_MIPS_PROCESSOR_REGS]
 
static const char * 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 int mips64_transfers_32bit_regs_p = 0
 
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 1492 of file mips-tdep.c.

Referenced by micromips_relative_offset10().

◆ b0s11_op

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

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

Referenced by micromips_scan_prologue().

◆ b0s12_imm

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

Definition at line 1506 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 1508 of file mips-tdep.c.

Referenced by micromips_next_pc().

◆ b0s4_imm

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

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

Referenced by micromips_scan_prologue().

◆ b0s5_imm

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

Definition at line 1489 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 1491 of file mips-tdep.c.

Referenced by micromips_relative_offset7().

◆ b11s5_reg

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

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

Referenced by micromips_scan_prologue().

◆ b12s4_op

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

Definition at line 1511 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 1493 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 1495 of file mips-tdep.c.

Referenced by micromips_bc1_pc().

◆ b4s2_regl

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

Definition at line 1496 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 1499 of file mips-tdep.c.

Referenced by micromips_scan_prologue().

◆ b7s3_reg

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

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

Referenced by micromips_next_pc().

◆ itype_immediate

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

Definition at line 1471 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 1473 of file mips-tdep.c.

◆ jtype_target

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

Definition at line 1474 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 3877 of file mips-tdep.c.

Referenced by mips_deal_with_atomic_sequence().

◆ LLD_OPCODE

#define LLD_OPCODE   0x34

Definition at line 3878 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 275 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 1467 of file mips-tdep.c.

◆ MIPS_DEFAULT_FPU_TYPE

#define MIPS_DEFAULT_FPU_TYPE   MIPS_FPU_DOUBLE

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

Referenced by mips_dump_tdep().

◆ MIPS_EABI

#define MIPS_EABI (   gdbarch)
Value:
struct gdbarch_tdep * gdbarch_tdep(struct gdbarch *gdbarch)
Definition: gdbarch.c:1491
enum mips_abi mips_abi
Definition: mips-tdep.h:92

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

Referenced by fp_register_arg_p(), and mips_dump_tdep().

◆ MIPS_FPU_TYPE

#define MIPS_FPU_TYPE (   gdbarch)    (gdbarch_tdep (gdbarch)->mips_fpu_type)

◆ MIPS_LAST_ARG_REGNUM

#define MIPS_LAST_ARG_REGNUM (   gdbarch)    (gdbarch_tdep (gdbarch)->mips_last_arg_regnum)

◆ MIPS_LAST_FP_ARG_REGNUM

#define MIPS_LAST_FP_ARG_REGNUM (   gdbarch)    (gdbarch_tdep (gdbarch)->mips_last_fp_arg_regnum)

◆ PROPERTY_GP32

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

Definition at line 211 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 212 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 1476 of file mips-tdep.c.

◆ rtype_rd

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

Definition at line 1479 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 1477 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 1478 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 1480 of file mips-tdep.c.

◆ SC_OPCODE

#define SC_OPCODE   0x38

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

Referenced by mips_deal_with_atomic_sequence().

◆ SCD_OPCODE

#define SCD_OPCODE   0x3c

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

Referenced by mips_deal_with_atomic_sequence().

◆ ST0_FR

#define ST0_FR   (1 << 26)

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

Referenced by mips2_fp_compat().

◆ VM_MIN_ADDRESS

#define VM_MIN_ADDRESS   (CORE_ADDR)0x400000

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

Referenced by gnu_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 87 of file mips-tdep.c.

◆ anonymous enum

anonymous enum
Enumerator
MIPS32_REGSIZE 
MIPS64_REGSIZE 

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

◆ anonymous enum

anonymous enum
Enumerator
NUM_MIPS_PROCESSOR_REGS 

Definition at line 568 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 2074 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 114 of file mips-tdep.c.

◆ mips_fval_reg

Enumerator
mips_fval_fpr 
mips_fval_gpr 
mips_fval_both 

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

Function Documentation

◆ _initialize_mips_tdep()

void _initialize_mips_tdep ( void  )

◆ add_offset_16()

static CORE_ADDR add_offset_16 ( CORE_ADDR  pc,
int  offset 
)
static

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

References offset.

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 2113 of file mips-tdep.c.

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

◆ gdb_print_insn_mips_n32()

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

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

References gdb_print_insn_mips().

Referenced by mips_gdbarch_init().

◆ gdb_print_insn_mips_n64()

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

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

References gdb_print_insn_mips().

Referenced by mips_gdbarch_init().

◆ global_mips_abi()

static enum mips_abi global_mips_abi ( void  )
static

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

References _, internal_error(), 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 8035 of file mips-tdep.c.

References _, internal_error(), 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 323 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 347 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 315 of file mips-tdep.c.

References gdbarch_tdep(), ISA_MICROMIPS, and gdbarch_tdep::mips_isa.

Referenced by is_micromips_addr().

◆ is_mips16_addr()

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

Definition at line 339 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 307 of file mips-tdep.c.

References gdbarch_tdep(), ISA_MIPS16, and gdbarch_tdep::mips_isa.

Referenced by is_mips16_addr().

◆ is_mips_addr()

static int is_mips_addr ( CORE_ADDR  addr)
static

Definition at line 331 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 1577 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 1589 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 7189 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 2382 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

◆ micromips_relative_offset10()

static LONGEST micromips_relative_offset10 ( ULONGEST  insn)
static

Definition at line 1814 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 1823 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 1805 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,
struct frame_info 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 2437 of file mips-tdep.c.

References offset.

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 7276 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 2361 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 2332 of file mips-tdep.c.

References regcache::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,
struct frame_info 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 ( struct frame_info 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 1539 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,
struct frame_info 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 255 of file mips-tdep.c.

References gdbarch_tdep(), and gdbarch_tdep::mips_abi.

Referenced by mips_gdbarch_init(), mips_register_name(), and show_mips_abi().

◆ 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 8826 of file mips-tdep.c.

References gdbarch_info_init(), and 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 4175 of file mips-tdep.c.

References gdb_assert, 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 3844 of file mips-tdep.c.

References gdbarch_tdep(), and 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 1310 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 799 of file mips-tdep.c.

References ax_reg_mask(), gdb_assert, 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,
struct frame_info 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_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,
int  struct_return,
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 8004 of file mips-tdep.c.

References _, name, startswith(), and warning().

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 8890 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 4422 of file mips-tdep.c.

References align_down().

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 8071 of file mips-tdep.c.

References _, gdbarch_info::abfd, address_to_signed_pointer(), mips_regnum::badvaddr, gdbarch_info::bfd_arch_info, mips_regnum::cause, core_addr_lessthan(), gdbarch_tdep::default_mask_address_p, mips_regnum::dspacc, mips_regnum::dspctl, dwarf2_append_unwinders(), dwarf2_frame_base_sniffer(), gdbarch_tdep::elf_flags, floatformats_ibm_long_double, gdbarch_tdep::found_abi, mips_regnum::fp0, mips_regnum::fp_control_status, mips_regnum::fp_implementation_revision, fprintf_unfiltered(), frame_base_append_sniffer(), frame_unwind_append_unwinder(), GDB_OSABI_LINUX, gdb_print_insn_mips(), gdb_print_insn_mips_n32(), gdb_print_insn_mips_n64(), gdb_stdlog, gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_debug, gdbarch_init_osabi(), gdbarch_list_lookup_by_info(), gdbarch_num_regs(), GDBARCH_OBSTACK_ZALLOC, gdbarch_tdep(), global_mips_abi(), global_mips_compression(), mips_regnum::hi, internal_error(), ISA_MICROMIPS, ISA_MIPS16, mips_regnum::lo, gdbarch_tdep::mips64_transfers_32bit_regs_p, mips64_transfers_32bit_regs_p, MIPS_A0_REGNUM, gdbarch_tdep::mips_abi, mips_abi(), 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_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, gdbarch_tdep::mips_fpu_type, mips_fpu_type, MIPS_FPU_TYPE, mips_fpu_type_auto, mips_frame_align(), mips_generic_reg_names, 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(), gdbarch_tdep::mips_isa, gdbarch_tdep::mips_last_arg_regnum, MIPS_LAST_EMBED_REGNUM, 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(), 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, gdbarch_list::next, gdbarch_tdep::num_regs, ON_STACK, gdbarch_info::osabi, mips_regnum::pc, PROPERTY_GP32, PROPERTY_GP64, gdbarch_tdep::register_size, gdbarch_tdep::register_size_valid_p, regnum, 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_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_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(), gdbarch_info::target_desc, tdesc_data, gdbarch_info::tdesc_data, tdesc_data_alloc(), tdesc_data_cleanup(), tdesc_find_feature(), tdesc_has_registers(), tdesc_numbered_register(), tdesc_property(), tdesc_use_registers(), user_reg_add(), value_of_mips_user_reg(), and XCNEW.

Referenced by _initialize_mips_tdep().

◆ mips_get_mips16_fn_stub_pc()

static CORE_ADDR mips_get_mips16_fn_stub_pc ( struct frame_info 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 ( struct frame_info this_frame,
void **  this_cache 
)
static

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

References mips_frame_cache::base, and mips_insn16_frame_cache().

◆ mips_insn16_frame_base_sniffer()

static const struct frame_base* mips_insn16_frame_base_sniffer ( struct frame_info this_frame)
static

Definition at line 2905 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 ( struct frame_info this_frame,
void **  this_cache 
)
static

◆ mips_insn16_frame_prev_register()

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

◆ mips_insn16_frame_sniffer()

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

Definition at line 2867 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 ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
)
static

◆ mips_insn32_frame_base_address()

static CORE_ADDR mips_insn32_frame_base_address ( struct frame_info this_frame,
void **  this_cache 
)
static

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

References mips_frame_cache::base, and mips_insn32_frame_cache().

◆ mips_insn32_frame_base_sniffer()

static const struct frame_base* mips_insn32_frame_base_sniffer ( struct frame_info this_frame)
static

Definition at line 3717 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 ( struct frame_info this_frame,
void **  this_cache 
)
static

◆ mips_insn32_frame_prev_register()

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

◆ mips_insn32_frame_sniffer()

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

Definition at line 3680 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 ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
)
static

◆ 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 7955 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 7497 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 7475 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_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 ( struct gdbarch_tdep tdep)
static

◆ mips_micro_frame_base_address()

static CORE_ADDR mips_micro_frame_base_address ( struct frame_info this_frame,
void **  this_cache 
)
static

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

References mips_frame_cache::base, and mips_micro_frame_cache().

◆ mips_micro_frame_base_sniffer()

static const struct frame_base* mips_micro_frame_base_sniffer ( struct frame_info this_frame)
static

◆ mips_micro_frame_cache()

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

◆ mips_micro_frame_prev_register()

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

◆ mips_micro_frame_sniffer()

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

Definition at line 3302 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 ( struct frame_info this_frame,
void **  this_cache,
struct frame_id this_id 
)
static

◆ 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,
int  struct_return,
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,
int  struct_return,
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,
int  struct_return,
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,
struct frame_info frame,
const char *  args 
)
static

◆ mips_print_fp_register()

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

◆ mips_print_register()

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

◆ mips_print_registers_info()

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

◆ mips_pseudo_register_read()

static enum register_status mips_pseudo_register_read ( struct gdbarch gdbarch,
struct 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 ( struct frame_info frame,
int  regno,
gdb_byte rare_buffer 
)
static

◆ mips_read_fp_register_single()

static void mips_read_fp_register_single ( struct frame_info frame,
int  regno,
gdb_byte rare_buffer 
)
static

◆ mips_read_pc()

static CORE_ADDR mips_read_pc ( struct regcache regcache)
static

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

References regcache::arch(), gdbarch_pc_regnum(), regcache_cooked_read_signed(), and regnum.

Referenced by mips_gdbarch_init().

◆ mips_register_g_packet_guesses()

static void mips_register_g_packet_guesses ( struct gdbarch gdbarch)
static

Definition at line 8047 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,
struct reggroup reggroup 
)
static

◆ mips_register_sim_regno()

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

◆ mips_register_to_value()

static int mips_register_to_value ( struct frame_info 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 7305 of file mips-tdep.c.

References CORE_ADDR_MAX.

Referenced by mips_adjust_breakpoint_address().

◆ mips_single_step_through_delay()

static int mips_single_step_through_delay ( struct gdbarch gdbarch,
struct frame_info frame 
)
static

◆ mips_skip_mips16_trampoline_code()

static CORE_ADDR mips_skip_mips16_trampoline_code ( struct frame_info frame,
CORE_ADDR  pc 
)
static

◆ mips_skip_pic_trampoline_code()

static CORE_ADDR mips_skip_pic_trampoline_code ( struct frame_info 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 ( struct frame_info 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 ( struct frame_info this_frame,
void **  this_cache 
)
static

◆ mips_stub_frame_base_sniffer()

static const struct frame_base* mips_stub_frame_base_sniffer ( struct frame_info this_frame)
static

Definition at line 3833 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 ( struct frame_info this_frame,
void **  this_cache 
)
static

◆ mips_stub_frame_prev_register()

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

◆ mips_stub_frame_sniffer()

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

◆ mips_stub_frame_this_id()

static void mips_stub_frame_this_id ( struct frame_info 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,
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 372 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,
struct frame_info next_frame 
)
static

◆ mips_unwind_sp()

static CORE_ADDR mips_unwind_sp ( struct gdbarch gdbarch,
struct frame_info next_frame 
)
static

Definition at line 1397 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 ( struct frame_info 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 7968 of file mips-tdep.c.

References MIPS_SP_REGNUM, and offset.

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 437 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 429 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,
struct frame_info frame,
int  regnum 
)
static

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

References fprintf_filtered(), 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 6352 of file mips-tdep.c.

References flags, fputc_filtered(), and fputs_filtered().

Referenced by mips_print_float_info().

◆ print_gp_register_row()

static int print_gp_register_row ( struct ui_file file,
struct frame_info 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 6969 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

◆ set_mips_command()

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

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

References all_commands, gdb_stdout, help_list(), printf_unfiltered(), and setmipscmdlist.

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 6960 of file mips-tdep.c.

References mips_fpu_type_auto.

Referenced by _initialize_mips_tdep().

◆ set_mipsfpu_command()

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

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

References printf_unfiltered(), and show_mipsfpu_command().

Referenced by _initialize_mips_tdep().

◆ set_mipsfpu_double_command()

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

◆ set_mipsfpu_none_command()

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

◆ set_mipsfpu_single_command()

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

◆ 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_command()

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

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

References all_commands, gdb_stdout, help_list(), and showmipscmdlist.

Referenced by _initialize_mips_tdep().

◆ 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 8880 of file mips-tdep.c.

References _, and fprintf_filtered().

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 ( struct frame_info frame,
const void *  baton 
)
static

Definition at line 8064 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 847 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

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

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

◆ mips64_transfers_32bit_regs_p

int mips64_transfers_32bit_regs_p = 0
static

◆ mips_abi_string

const char* mips_abi_string
static

Definition at line 99 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 101 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 133 of file mips-tdep.c.

◆ mips_compression_mips16

const char mips_compression_mips16[] = "mips16"
static

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

◆ mips_compression_string

const char* mips_compression_string = mips_compression_mips16
static

Definition at line 141 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_mips16[]
Definition: mips-tdep.c:132
static const char mips_compression_micromips[]
Definition: mips-tdep.c:133

Definition at line 134 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_fpu_type

Definition at line 205 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* 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 573 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:2877
static CORE_ADDR mips_insn16_frame_base_address(struct frame_info *this_frame, void **this_cache)
Definition: mips-tdep.c:2888

Definition at line 2896 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:
=
{
NULL,
}
static void mips_insn16_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: mips-tdep.c:2846
static int mips_insn16_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
Definition: mips-tdep.c:2867
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:184
static struct value * mips_insn16_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: mips-tdep.c:2858

Definition at line 2877 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 CORE_ADDR mips_insn32_frame_base_address(struct frame_info *this_frame, void **this_cache)
Definition: mips-tdep.c:3700
static const struct frame_unwind mips_insn32_frame_unwind
Definition: mips-tdep.c:3689

Definition at line 3708 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:
=
{
NULL,
}
static struct value * mips_insn32_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: mips-tdep.c:3671
static void mips_insn32_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: mips-tdep.c:3659
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:184
static int mips_insn32_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
Definition: mips-tdep.c:3680

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

Referenced by mips_gdbarch_init().

◆ mips_linux_reg_names

const char* 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 596 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 CORE_ADDR mips_micro_frame_base_address(struct frame_info *this_frame, void **this_cache)
Definition: mips-tdep.c:3324
static const struct frame_unwind mips_micro_frame_unwind
Definition: mips-tdep.c:3313

Definition at line 3332 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:
=
{
NULL,
}
static struct value * mips_micro_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: mips-tdep.c:3293
static int mips_micro_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
Definition: mips-tdep.c:3302
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:184
static void mips_micro_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: mips-tdep.c:3281

Definition at line 3313 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 159 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 192 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 151 of file mips-tdep.c.

Referenced by mips_gdbarch_init().

◆ mips_pdr_data

const struct objfile_data* mips_pdr_data
static

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

Referenced by _initialize_mips_tdep().

◆ mips_reg3_to_reg

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

Definition at line 841 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 }
}
#define R(n)

Definition at line 167 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 1327 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 1328 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 1329 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 1326 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 1333 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(struct frame_info *this_frame, void **this_cache)
Definition: mips-tdep.c:3816
static const struct frame_unwind mips_stub_frame_unwind
Definition: mips-tdep.c:3805

Definition at line 3824 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:
=
{
NULL,
}
static struct value * mips_stub_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
Definition: mips-tdep.c:3771
static void mips_stub_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
Definition: mips-tdep.c:3762
static int mips_stub_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
Definition: mips-tdep.c:3780
enum unwind_stop_reason default_frame_unwind_stop_reason(struct frame_info *this_frame, void **this_cache)
Definition: frame-unwind.c:184

Definition at line 3805 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* 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 584 of file mips-tdep.c.

Referenced by mips_gdbarch_init().

◆ setmipscmdlist

struct cmd_list_element* setmipscmdlist = NULL
static

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

Referenced by _initialize_mips_tdep(), and set_mips_command().

◆ showmipscmdlist

struct cmd_list_element* showmipscmdlist = NULL
static

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

Referenced by _initialize_mips_tdep(), and show_mips_command().