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