X86TargetObjectFile.h revision 9184b25fa543a900463215c11635c2c014ddb623
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/Target/TargetMachine.h" 14#include "llvm/Target/TargetLoweringObjectFile.h" 15 16namespace llvm { 17 class X86TargetMachine; 18 19 /// X8632_MachoTargetObjectFile - This TLOF implementation is used for 20 /// Darwin/x86-32. 21 class X8632_MachoTargetObjectFile : public TargetLoweringObjectFileMachO { 22 public: 23 24 virtual const MCExpr * 25 getSymbolForDwarfGlobalReference(const GlobalValue *GV, Mangler *Mang, 26 MachineModuleInfo *MMI, unsigned Encoding) const; 27 virtual unsigned getPersonalityEncoding() const; 28 virtual unsigned getLSDAEncoding() const; 29 virtual unsigned getFDEEncoding() const; 30 virtual unsigned getTTypeEncoding() const; 31 }; 32 33 /// X8664_MachoTargetObjectFile - This TLOF implementation is used for 34 /// Darwin/x86-64. 35 class X8664_MachoTargetObjectFile : public TargetLoweringObjectFileMachO { 36 public: 37 38 virtual const MCExpr * 39 getSymbolForDwarfGlobalReference(const GlobalValue *GV, Mangler *Mang, 40 MachineModuleInfo *MMI, unsigned Encoding) const; 41 virtual unsigned getPersonalityEncoding() const; 42 virtual unsigned getLSDAEncoding() const; 43 virtual unsigned getFDEEncoding() const; 44 virtual unsigned getTTypeEncoding() const; 45 }; 46 47 class X8632_ELFTargetObjectFile : public TargetLoweringObjectFileELF { 48 const X86TargetMachine &TM; 49 public: 50 X8632_ELFTargetObjectFile(const X86TargetMachine &tm) 51 :TM(tm) { }; 52 virtual unsigned getPersonalityEncoding() const; 53 virtual unsigned getLSDAEncoding() const; 54 virtual unsigned getFDEEncoding() const; 55 virtual unsigned getTTypeEncoding() const; 56 }; 57 58 class X8664_ELFTargetObjectFile : public TargetLoweringObjectFileELF { 59 const X86TargetMachine &TM; 60 public: 61 X8664_ELFTargetObjectFile(const X86TargetMachine &tm) 62 :TM(tm) { }; 63 virtual unsigned getPersonalityEncoding() const; 64 virtual unsigned getLSDAEncoding() const; 65 virtual unsigned getFDEEncoding() const; 66 virtual unsigned getTTypeEncoding() const; 67 }; 68 69} // end namespace llvm 70 71#endif 72