Home | History | Annotate | Download | only in X86
      1 //===-- llvm/Target/X86/X86TargetObjectFile.h - X86 Object Info -*- C++ -*-===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 #ifndef LLVM_TARGET_X86_TARGETOBJECTFILE_H
     11 #define LLVM_TARGET_X86_TARGETOBJECTFILE_H
     12 
     13 #include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
     14 #include "llvm/Target/TargetMachine.h"
     15 #include "llvm/Target/TargetLoweringObjectFile.h"
     16 
     17 namespace llvm {
     18   class X86TargetMachine;
     19 
     20   /// X8664_MachoTargetObjectFile - This TLOF implementation is used for Darwin
     21   /// x86-64.
     22   class X8664_MachoTargetObjectFile : public TargetLoweringObjectFileMachO {
     23   public:
     24     virtual const MCExpr *
     25     getExprForDwarfGlobalReference(const GlobalValue *GV, Mangler *Mang,
     26                                    MachineModuleInfo *MMI, unsigned Encoding,
     27                                    MCStreamer &Streamer) const;
     28 
     29     // getCFIPersonalitySymbol - The symbol that gets passed to
     30     // .cfi_personality.
     31     virtual MCSymbol *
     32     getCFIPersonalitySymbol(const GlobalValue *GV, Mangler *Mang,
     33                             MachineModuleInfo *MMI) const;
     34   };
     35 
     36   class X8632_ELFTargetObjectFile : public TargetLoweringObjectFileELF {
     37     const X86TargetMachine &TM;
     38   public:
     39     X8632_ELFTargetObjectFile(const X86TargetMachine &tm)
     40       :TM(tm) { }
     41     virtual unsigned getPersonalityEncoding() const;
     42     virtual unsigned getLSDAEncoding() const;
     43     virtual unsigned getFDEEncoding(bool CFI) const;
     44     virtual unsigned getTTypeEncoding() const;
     45   };
     46 
     47   class X8664_ELFTargetObjectFile : public TargetLoweringObjectFileELF {
     48     const X86TargetMachine &TM;
     49   public:
     50     X8664_ELFTargetObjectFile(const X86TargetMachine &tm)
     51       :TM(tm) { }
     52     virtual unsigned getPersonalityEncoding() const;
     53     virtual unsigned getLSDAEncoding() const;
     54     virtual unsigned getFDEEncoding(bool CFI) const;
     55     virtual unsigned getTTypeEncoding() const;
     56   };
     57 
     58 } // end namespace llvm
     59 
     60 #endif
     61