MIPS 上的 DWARF 寄存器编号

问题描述 投票:0回答:1

请问 DWARF 寄存器号和 MIPS32 CPU 寄存器之间的规范映射是什么?前 32 个是通用寄存器,但除此之外(例如 lo/hi)呢?

非常欢迎提供权威文档的链接。 DWARF 本身并没有记录这种事情,它通常是 ABI 的一部分,但 ABI 手册似乎没有提到 DWARF。

mips mips32 dwarf
1个回答
0
投票

到目前为止我能找到的最好的就是 GDB 源代码中的

mips-tdep.h
。我不认为它涵盖了所有 MIPS 扩展,但浮点寄存器(与用户态程序调试相关)都在那里。枚举如下:

enum
{
  MIPS_ZERO_REGNUM = 0,     /* Read-only register, always 0.  */
  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.  */
  MIPS_EMBED_LO_REGNUM = 33,
  MIPS_EMBED_HI_REGNUM = 34,
  MIPS_EMBED_BADVADDR_REGNUM = 35,
  MIPS_EMBED_CAUSE_REGNUM = 36,
  MIPS_EMBED_PC_REGNUM = 37,
  MIPS_EMBED_FP0_REGNUM = 38,
  MIPS_UNUSED_REGNUM = 73,  /* Never used, FIXME.  */
  MIPS_FIRST_EMBED_REGNUM = 74, /* First CP0 register for embedded use.  */
  MIPS_PRID_REGNUM = 89,    /* Processor ID.  */
  MIPS_LAST_EMBED_REGNUM = 89   /* Last one.  */
};
© www.soinside.com 2019 - 2024. All rights reserved.