15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)//===-- AArch64TargetObjectFile.h - AArch64 Object Info -*- C++ ---------*-===//
25d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)//
35d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)//                     The LLVM Compiler Infrastructure
45d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)//
55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// This file is distributed under the University of Illinois Open Source
65d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// License. See LICENSE.TXT for details.
75d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)//
85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)//===----------------------------------------------------------------------===//
95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifndef LLVM_TARGET_AArch64_TARGETOBJECTFILE_H
115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define LLVM_TARGET_AArch64_TARGETOBJECTFILE_H
12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "llvm/Target/TargetLoweringObjectFile.h"
155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)namespace llvm {
175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class AArch64TargetMachine;
185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/// This implementation is used for AArch64 ELF targets (Linux in particular).
205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class AArch64_ELFTargetObjectFile : public TargetLoweringObjectFileELF {
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  void Initialize(MCContext &Ctx, const TargetMachine &TM) override;
225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)};
235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/// AArch64_MachoTargetObjectFile - This TLOF implementation is used for Darwin.
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class AArch64_MachoTargetObjectFile : public TargetLoweringObjectFileMachO {
265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)public:
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  const MCExpr *getTTypeGlobalReference(const GlobalValue *GV,
285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        unsigned Encoding, Mangler &Mang,
295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        const TargetMachine &TM,
305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        MachineModuleInfo *MMI,
315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                        MCStreamer &Streamer) const override;
325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  MCSymbol *getCFIPersonalitySymbol(const GlobalValue *GV, Mangler &Mang,
345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                    const TargetMachine &TM,
355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                    MachineModuleInfo *MMI) const override;
365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)};
375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} // end namespace llvm
395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif
415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)