| Tim Northover | 3b0846e | 2014-05-24 12:50:23 +0000 | [diff] [blame] | 1 | //===-- AArch64TargetObjectFile.h - AArch64 Object Info -*- C++ ---------*-===// | 
|  | 2 | // | 
|  | 3 | //                     The LLVM Compiler Infrastructure | 
|  | 4 | // | 
|  | 5 | // This file is distributed under the University of Illinois Open Source | 
|  | 6 | // License. See LICENSE.TXT for details. | 
|  | 7 | // | 
|  | 8 | //===----------------------------------------------------------------------===// | 
|  | 9 |  | 
| Benjamin Kramer | a7c40ef | 2014-08-13 16:26:38 +0000 | [diff] [blame] | 10 | #ifndef LLVM_LIB_TARGET_AARCH64_AARCH64TARGETOBJECTFILE_H | 
|  | 11 | #define LLVM_LIB_TARGET_AARCH64_AARCH64TARGETOBJECTFILE_H | 
| Tim Northover | 3b0846e | 2014-05-24 12:50:23 +0000 | [diff] [blame] | 12 |  | 
|  | 13 | #include "llvm/CodeGen/TargetLoweringObjectFileImpl.h" | 
| David Blaikie | 6054e65 | 2018-03-23 23:58:19 +0000 | [diff] [blame^] | 14 | #include "llvm/Target/TargetLoweringObjectFile.h" | 
| Tim Northover | 3b0846e | 2014-05-24 12:50:23 +0000 | [diff] [blame] | 15 |  | 
|  | 16 | namespace llvm { | 
|  | 17 | class AArch64TargetMachine; | 
|  | 18 |  | 
|  | 19 | /// This implementation is used for AArch64 ELF targets (Linux in particular). | 
|  | 20 | class AArch64_ELFTargetObjectFile : public TargetLoweringObjectFileELF { | 
|  | 21 | void Initialize(MCContext &Ctx, const TargetMachine &TM) override; | 
|  | 22 | }; | 
|  | 23 |  | 
|  | 24 | /// AArch64_MachoTargetObjectFile - This TLOF implementation is used for Darwin. | 
|  | 25 | class AArch64_MachoTargetObjectFile : public TargetLoweringObjectFileMachO { | 
|  | 26 | public: | 
| Bruno Cardoso Lopes | 52b1391 | 2015-03-06 13:48:45 +0000 | [diff] [blame] | 27 | AArch64_MachoTargetObjectFile(); | 
|  | 28 |  | 
| Tim Northover | 3b0846e | 2014-05-24 12:50:23 +0000 | [diff] [blame] | 29 | const MCExpr *getTTypeGlobalReference(const GlobalValue *GV, | 
| Eric Christopher | 4367c7f | 2016-09-16 07:33:15 +0000 | [diff] [blame] | 30 | unsigned Encoding, | 
| Tim Northover | 3b0846e | 2014-05-24 12:50:23 +0000 | [diff] [blame] | 31 | const TargetMachine &TM, | 
|  | 32 | MachineModuleInfo *MMI, | 
|  | 33 | MCStreamer &Streamer) const override; | 
|  | 34 |  | 
| Eric Christopher | 4367c7f | 2016-09-16 07:33:15 +0000 | [diff] [blame] | 35 | MCSymbol *getCFIPersonalitySymbol(const GlobalValue *GV, | 
| Tim Northover | 3b0846e | 2014-05-24 12:50:23 +0000 | [diff] [blame] | 36 | const TargetMachine &TM, | 
|  | 37 | MachineModuleInfo *MMI) const override; | 
| Bruno Cardoso Lopes | 52b1391 | 2015-03-06 13:48:45 +0000 | [diff] [blame] | 38 |  | 
| Bruno Cardoso Lopes | 618c67a | 2015-03-06 13:49:05 +0000 | [diff] [blame] | 39 | const MCExpr *getIndirectSymViaGOTPCRel(const MCSymbol *Sym, | 
|  | 40 | const MCValue &MV, int64_t Offset, | 
|  | 41 | MachineModuleInfo *MMI, | 
|  | 42 | MCStreamer &Streamer) const override; | 
| Tim Northover | 203c6f0 | 2017-05-15 21:51:38 +0000 | [diff] [blame] | 43 |  | 
|  | 44 | void getNameWithPrefix(SmallVectorImpl<char> &OutName, const GlobalValue *GV, | 
|  | 45 | const TargetMachine &TM) const override; | 
| Tim Northover | 3b0846e | 2014-05-24 12:50:23 +0000 | [diff] [blame] | 46 | }; | 
|  | 47 |  | 
| Mandeep Singh Grang | 0c72172 | 2017-06-27 23:58:19 +0000 | [diff] [blame] | 48 | /// This implementation is used for AArch64 COFF targets. | 
|  | 49 | class AArch64_COFFTargetObjectFile : public TargetLoweringObjectFileCOFF {}; | 
|  | 50 |  | 
| Tim Northover | 3b0846e | 2014-05-24 12:50:23 +0000 | [diff] [blame] | 51 | } // end namespace llvm | 
|  | 52 |  | 
|  | 53 | #endif |