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