X86TargetObjectFile.h revision 3192d14076dbe5724ce85b9d48644bb3c081f0e5
18c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner//===-- llvm/Target/X86/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 class X86TargetMachine; 199184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov 208c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner /// X8664_MachoTargetObjectFile - This TLOF implementation is used for 218c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner /// Darwin/x86-64. 228c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner class X8664_MachoTargetObjectFile : public TargetLoweringObjectFileMachO { 238c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner public: 248c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner 258c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner virtual const MCExpr * 263192d14076dbe5724ce85b9d48644bb3c081f0e5Chris Lattner getExprForDwarfGlobalReference(const GlobalValue *GV, Mangler *Mang, 273192d14076dbe5724ce85b9d48644bb3c081f0e5Chris Lattner MachineModuleInfo *MMI, unsigned Encoding, 283192d14076dbe5724ce85b9d48644bb3c081f0e5Chris Lattner MCStreamer &Streamer) const; 299184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov }; 309184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov 319184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov class X8632_ELFTargetObjectFile : public TargetLoweringObjectFileELF { 329184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov const X86TargetMachine &TM; 339184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov public: 349184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov X8632_ELFTargetObjectFile(const X86TargetMachine &tm) 3530fb00aac02682cf1edef9f89b905621aa7a3c04Benjamin Kramer :TM(tm) { } 369184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov virtual unsigned getPersonalityEncoding() const; 379184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov virtual unsigned getLSDAEncoding() const; 389184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov virtual unsigned getFDEEncoding() const; 399184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov virtual unsigned getTTypeEncoding() const; 408c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner }; 419184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov 429184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov class X8664_ELFTargetObjectFile : public TargetLoweringObjectFileELF { 439184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov const X86TargetMachine &TM; 449184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov public: 459184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov X8664_ELFTargetObjectFile(const X86TargetMachine &tm) 4630fb00aac02682cf1edef9f89b905621aa7a3c04Benjamin Kramer :TM(tm) { } 479184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov virtual unsigned getPersonalityEncoding() const; 489184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov virtual unsigned getLSDAEncoding() const; 499184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov virtual unsigned getFDEEncoding() const; 509184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov virtual unsigned getTTypeEncoding() const; 519184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov }; 529184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov 538c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner} // end namespace llvm 548c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner 558c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner#endif 56