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_MCTARGETDESC_ELFARMASMBACKEND_H 10 #define LLVM_LIB_TARGET_ARM_MCTARGETDESC_ELFARMASMBACKEND_H 11 12 #include "ARMAsmBackend.h" 13 #include "MCTargetDesc/ARMMCTargetDesc.h" 14 #include "llvm/MC/MCObjectWriter.h" 15 16 namespace llvm { 17 class ARMAsmBackendELF : public ARMAsmBackend { 18 public: 19 uint8_t OSABI; ARMAsmBackendELF(const Target & T,uint8_t OSABI,llvm::endianness Endian)20 ARMAsmBackendELF(const Target &T, uint8_t OSABI, llvm::endianness Endian) 21 : ARMAsmBackend(T, Endian), OSABI(OSABI) {} 22 23 std::unique_ptr<MCObjectTargetWriter> createObjectTargetWriter()24 createObjectTargetWriter() const override { 25 return createARMELFObjectWriter(OSABI); 26 } 27 28 std::optional<MCFixupKind> getFixupKind(StringRef Name) const override; 29 }; 30 } // namespace llvm 31 32 #endif // LLVM_LIB_TARGET_ARM_MCTARGETDESC_ELFARMASMBACKEND_H 33