/* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef ART_RUNTIME_ARCH_X86_64_REGISTERS_X86_64_H_ #define ART_RUNTIME_ARCH_X86_64_REGISTERS_X86_64_H_ #include <iosfwd> #include "base/logging.h" #include "base/macros.h" #include "globals.h" namespace art { namespace x86_64 { enum Register { RAX = 0, RCX = 1, RDX = 2, RBX = 3, RSP = 4, RBP = 5, RSI = 6, RDI = 7, R8 = 8, R9 = 9, R10 = 10, R11 = 11, R12 = 12, R13 = 13, R14 = 14, R15 = 15, kLastCpuRegister = 15, kNumberOfCpuRegisters = 16, kNoRegister = -1 // Signals an illegal register. }; std::ostream& operator<<(std::ostream& os, const Register& rhs); enum FloatRegister { XMM0 = 0, XMM1 = 1, XMM2 = 2, XMM3 = 3, XMM4 = 4, XMM5 = 5, XMM6 = 6, XMM7 = 7, XMM8 = 8, XMM9 = 9, XMM10 = 10, XMM11 = 11, XMM12 = 12, XMM13 = 13, XMM14 = 14, XMM15 = 15, kNumberOfFloatRegisters = 16 }; std::ostream& operator<<(std::ostream& os, const FloatRegister& rhs); } // namespace x86_64 } // namespace art #endif // ART_RUNTIME_ARCH_X86_64_REGISTERS_X86_64_H_