aboutsummaryrefslogtreecommitdiff
path: root/source/Utility/ARM64_DWARF_Registers.h
blob: 832f25d45b5db34efa772341e206f84f6264be7f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
//===-- ARM64_DWARF_Registers.h ---------------------------------*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

#ifndef utility_ARM64_DWARF_Registers_h_
#define utility_ARM64_DWARF_Registers_h_

#include "lldb/lldb-private.h"

namespace arm64_dwarf {
    
enum
{
    x0 = 0,
    x1,
    x2,
    x3,
    x4,
    x5,
    x6,
    x7,
    x8,
    x9,
    x10,
    x11,
    x12,
    x13,
    x14,
    x15,
    x16,
    x17,
    x18,
    x19,
    x20,
    x21,
    x22,
    x23,
    x24,
    x25,
    x26,
    x27,
    x28,
    x29       = 29,   fp = x29,
    x30       = 30,   lr = x30,
    x31       = 31,   sp = x31,
    pc        = 32,
    cpsr  = 33,
    // 34-63 reserved

    // V0-V31 (128 bit vector registers)
    v0        = 64,
    v1,
    v2,
    v3,
    v4,
    v5,
    v6,
    v7,
    v8,
    v9,
    v10,
    v11,
    v12,
    v13,
    v14,
    v15,
    v16,
    v17,
    v18,
    v19,
    v20,
    v21,
    v22,
    v23,
    v24,
    v25,
    v26,
    v27,
    v28,
    v29,
    v30,
    v31

    // 96-127 reserved
};

const char *
GetRegisterName (unsigned reg_num, bool altnernate_name);
    
bool
GetRegisterInfo (unsigned reg_num, 
                 lldb_private::RegisterInfo &reg_info);

}   // namespace arm64_dwarf

#endif // utility_ARM64_DWARF_Registers_h_