-//===-- llvm/Target/PPCTargetObjectFile.h - PowerPC Object Info -*- C++ -*-===//
+//===-- PPCTargetObjectFile.h - PPC Object Info -----------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
#define LLVM_TARGET_PPC_TARGETOBJECTFILE_H
#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
+#include "llvm/Target/TargetLoweringObjectFile.h"
+#include "llvm/Target/TargetMachine.h"
namespace llvm {
-class MCContext;
-class TargetMachine;
+ /// PPC64LinuxTargetObjectFile - This implementation is used for
+ /// 64-bit PowerPC Linux.
+ class PPC64LinuxTargetObjectFile : public TargetLoweringObjectFileELF {
-// FIXME: This subclass isn't 100% necessary. It will become obsolete once we
-// can place all LSDAs into the TEXT section. See
-// <rdar://problem/6804645>.
-class PPCMachOTargetObjectFile : public TargetLoweringObjectFileMachO {
-public:
- PPCMachOTargetObjectFile() : TargetLoweringObjectFileMachO() {}
+ void Initialize(MCContext &Ctx, const TargetMachine &TM) override;
- virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
+ const MCSection *SelectSectionForGlobal(const GlobalValue *GV,
+ SectionKind Kind, Mangler &Mang,
+ const TargetMachine &TM) const override;
- virtual unsigned getTTypeEncoding() const;
-};
+ /// \brief Describe a TLS variable address within debug info.
+ const MCExpr *getDebugThreadLocalSymbol(const MCSymbol *Sym) const override;
+ };
-} // end namespace llvm
+} // end namespace llvm
#endif