Home | History | Annotate | Download | only in MCTargetDesc
      1 //===-- ARMAsmBackendDarwin.h   ARM Asm Backend Darwin ----------*- 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 
     10 #ifndef LLVM_LIB_TARGET_ARM_ARMASMBACKENDDARWIN_H
     11 #define LLVM_LIB_TARGET_ARM_ARMASMBACKENDDARWIN_H
     12 
     13 #include "ARMAsmBackend.h"
     14 #include "llvm/Support/MachO.h"
     15 
     16 namespace llvm {
     17 class ARMAsmBackendDarwin : public ARMAsmBackend {
     18   const MCRegisterInfo &MRI;
     19 public:
     20   const MachO::CPUSubTypeARM Subtype;
     21   ARMAsmBackendDarwin(const Target &T, const Triple &TT,
     22                       const MCRegisterInfo &MRI, MachO::CPUSubTypeARM st)
     23       : ARMAsmBackend(T, TT, /* IsLittleEndian */ true), MRI(MRI), Subtype(st) {
     24   }
     25 
     26   MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS) const override {
     27     return createARMMachObjectWriter(OS, /*Is64Bit=*/false, MachO::CPU_TYPE_ARM,
     28                                      Subtype);
     29   }
     30 
     31   uint32_t generateCompactUnwindEncoding(
     32       ArrayRef<MCCFIInstruction> Instrs) const override;
     33 };
     34 } // end namespace llvm
     35 
     36 #endif
     37