GDB (API)
Defines | Enumerations | Functions | Variables
/home/stan/gdb/src/gdb/mips-tdep.c File Reference
#include "defs.h"
#include "gdb_string.h"
#include "gdb_assert.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 "frame-unwind.h"
#include "frame-base.h"
#include "trad-frame.h"
#include "infcall.h"
#include "floatformat.h"
#include "remote.h"
#include "target-descriptions.h"
#include "dwarf2-frame.h"
#include "user-regs.h"
#include "valprint.h"
#include "ax.h"

Go to the source code of this file.

Defines

#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 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  { 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

struct mips_regnummips_regnum (struct gdbarch *gdbarch)
enum mips_abi mips_abi (struct gdbarch *gdbarch)
int mips_isa_regsize (struct gdbarch *gdbarch)
unsigned int mips_abi_regsize (struct gdbarch *gdbarch)
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)
void mips_write_pc (struct regcache *regcache, CORE_ADDR pc)
int mips_software_single_step (struct frame_info *frame)
void deprecated_mips_set_processor_regs_hack (void)
void _initialize_mips_tdep (void)

Variables

struct register_alias mips_o32_aliases []
struct register_alias mips_n32_n64_aliases []
struct register_alias mips_register_aliases []
struct register_alias mips_numeric_register_aliases []
struct target_desc * mips_tdesc_gp32
struct target_desc * mips_tdesc_gp64
enum auto_boolean mask_address_var = AUTO_BOOLEAN_AUTO
initialize_file_ftype _initialize_mips_tdep

Define Documentation

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#define LL_OPCODE   0x30

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

#define LLD_OPCODE   0x34

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

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

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

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

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

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

#define MIPS_EABI (   gdbarch)
Value:

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

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

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

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

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

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

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

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

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

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

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

#define R (   n)    { "r" #n, n }
#define R (   n)    { #n, n }
#define rtype_funct (   x)    (x & 0x3f)

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

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

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

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

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

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

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

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

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

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

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

#define SC_OPCODE   0x38

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

#define SCD_OPCODE   0x3c

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

#define ST0_FR   (1 << 26)

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

#define VM_MIN_ADDRESS   (CORE_ADDR)0x400000

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


Enumeration Type Documentation

anonymous enum
Enumerator:
MIPS_FPU_SINGLE_REGSIZE 
MIPS_FPU_DOUBLE_REGSIZE 

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

anonymous enum
Enumerator:
MIPS32_REGSIZE 
MIPS64_REGSIZE 

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

anonymous enum
Enumerator:
NUM_MIPS_PROCESSOR_REGS 

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

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

Enumerator:
mips_fval_fpr 
mips_fval_gpr 
mips_fval_both 

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


Function Documentation

void _initialize_mips_tdep ( void  )

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

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

enum mips_abi mips_abi ( struct gdbarch *  gdbarch)

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

unsigned int mips_abi_regsize ( struct gdbarch *  gdbarch)

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

int mips_isa_regsize ( struct gdbarch *  gdbarch)

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

int mips_pc_is_micromips ( struct gdbarch *  gdbarch,
CORE_ADDR  memaddr 
)

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

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

int mips_pc_is_mips16 ( struct gdbarch *  gdbarch,
CORE_ADDR  memaddr 
)

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

struct mips_regnum* mips_regnum ( struct gdbarch *  gdbarch) [read]

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

int mips_software_single_step ( struct frame_info *  frame)

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

void mips_write_pc ( struct regcache *  regcache,
CORE_ADDR  pc 
)

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


Variable Documentation

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

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

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

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),

}

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

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

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

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 },

  
  { "bad", MIPS_EMBED_BADVADDR_REGNUM },

  
  { "fsr", MIPS_EMBED_FP0_REGNUM + 32 }
}

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

struct target_desc* mips_tdesc_gp32

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

struct target_desc* mips_tdesc_gp64

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

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines