| Index: gdb/mips-tdep.h
|
| diff --git a/gdb/mips-tdep.h b/gdb/mips-tdep.h
|
| index d91a1d2a21c04f52d6e865167aabdce543faf81b..2e85895e5c1f5654a744637e2f1592838e131c32 100644
|
| --- a/gdb/mips-tdep.h
|
| +++ b/gdb/mips-tdep.h
|
| @@ -38,6 +38,14 @@ enum mips_abi
|
| /* Return the MIPS ABI associated with GDBARCH. */
|
| enum mips_abi mips_abi (struct gdbarch *gdbarch);
|
|
|
| +/* Base and compressed MIPS ISA variations. */
|
| +enum mips_isa
|
| + {
|
| + ISA_MIPS = -1, /* mips_compression_string depends on it. */
|
| + ISA_MIPS16,
|
| + ISA_MICROMIPS
|
| + };
|
| +
|
| /* Return the MIPS ISA's register size. Just a short cut to the BFD
|
| architecture's word size. */
|
| extern int mips_isa_regsize (struct gdbarch *gdbarch);
|
| @@ -53,6 +61,8 @@ struct mips_regnum
|
| int cause; /* Describes last exception. */
|
| int hi; /* Multiply/divide temp. */
|
| int lo; /* ... */
|
| + int dspacc; /* SmartMIPS/DSP accumulators. */
|
| + int dspctl; /* DSP control. */
|
| };
|
| extern const struct mips_regnum *mips_regnum (struct gdbarch *gdbarch);
|
|
|
| @@ -75,6 +85,7 @@ struct gdbarch_tdep
|
| /* mips options */
|
| enum mips_abi mips_abi;
|
| enum mips_abi found_abi;
|
| + enum mips_isa mips_isa;
|
| enum mips_fpu_type mips_fpu_type;
|
| int mips_last_arg_regnum;
|
| int mips_last_fp_arg_regnum;
|
| @@ -117,7 +128,9 @@ enum
|
| MIPS_AT_REGNUM = 1,
|
| MIPS_V0_REGNUM = 2, /* Function integer return value. */
|
| MIPS_A0_REGNUM = 4, /* Loc of first arg during a subr call. */
|
| + MIPS_S2_REGNUM = 18, /* Contains return address in MIPS16 thunks. */
|
| MIPS_T9_REGNUM = 25, /* Contains address of callee in PIC. */
|
| + MIPS_GP_REGNUM = 28,
|
| MIPS_SP_REGNUM = 29,
|
| MIPS_RA_REGNUM = 31,
|
| MIPS_PS_REGNUM = 32, /* Contains processor status. */
|
| @@ -148,13 +161,24 @@ enum
|
| /* Single step based on where the current instruction will take us. */
|
| extern int mips_software_single_step (struct frame_info *frame);
|
|
|
| +/* Tell if the program counter value in MEMADDR is in a standard
|
| + MIPS function. */
|
| +extern int mips_pc_is_mips (bfd_vma memaddr);
|
| +
|
| /* Tell if the program counter value in MEMADDR is in a MIPS16
|
| function. */
|
| -extern int mips_pc_is_mips16 (bfd_vma memaddr);
|
| +extern int mips_pc_is_mips16 (struct gdbarch *gdbarch, bfd_vma memaddr);
|
| +
|
| +/* Tell if the program counter value in MEMADDR is in a microMIPS
|
| + function. */
|
| +extern int mips_pc_is_micromips (struct gdbarch *gdbarch, bfd_vma memaddr);
|
|
|
| /* Return the currently configured (or set) saved register size. */
|
| extern unsigned int mips_abi_regsize (struct gdbarch *gdbarch);
|
|
|
| +/* Make PC the address of the next instruction to execute. */
|
| +extern void mips_write_pc (struct regcache *regcache, CORE_ADDR pc);
|
| +
|
| /* Target descriptions which only indicate the size of general
|
| registers. */
|
| extern struct target_desc *mips_tdesc_gp32;
|
|
|