10616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell/*
20616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell * Copyright (C) 2015 The Android Open Source Project
30616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell *
40616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell * Licensed under the Apache License, Version 2.0 (the "License");
50616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell * you may not use this file except in compliance with the License.
60616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell * You may obtain a copy of the License at
70616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell *
80616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell *      http://www.apache.org/licenses/LICENSE-2.0
90616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell *
100616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell * Unless required by applicable law or agreed to in writing, software
110616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell * distributed under the License is distributed on an "AS IS" BASIS,
120616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell * See the License for the specific language governing permissions and
140616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell * limitations under the License.
150616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell */
160616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell
170f7dca4ca0be8d2f8776794d35edf8b51b5bc997Vladimir Marko#ifndef ART_COMPILER_OPTIMIZING_PC_RELATIVE_FIXUPS_X86_H_
180f7dca4ca0be8d2f8776794d35edf8b51b5bc997Vladimir Marko#define ART_COMPILER_OPTIMIZING_PC_RELATIVE_FIXUPS_X86_H_
190616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell
200616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell#include "nodes.h"
210616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell#include "optimization.h"
220616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell
230616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendellnamespace art {
24d1c4045fb4d4703642f3f79985727b9a12cf5c49Aart Bik
25d1c4045fb4d4703642f3f79985727b9a12cf5c49Aart Bikclass CodeGenerator;
26d1c4045fb4d4703642f3f79985727b9a12cf5c49Aart Bik
270616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendellnamespace x86 {
280616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell
290f7dca4ca0be8d2f8776794d35edf8b51b5bc997Vladimir Markoclass PcRelativeFixups : public HOptimization {
300616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell public:
31d1c4045fb4d4703642f3f79985727b9a12cf5c49Aart Bik  PcRelativeFixups(HGraph* graph, CodeGenerator* codegen, OptimizingCompilerStats* stats)
32d1c4045fb4d4703642f3f79985727b9a12cf5c49Aart Bik      : HOptimization(graph, "pc_relative_fixups_x86", stats),
33d1c4045fb4d4703642f3f79985727b9a12cf5c49Aart Bik        codegen_(codegen) {}
340616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell
350616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell  void Run() OVERRIDE;
36d1c4045fb4d4703642f3f79985727b9a12cf5c49Aart Bik
37d1c4045fb4d4703642f3f79985727b9a12cf5c49Aart Bik private:
38d1c4045fb4d4703642f3f79985727b9a12cf5c49Aart Bik  CodeGenerator* codegen_;
390616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell};
400616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell
410616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell}  // namespace x86
420616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell}  // namespace art
430616ae081e648f4b9b64b33e2624a943c5fce977Mark Mendell
440f7dca4ca0be8d2f8776794d35edf8b51b5bc997Vladimir Marko#endif  // ART_COMPILER_OPTIMIZING_PC_RELATIVE_FIXUPS_X86_H_
45