59 lines
1.4 KiB
C++
59 lines
1.4 KiB
C++
|
#ifndef DWARFPP_REGS_HPP_
|
||
|
#define DWARFPP_REGS_HPP_
|
||
|
|
||
|
#include "expr.hpp"
|
||
|
|
||
|
namespace dwarf
|
||
|
{
|
||
|
namespace lib
|
||
|
{
|
||
|
// DWARF x86 register numbers pilfered from libunwind/src/x86/unwind_i.h
|
||
|
enum dwarf_regs_x86
|
||
|
{
|
||
|
DWARF_X86_EAX = 0,
|
||
|
DWARF_X86_ECX = 1,
|
||
|
DWARF_X86_EDX = 2,
|
||
|
DWARF_X86_EBX = 3,
|
||
|
DWARF_X86_ESP = 4,
|
||
|
DWARF_X86_EBP = 5,
|
||
|
DWARF_X86_ESI = 6,
|
||
|
DWARF_X86_EDI = 7,
|
||
|
DWARF_X86_EIP = 8,
|
||
|
DWARF_X86_EFLAGS = 9,
|
||
|
DWARF_X86_TRAPNO = 10,
|
||
|
DWARF_X86_ST0 = 11
|
||
|
};
|
||
|
extern const char *dwarf_regnames_x86[];
|
||
|
|
||
|
// similar for x86-64
|
||
|
enum dwarf_regs_x86_64
|
||
|
{
|
||
|
DWARF_X86_64_RAX = 0,
|
||
|
DWARF_X86_64_RDX = 1,
|
||
|
DWARF_X86_64_RCX = 2,
|
||
|
DWARF_X86_64_RBX = 3,
|
||
|
DWARF_X86_64_RSI = 4,
|
||
|
DWARF_X86_64_RDI = 5,
|
||
|
DWARF_X86_64_RBP = 6,
|
||
|
DWARF_X86_64_RSP = 7,
|
||
|
DWARF_X86_64_R8 = 8,
|
||
|
DWARF_X86_64_R9 = 9,
|
||
|
DWARF_X86_64_R10 = 10,
|
||
|
DWARF_X86_64_R11 = 11,
|
||
|
DWARF_X86_64_R12 = 12,
|
||
|
DWARF_X86_64_R13 = 13,
|
||
|
DWARF_X86_64_R14 = 14,
|
||
|
DWARF_X86_64_R15 = 15,
|
||
|
DWARF_X86_64_RIP = 16
|
||
|
};
|
||
|
extern const char *dwarf_regnames_x86_64[];
|
||
|
|
||
|
const char **dwarf_regnames_for_elf_machine(int e_machine);
|
||
|
|
||
|
dwarf::encap::loc_expr dwarf_stack_pointer_expr_for_elf_machine(int e_machine,
|
||
|
dwarf::lib::Dwarf_Addr lopc, dwarf::lib::Dwarf_Addr hipc);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endif
|