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