X86TargetObjectFile.h revision 31d157ae1ac2cd9c787dc3c1d28e64c682803844
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  class X86TargetMachine;
199184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov
20757e75b03326d9e124dfd28bb34ca00c9edcd391Bill Wendling  /// X8664_MachoTargetObjectFile - This TLOF implementation is used for Darwin
21757e75b03326d9e124dfd28bb34ca00c9edcd391Bill Wendling  /// x86-64.
22505ad8bed3321bc4b99af8fba4844efe2fe9e67aBill Wendling  class X8664_MachoTargetObjectFile : public TargetLoweringObjectFileMachO {
23757e75b03326d9e124dfd28bb34ca00c9edcd391Bill Wendling  public:
248c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner    virtual const MCExpr *
253192d14076dbe5724ce85b9d48644bb3c081f0e5Chris Lattner    getExprForDwarfGlobalReference(const GlobalValue *GV, Mangler *Mang,
263192d14076dbe5724ce85b9d48644bb3c081f0e5Chris Lattner                                   MachineModuleInfo *MMI, unsigned Encoding,
273192d14076dbe5724ce85b9d48644bb3c081f0e5Chris Lattner                                   MCStreamer &Streamer) const;
287afec9cc0ff1654619d30b6f30e2a4d13369c8bfRafael Espindola
297afec9cc0ff1654619d30b6f30e2a4d13369c8bfRafael Espindola    // getCFIPersonalitySymbol - The symbol that gets passed to
307afec9cc0ff1654619d30b6f30e2a4d13369c8bfRafael Espindola    // .cfi_personality.
317afec9cc0ff1654619d30b6f30e2a4d13369c8bfRafael Espindola    virtual MCSymbol *
3260246a96224c8b790177253bf25433b93b335d2bRafael Espindola    getCFIPersonalitySymbol(const GlobalValue *GV, Mangler *Mang,
3360246a96224c8b790177253bf25433b93b335d2bRafael Espindola                            MachineModuleInfo *MMI) const;
349184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov  };
359184b25fa543a900463215c11635c2c014ddb623Anton Korobeynikov
368c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner} // end namespace llvm
378c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner
388c6ed05157e9c97ff8f3ccb211dd797e53228da1Chris Lattner#endif
39