12faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes/* 22faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * Copyright (C) 2011 The Android Open Source Project 32faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * 42faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * Licensed under the Apache License, Version 2.0 (the "License"); 52faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * you may not use this file except in compliance with the License. 62faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * You may obtain a copy of the License at 72faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * 82faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 92faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * 102faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * Unless required by applicable law or agreed to in writing, software 112faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 122faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * See the License for the specific language governing permissions and 142faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * limitations under the License. 152faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes */ 16b033c75ebda80ac75f936366fe78d1edf5cec937Ian Rogers 17166db04e259ca51838c311891598664deeed85adIan Rogers#ifndef ART_RUNTIME_ARCH_X86_REGISTERS_X86_H_ 18166db04e259ca51838c311891598664deeed85adIan Rogers#define ART_RUNTIME_ARCH_X86_REGISTERS_X86_H_ 19c981ace51da03ca6a9cd100c2c4d6c9bf6100138Jesse Wilson 20166db04e259ca51838c311891598664deeed85adIan Rogers#include <iosfwd> 21166db04e259ca51838c311891598664deeed85adIan Rogers 22166db04e259ca51838c311891598664deeed85adIan Rogers#include "base/logging.h" 23166db04e259ca51838c311891598664deeed85adIan Rogers#include "base/macros.h" 24166db04e259ca51838c311891598664deeed85adIan Rogers#include "globals.h" 25c981ace51da03ca6a9cd100c2c4d6c9bf6100138Jesse Wilson 26b033c75ebda80ac75f936366fe78d1edf5cec937Ian Rogersnamespace art { 27166db04e259ca51838c311891598664deeed85adIan Rogersnamespace x86 { 28b033c75ebda80ac75f936366fe78d1edf5cec937Ian Rogers 29166db04e259ca51838c311891598664deeed85adIan Rogersenum Register { 30166db04e259ca51838c311891598664deeed85adIan Rogers EAX = 0, 31166db04e259ca51838c311891598664deeed85adIan Rogers ECX = 1, 32166db04e259ca51838c311891598664deeed85adIan Rogers EDX = 2, 33166db04e259ca51838c311891598664deeed85adIan Rogers EBX = 3, 34166db04e259ca51838c311891598664deeed85adIan Rogers ESP = 4, 35166db04e259ca51838c311891598664deeed85adIan Rogers EBP = 5, 36166db04e259ca51838c311891598664deeed85adIan Rogers ESI = 6, 37166db04e259ca51838c311891598664deeed85adIan Rogers EDI = 7, 38166db04e259ca51838c311891598664deeed85adIan Rogers kNumberOfCpuRegisters = 8, 39166db04e259ca51838c311891598664deeed85adIan Rogers kFirstByteUnsafeRegister = 4, 40166db04e259ca51838c311891598664deeed85adIan Rogers kNoRegister = -1 // Signals an illegal register. 41166db04e259ca51838c311891598664deeed85adIan Rogers}; 42166db04e259ca51838c311891598664deeed85adIan Rogersstd::ostream& operator<<(std::ostream& os, const Register& rhs); 43b033c75ebda80ac75f936366fe78d1edf5cec937Ian Rogers 44166db04e259ca51838c311891598664deeed85adIan Rogers} // namespace x86 45b033c75ebda80ac75f936366fe78d1edf5cec937Ian Rogers} // namespace art 46166db04e259ca51838c311891598664deeed85adIan Rogers 47166db04e259ca51838c311891598664deeed85adIan Rogers#endif // ART_RUNTIME_ARCH_X86_REGISTERS_X86_H_ 48