请求提供DWARF寄存器编号与MIPS32 CPU寄存器的规范映射及权威文档
MIPS32 寄存器与DWARF编号的规范映射
通用寄存器(0-31)
DWARF的前32个寄存器编号直接对应MIPS32的32个通用寄存器,一一对应关系如下:
- DWARF 0 → MIPS $0(zero)
- DWARF 1 → MIPS $1(at)
- DWARF 2-3 → MIPS $2-$3(v0-v1,返回值寄存器)
- DWARF 4-7 → MIPS $4-$7(a0-a3,参数寄存器)
- DWARF 8-15 → MIPS $8-$15(t0-t7,临时寄存器)
- DWARF 16-23 → MIPS $16-$23(s0-s7,保存寄存器)
- DWARF 24-25 → MIPS $24-$25(t8-t9,临时寄存器)
- DWARF 26-27 → MIPS $26-$27(k0-k1,内核临时寄存器)
- DWARF 28 → MIPS $28(gp,全局指针)
- DWARF 29 → MIPS $29(sp,栈指针)
- DWARF 30 → MIPS $30(fp/s8,帧指针/保存寄存器)
- DWARF 31 → MIPS $31(ra,返回地址)
特殊寄存器(编号>31)
对于lo、hi这类特殊寄存器,DWARF编号的映射遵循MIPS调试规范:
- DWARF 32 → MIPS lo寄存器(乘法/除法结果低32位)
- DWARF 33 → MIPS hi寄存器(乘法/除法结果高32位)
- DWARF 34 → MIPS status寄存器(状态控制)
- DWARF 35 → MIPS badvaddr寄存器(错误地址)
- DWARF 36 → MIPS cause寄存器(异常原因)
- DWARF 37 → MIPS pc寄存器(程序计数器)
关于权威文档
这类映射属于MIPS ABI的调试扩展内容,定义在MIPS官方发布的DWARF调试规范补充说明中。基础ABI手册不会单独覆盖DWARF细节,但MIPS针对调试信息格式发布了专门的配套文档,明确了寄存器编号的对应规则。
内容的提问来源于stack exchange,提问作者Seva Alekseyev
相关产品推荐
相关产品推荐

