1/*
2 * Copyright (C) 2009 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef ART_RUNTIME_ARCH_ARM_REGISTERS_ARM_H_
18#define ART_RUNTIME_ARCH_ARM_REGISTERS_ARM_H_
19
20#include <iosfwd>
21
22namespace art {
23namespace arm {
24
25// Values for registers.
26enum Register {
27  R0  =  0,
28  R1  =  1,
29  R2  =  2,
30  R3  =  3,
31  R4  =  4,
32  R5  =  5,
33  R6  =  6,
34  R7  =  7,
35  R8  =  8,
36  R9  =  9,
37  R10 = 10,
38  R11 = 11,
39  R12 = 12,
40  R13 = 13,
41  R14 = 14,
42  R15 = 15,
43  TR  = 9,  // thread register
44  FP  = 11,
45  IP  = 12,
46  SP  = 13,
47  LR  = 14,
48  PC  = 15,
49  kNumberOfCoreRegisters = 16,
50  kNoRegister = -1,
51};
52std::ostream& operator<<(std::ostream& os, const Register& rhs);
53
54
55// Values for single-precision floating point registers.
56enum SRegister {
57  S0  =  0,
58  S1  =  1,
59  S2  =  2,
60  S3  =  3,
61  S4  =  4,
62  S5  =  5,
63  S6  =  6,
64  S7  =  7,
65  S8  =  8,
66  S9  =  9,
67  S10 = 10,
68  S11 = 11,
69  S12 = 12,
70  S13 = 13,
71  S14 = 14,
72  S15 = 15,
73  S16 = 16,
74  S17 = 17,
75  S18 = 18,
76  S19 = 19,
77  S20 = 20,
78  S21 = 21,
79  S22 = 22,
80  S23 = 23,
81  S24 = 24,
82  S25 = 25,
83  S26 = 26,
84  S27 = 27,
85  S28 = 28,
86  S29 = 29,
87  S30 = 30,
88  S31 = 31,
89  kNumberOfSRegisters = 32,
90  kNoSRegister = -1,
91};
92std::ostream& operator<<(std::ostream& os, const SRegister& rhs);
93
94}  // namespace arm
95}  // namespace art
96
97#endif  // ART_RUNTIME_ARCH_ARM_REGISTERS_ARM_H_
98