1166db04e259ca51838c311891598664deeed85adIan Rogers/* 2166db04e259ca51838c311891598664deeed85adIan Rogers * Copyright (C) 2009 The Android Open Source Project 3166db04e259ca51838c311891598664deeed85adIan Rogers * 4166db04e259ca51838c311891598664deeed85adIan Rogers * Licensed under the Apache License, Version 2.0 (the "License"); 5166db04e259ca51838c311891598664deeed85adIan Rogers * you may not use this file except in compliance with the License. 6166db04e259ca51838c311891598664deeed85adIan Rogers * You may obtain a copy of the License at 7166db04e259ca51838c311891598664deeed85adIan Rogers * 8166db04e259ca51838c311891598664deeed85adIan Rogers * http://www.apache.org/licenses/LICENSE-2.0 9166db04e259ca51838c311891598664deeed85adIan Rogers * 10166db04e259ca51838c311891598664deeed85adIan Rogers * Unless required by applicable law or agreed to in writing, software 11166db04e259ca51838c311891598664deeed85adIan Rogers * distributed under the License is distributed on an "AS IS" BASIS, 12166db04e259ca51838c311891598664deeed85adIan Rogers * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13166db04e259ca51838c311891598664deeed85adIan Rogers * See the License for the specific language governing permissions and 14166db04e259ca51838c311891598664deeed85adIan Rogers * limitations under the License. 15166db04e259ca51838c311891598664deeed85adIan Rogers */ 16166db04e259ca51838c311891598664deeed85adIan Rogers 17166db04e259ca51838c311891598664deeed85adIan Rogers#ifndef ART_RUNTIME_ARCH_ARM_REGISTERS_ARM_H_ 18166db04e259ca51838c311891598664deeed85adIan Rogers#define ART_RUNTIME_ARCH_ARM_REGISTERS_ARM_H_ 19166db04e259ca51838c311891598664deeed85adIan Rogers 20166db04e259ca51838c311891598664deeed85adIan Rogers#include <iosfwd> 21166db04e259ca51838c311891598664deeed85adIan Rogers 22166db04e259ca51838c311891598664deeed85adIan Rogersnamespace art { 23166db04e259ca51838c311891598664deeed85adIan Rogersnamespace arm { 24166db04e259ca51838c311891598664deeed85adIan Rogers 25166db04e259ca51838c311891598664deeed85adIan Rogers// Values for registers. 26166db04e259ca51838c311891598664deeed85adIan Rogersenum Register { 27166db04e259ca51838c311891598664deeed85adIan Rogers R0 = 0, 28166db04e259ca51838c311891598664deeed85adIan Rogers R1 = 1, 29166db04e259ca51838c311891598664deeed85adIan Rogers R2 = 2, 30166db04e259ca51838c311891598664deeed85adIan Rogers R3 = 3, 31166db04e259ca51838c311891598664deeed85adIan Rogers R4 = 4, 32166db04e259ca51838c311891598664deeed85adIan Rogers R5 = 5, 33166db04e259ca51838c311891598664deeed85adIan Rogers R6 = 6, 34166db04e259ca51838c311891598664deeed85adIan Rogers R7 = 7, 35166db04e259ca51838c311891598664deeed85adIan Rogers R8 = 8, 36166db04e259ca51838c311891598664deeed85adIan Rogers R9 = 9, 37166db04e259ca51838c311891598664deeed85adIan Rogers R10 = 10, 38166db04e259ca51838c311891598664deeed85adIan Rogers R11 = 11, 39166db04e259ca51838c311891598664deeed85adIan Rogers R12 = 12, 40166db04e259ca51838c311891598664deeed85adIan Rogers R13 = 13, 41166db04e259ca51838c311891598664deeed85adIan Rogers R14 = 14, 42166db04e259ca51838c311891598664deeed85adIan Rogers R15 = 15, 43166db04e259ca51838c311891598664deeed85adIan Rogers TR = 9, // thread register 44166db04e259ca51838c311891598664deeed85adIan Rogers FP = 11, 45166db04e259ca51838c311891598664deeed85adIan Rogers IP = 12, 46166db04e259ca51838c311891598664deeed85adIan Rogers SP = 13, 47166db04e259ca51838c311891598664deeed85adIan Rogers LR = 14, 48166db04e259ca51838c311891598664deeed85adIan Rogers PC = 15, 49166db04e259ca51838c311891598664deeed85adIan Rogers kNumberOfCoreRegisters = 16, 50166db04e259ca51838c311891598664deeed85adIan Rogers kNoRegister = -1, 51166db04e259ca51838c311891598664deeed85adIan Rogers}; 52166db04e259ca51838c311891598664deeed85adIan Rogersstd::ostream& operator<<(std::ostream& os, const Register& rhs); 53166db04e259ca51838c311891598664deeed85adIan Rogers 54166db04e259ca51838c311891598664deeed85adIan Rogers 55166db04e259ca51838c311891598664deeed85adIan Rogers// Values for single-precision floating point registers. 56166db04e259ca51838c311891598664deeed85adIan Rogersenum SRegister { 57166db04e259ca51838c311891598664deeed85adIan Rogers S0 = 0, 58166db04e259ca51838c311891598664deeed85adIan Rogers S1 = 1, 59166db04e259ca51838c311891598664deeed85adIan Rogers S2 = 2, 60166db04e259ca51838c311891598664deeed85adIan Rogers S3 = 3, 61166db04e259ca51838c311891598664deeed85adIan Rogers S4 = 4, 62166db04e259ca51838c311891598664deeed85adIan Rogers S5 = 5, 63166db04e259ca51838c311891598664deeed85adIan Rogers S6 = 6, 64166db04e259ca51838c311891598664deeed85adIan Rogers S7 = 7, 65166db04e259ca51838c311891598664deeed85adIan Rogers S8 = 8, 66166db04e259ca51838c311891598664deeed85adIan Rogers S9 = 9, 67166db04e259ca51838c311891598664deeed85adIan Rogers S10 = 10, 68166db04e259ca51838c311891598664deeed85adIan Rogers S11 = 11, 69166db04e259ca51838c311891598664deeed85adIan Rogers S12 = 12, 70166db04e259ca51838c311891598664deeed85adIan Rogers S13 = 13, 71166db04e259ca51838c311891598664deeed85adIan Rogers S14 = 14, 72166db04e259ca51838c311891598664deeed85adIan Rogers S15 = 15, 73166db04e259ca51838c311891598664deeed85adIan Rogers S16 = 16, 74166db04e259ca51838c311891598664deeed85adIan Rogers S17 = 17, 75166db04e259ca51838c311891598664deeed85adIan Rogers S18 = 18, 76166db04e259ca51838c311891598664deeed85adIan Rogers S19 = 19, 77166db04e259ca51838c311891598664deeed85adIan Rogers S20 = 20, 78166db04e259ca51838c311891598664deeed85adIan Rogers S21 = 21, 79166db04e259ca51838c311891598664deeed85adIan Rogers S22 = 22, 80166db04e259ca51838c311891598664deeed85adIan Rogers S23 = 23, 81166db04e259ca51838c311891598664deeed85adIan Rogers S24 = 24, 82166db04e259ca51838c311891598664deeed85adIan Rogers S25 = 25, 83166db04e259ca51838c311891598664deeed85adIan Rogers S26 = 26, 84166db04e259ca51838c311891598664deeed85adIan Rogers S27 = 27, 85166db04e259ca51838c311891598664deeed85adIan Rogers S28 = 28, 86166db04e259ca51838c311891598664deeed85adIan Rogers S29 = 29, 87166db04e259ca51838c311891598664deeed85adIan Rogers S30 = 30, 88166db04e259ca51838c311891598664deeed85adIan Rogers S31 = 31, 89166db04e259ca51838c311891598664deeed85adIan Rogers kNumberOfSRegisters = 32, 90166db04e259ca51838c311891598664deeed85adIan Rogers kNoSRegister = -1, 91166db04e259ca51838c311891598664deeed85adIan Rogers}; 92166db04e259ca51838c311891598664deeed85adIan Rogersstd::ostream& operator<<(std::ostream& os, const SRegister& rhs); 93166db04e259ca51838c311891598664deeed85adIan Rogers 94166db04e259ca51838c311891598664deeed85adIan Rogers} // namespace arm 95166db04e259ca51838c311891598664deeed85adIan Rogers} // namespace art 96166db04e259ca51838c311891598664deeed85adIan Rogers 97166db04e259ca51838c311891598664deeed85adIan Rogers#endif // ART_RUNTIME_ARCH_ARM_REGISTERS_ARM_H_ 98