131d157ae1ac2cd9c787dc3c1d28e64c682803844Jia Liu//===-- X86TargetObjectFile.h - X86 Object Info -----------------*- C++ -*-===// 28c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner// 38c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner// The LLVM Compiler Infrastructure 48c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner// 58c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner// This file is distributed under the University of Illinois Open Source 68c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner// License. See LICENSE.TXT for details. 78c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner// 88c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner//===----------------------------------------------------------------------===// 98c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner 108c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner#ifndef LLVM_TARGET_X86_TARGETOBJECTFILE_H 118c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner#define LLVM_TARGET_X86_TARGETOBJECTFILE_H 128c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner 13362dd0bef5437f85586c046bc53287b6fbe9c099Anton Korobeynikov#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h" 149184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov#include "llvm/Target/TargetMachine.h" 158c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner#include "llvm/Target/TargetLoweringObjectFile.h" 168c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner 178c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattnernamespace llvm { 189184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov 19a44489d5b5687e98c39947b7b64187a3ad5faf0eBill Wendling /// X86_64MachoTargetObjectFile - This TLOF implementation is used for Darwin 20757e75b03326d9e124dfd28bb34ca00c9edcd391Bill Wendling /// x86-64. 21a44489d5b5687e98c39947b7b64187a3ad5faf0eBill Wendling class X86_64MachoTargetObjectFile : public TargetLoweringObjectFileMachO { 22757e75b03326d9e124dfd28bb34ca00c9edcd391Bill Wendling public: 238c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner virtual const MCExpr * 243192d14076dbe5724ce85b9d48644bb3c081f0e5Chris Lattner getExprForDwarfGlobalReference(const GlobalValue *GV, Mangler *Mang, 253192d14076dbe5724ce85b9d48644bb3c081f0e5Chris Lattner MachineModuleInfo *MMI, unsigned Encoding, 263192d14076dbe5724ce85b9d48644bb3c081f0e5Chris Lattner MCStreamer &Streamer) const; 277afec9cc0ff1654619d30b6f30e2a4d13369c8bfRafael Espindola 287afec9cc0ff1654619d30b6f30e2a4d13369c8bfRafael Espindola // getCFIPersonalitySymbol - The symbol that gets passed to 297afec9cc0ff1654619d30b6f30e2a4d13369c8bfRafael Espindola // .cfi_personality. 307afec9cc0ff1654619d30b6f30e2a4d13369c8bfRafael Espindola virtual MCSymbol * 3160246a96224c8b790177253bf25433b93b335d2bRafael Espindola getCFIPersonalitySymbol(const GlobalValue *GV, Mangler *Mang, 3260246a96224c8b790177253bf25433b93b335d2bRafael Espindola MachineModuleInfo *MMI) const; 339184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov }; 349184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov 35d6b43a317e71246380db55a50b799b062b53cdceRafael Espindola /// X86LinuxTargetObjectFile - This implementation is used for linux x86 36d6b43a317e71246380db55a50b799b062b53cdceRafael Espindola /// and x86-64. 37d6b43a317e71246380db55a50b799b062b53cdceRafael Espindola class X86LinuxTargetObjectFile : public TargetLoweringObjectFileELF { 38d6b43a317e71246380db55a50b799b062b53cdceRafael Espindola virtual void Initialize(MCContext &Ctx, const TargetMachine &TM); 39d6b43a317e71246380db55a50b799b062b53cdceRafael Espindola }; 40d6b43a317e71246380db55a50b799b062b53cdceRafael Espindola 418c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner} // end namespace llvm 428c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner 438c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner#endif 44