1240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt//===-- PPCTargetObjectFile.h - PPC Object Info -----------------*- C++ -*-===// 2240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt// 3240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt// The LLVM Compiler Infrastructure 4240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt// 5240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt// This file is distributed under the University of Illinois Open Source 6240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt// License. See LICENSE.TXT for details. 7240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt// 8240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt//===----------------------------------------------------------------------===// 9240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt 10240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt#ifndef LLVM_TARGET_PPC_TARGETOBJECTFILE_H 11240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt#define LLVM_TARGET_PPC_TARGETOBJECTFILE_H 12240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt 13240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h" 14240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt#include "llvm/Target/TargetLoweringObjectFile.h" 15240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt#include "llvm/Target/TargetMachine.h" 16240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt 17240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidtnamespace llvm { 18240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt 19240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt /// PPC64LinuxTargetObjectFile - This implementation is used for 20240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt /// 64-bit PowerPC Linux. 21240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt class PPC64LinuxTargetObjectFile : public TargetLoweringObjectFileELF { 22240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt 2336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines void Initialize(MCContext &Ctx, const TargetMachine &TM) override; 24240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt 2536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines const MCSection *SelectSectionForGlobal(const GlobalValue *GV, 2636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines SectionKind Kind, Mangler &Mang, 2736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines const TargetMachine &TM) const override; 28b843060ecfa29efb5f896350f6530fa81184e420Ulrich Weigand 29b843060ecfa29efb5f896350f6530fa81184e420Ulrich Weigand /// \brief Describe a TLS variable address within debug info. 3036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines const MCExpr *getDebugThreadLocalSymbol(const MCSymbol *Sym) const override; 31240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt }; 32240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt 33240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt} // end namespace llvm 34240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt 35240b9b6078cdf8048945107b4ff7d517729dab96Bill Schmidt#endif 36