xref: /freebsd/contrib/llvm-project/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendELF.h (revision 7fdf597e96a02165cfe22ff357b857d5fa15ed8a)
1 //===-- ARMAsmBackendELF.h  ARM Asm Backend ELF -----------------*- C++ -*-===//
2 //
3 // 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
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLVM_LIB_TARGET_ARM_ELFARMASMBACKEND_H
10 #define LLVM_LIB_TARGET_ARM_ELFARMASMBACKEND_H
11 
12 #include "ARMAsmBackend.h"
13 #include "MCTargetDesc/ARMMCTargetDesc.h"
14 #include "llvm/MC/MCObjectWriter.h"
15 
16 using namespace llvm;
17 
18 namespace {
19 class ARMAsmBackendELF : public ARMAsmBackend {
20 public:
21   uint8_t OSABI;
22   ARMAsmBackendELF(const Target &T, bool isThumb, uint8_t OSABI,
23                    llvm::endianness Endian)
24       : ARMAsmBackend(T, isThumb, Endian), OSABI(OSABI) {}
25 
26   std::unique_ptr<MCObjectTargetWriter>
27   createObjectTargetWriter() const override {
28     return createARMELFObjectWriter(OSABI);
29   }
30 
31   std::optional<MCFixupKind> getFixupKind(StringRef Name) const override;
32 };
33 }
34 
35 #endif
36