124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- ARM_DWARF_Registers.h -----------------------------------*- C++ -*-===//
224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//                     The LLVM Compiler Infrastructure
424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// This file is distributed under the University of Illinois Open Source
624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// License. See LICENSE.TXT for details.
724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===//
924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#ifndef utility_ARM_DWARF_Registers_h_
1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define utility_ARM_DWARF_Registers_h_
1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
13c07d451bb046e47215bd73fda0235362cc6b1a47Greg Clayton#include "lldb/lldb-private.h"
14c07d451bb046e47215bd73fda0235362cc6b1a47Greg Clayton
1524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerenum
1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{
1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r0 = 0,
1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r1,
1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r2,
2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r3,
2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r4,
2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r5,
2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r6,
2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r7,
2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r8,
2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r9,
2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r10,
2824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r11,
2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r12,
3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_sp,
3124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_lr,
3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_pc,
3324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_cpsr,
3424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
3524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s0 = 64,
3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s1,
3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s2,
3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s3,
3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s4,
4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s5,
4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s6,
4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s7,
4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s8,
4424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s9,
4524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s10,
4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s11,
4724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s12,
4824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s13,
4924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s14,
5024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s15,
5124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s16,
5224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s17,
5324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s18,
5424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s19,
5524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s20,
5624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s21,
5724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s22,
5824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s23,
5924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s24,
6024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s25,
6124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s26,
6224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s27,
6324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s28,
6424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s29,
6524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s30,
6624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_s31,
6724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
6824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    // FPA Registers 0-7
6924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_f0 = 96,
7024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_f1,
7124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_f2,
7224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_f3,
7324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_f4,
7424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_f5,
7524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_f6,
7624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_f7,
7724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
78b649f7f34951e7495b33dbb4c2e240866941bb37Jason Molenda    // Intel wireless MMX general purpose registers 0 - 7
7924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wCGR0 = 104,
8024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wCGR1,
8124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wCGR2,
8224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wCGR3,
8324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wCGR4,
8424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wCGR5,
8524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wCGR6,
8624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wCGR7,
8724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
88b649f7f34951e7495b33dbb4c2e240866941bb37Jason Molenda    // XScale accumulator register 0 - 7 (they do overlap with wCGR0 - wCGR7)
8924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_ACC0 = 104,
9024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_ACC1,
9124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_ACC2,
9224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_ACC3,
9324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_ACC4,
9424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_ACC5,
9524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_ACC6,
9624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_ACC7,
9724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
98b649f7f34951e7495b33dbb4c2e240866941bb37Jason Molenda    // Intel wireless MMX data registers 0 - 15
9924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wR0 = 112,
10024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wR1,
10124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wR2,
10224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wR3,
10324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wR4,
10424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wR5,
10524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wR6,
10624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wR7,
10724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wR8,
10824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wR9,
10924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wR10,
11024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wR11,
11124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wR12,
11224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wR13,
11324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wR14,
11424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wR15,
11524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
11624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_spsr = 128,
11724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_spsr_fiq,
11824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_spsr_irq,
11924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_spsr_abt,
12024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_spsr_und,
12124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_spsr_svc,
12224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
12324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r8_usr = 144,
12424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r9_usr,
12524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r10_usr,
12624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r11_usr,
12724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r12_usr,
12824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r13_usr,
12924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r14_usr,
13024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r8_fiq,
13124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r9_fiq,
13224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r10_fiq,
13324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r11_fiq,
13424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r12_fiq,
13524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r13_fiq,
13624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r14_fiq,
13724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r13_irq,
13824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r14_irq,
13924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r13_abt,
14024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r14_abt,
14124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r13_und,
14224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r14_und,
14324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r13_svc,
14424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_r14_svc,
14524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
146b649f7f34951e7495b33dbb4c2e240866941bb37Jason Molenda    // Intel wireless MMX control register in co-processor 0 - 7
14724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wC0 = 192,
14824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wC1,
14924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wC2,
15024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wC3,
15124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wC4,
15224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wC5,
15324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wC6,
15424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_wC7,
15524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
15624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    // VFP-v3/Neon
15724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d0 = 256,
15824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d1,
15924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d2,
16024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d3,
16124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d4,
16224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d5,
16324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d6,
16424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d7,
16524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d8,
16624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d9,
16724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d10,
16824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d11,
16924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d12,
17024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d13,
17124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d14,
17224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d15,
17324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d16,
17424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d17,
17524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d18,
17624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d19,
17724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d20,
17824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d21,
17924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d22,
18024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d23,
18124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d24,
18224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d25,
18324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d26,
18424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d27,
18524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d28,
18624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d29,
18724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    dwarf_d30,
188402607fe513617c06282d4ae479522e244a53b71Johnny Chen    dwarf_d31,
189402607fe513617c06282d4ae479522e244a53b71Johnny Chen
190402607fe513617c06282d4ae479522e244a53b71Johnny Chen    // Neon quadword registers
191402607fe513617c06282d4ae479522e244a53b71Johnny Chen    dwarf_q0 = 288,
192402607fe513617c06282d4ae479522e244a53b71Johnny Chen    dwarf_q1,
193402607fe513617c06282d4ae479522e244a53b71Johnny Chen    dwarf_q2,
194402607fe513617c06282d4ae479522e244a53b71Johnny Chen    dwarf_q3,
195402607fe513617c06282d4ae479522e244a53b71Johnny Chen    dwarf_q4,
196402607fe513617c06282d4ae479522e244a53b71Johnny Chen    dwarf_q5,
197402607fe513617c06282d4ae479522e244a53b71Johnny Chen    dwarf_q6,
198402607fe513617c06282d4ae479522e244a53b71Johnny Chen    dwarf_q7,
199402607fe513617c06282d4ae479522e244a53b71Johnny Chen    dwarf_q8,
200402607fe513617c06282d4ae479522e244a53b71Johnny Chen    dwarf_q9,
201402607fe513617c06282d4ae479522e244a53b71Johnny Chen    dwarf_q10,
202402607fe513617c06282d4ae479522e244a53b71Johnny Chen    dwarf_q11,
203402607fe513617c06282d4ae479522e244a53b71Johnny Chen    dwarf_q12,
204402607fe513617c06282d4ae479522e244a53b71Johnny Chen    dwarf_q13,
205402607fe513617c06282d4ae479522e244a53b71Johnny Chen    dwarf_q14,
206402607fe513617c06282d4ae479522e244a53b71Johnny Chen    dwarf_q15
20724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner};
20824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
209888a7334344778d1a4edbd58b5852ae4d53ffed9Greg Claytonconst char *
210888a7334344778d1a4edbd58b5852ae4d53ffed9Greg ClaytonGetARMDWARFRegisterName (unsigned reg_num);
211c07d451bb046e47215bd73fda0235362cc6b1a47Greg Clayton
212c07d451bb046e47215bd73fda0235362cc6b1a47Greg Claytonbool
213c07d451bb046e47215bd73fda0235362cc6b1a47Greg ClaytonGetARMDWARFRegisterInfo (unsigned reg_num,
214c07d451bb046e47215bd73fda0235362cc6b1a47Greg Clayton                         lldb_private::RegisterInfo &reg_info);
215888a7334344778d1a4edbd58b5852ae4d53ffed9Greg Clayton
216c2f35353ca515f51c6301bcab61a4777ea740aa6Greg Clayton#endif // utility_ARM_DWARF_Registers_h_
21724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
218