PPCTargetObjectFile.h revision 36b56886974eae4f9c5ebc96befd3e7bfe5de338
1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown//===-- PPCTargetObjectFile.h - PPC Object Info -----------------*- C++ -*-===// 2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// The LLVM Compiler Infrastructure 4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// This file is distributed under the University of Illinois Open Source 6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// License. See LICENSE.TXT for details. 7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown//===----------------------------------------------------------------------===// 9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#ifndef LLVM_TARGET_PPC_TARGETOBJECTFILE_H 11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define LLVM_TARGET_PPC_TARGETOBJECTFILE_H 12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h" 14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include "llvm/Target/TargetLoweringObjectFile.h" 15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include "llvm/Target/TargetMachine.h" 16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownnamespace llvm { 18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown /// PPC64LinuxTargetObjectFile - This implementation is used for 20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown /// 64-bit PowerPC Linux. 21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown class PPC64LinuxTargetObjectFile : public TargetLoweringObjectFileELF { 22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown void Initialize(MCContext &Ctx, const TargetMachine &TM) override; 24ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 25ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown const MCSection *SelectSectionForGlobal(const GlobalValue *GV, 26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SectionKind Kind, Mangler &Mang, 27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown const TargetMachine &TM) const override; 28ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown /// \brief Describe a TLS variable address within debug info. 30ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown const MCExpr *getDebugThreadLocalSymbol(const MCSymbol *Sym) const override; 31ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown }; 32ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 33ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} // end namespace llvm 34ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 35ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#endif 36ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown