blob: 78a5840c87c721dbd4723829db247a6cd1f00f13 [file] [log] [blame]
Bill Schmidt22d40dc2013-05-13 19:34:37 +00001//===-- PPCTargetObjectFile.h - PPC Object Info -----------------*- C++ -*-===//
2//
Chandler Carruth2946cd72019-01-19 08:50:56 +00003// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
Bill Schmidt22d40dc2013-05-13 19:34:37 +00006//
7//===----------------------------------------------------------------------===//
8
Benjamin Kramera7c40ef2014-08-13 16:26:38 +00009#ifndef LLVM_LIB_TARGET_POWERPC_PPCTARGETOBJECTFILE_H
10#define LLVM_LIB_TARGET_POWERPC_PPCTARGETOBJECTFILE_H
Bill Schmidt22d40dc2013-05-13 19:34:37 +000011
12#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
David Blaikie6054e652018-03-23 23:58:19 +000013#include "llvm/Target/TargetLoweringObjectFile.h"
Bill Schmidt22d40dc2013-05-13 19:34:37 +000014#include "llvm/Target/TargetMachine.h"
15
16namespace llvm {
17
18 /// PPC64LinuxTargetObjectFile - This implementation is used for
19 /// 64-bit PowerPC Linux.
20 class PPC64LinuxTargetObjectFile : public TargetLoweringObjectFileELF {
21
Craig Topper73156022014-03-02 09:09:27 +000022 void Initialize(MCContext &Ctx, const TargetMachine &TM) override;
Bill Schmidt22d40dc2013-05-13 19:34:37 +000023
Peter Collingbourne67335642016-10-24 19:23:39 +000024 MCSection *SelectSectionForGlobal(const GlobalObject *GO, SectionKind Kind,
Rafael Espindola0709a7b2015-05-21 19:20:38 +000025 const TargetMachine &TM) const override;
Ulrich Weigand0f039822013-07-02 18:47:35 +000026
Adrian Prantl5f8f34e42018-05-01 15:54:18 +000027 /// Describe a TLS variable address within debug info.
Craig Topper73156022014-03-02 09:09:27 +000028 const MCExpr *getDebugThreadLocalSymbol(const MCSymbol *Sym) const override;
Bill Schmidt22d40dc2013-05-13 19:34:37 +000029 };
30
31} // end namespace llvm
32
33#endif