118334Speter//===-- ARMAsmBackendDarwin.h   ARM Asm Backend Darwin ----------*- C++ -*-===//
218334Speter//
318334Speter//                     The LLVM Compiler Infrastructure
418334Speter//
518334Speter// This file is distributed under the University of Illinois Open Source
652212Sobrien// License. See LICENSE.TXT for details.
752212Sobrien//
818334Speter//===----------------------------------------------------------------------===//
918334Speter
1018334Speter#ifndef LLVM_LIB_TARGET_ARM_ARMASMBACKENDDARWIN_H
1118334Speter#define LLVM_LIB_TARGET_ARM_ARMASMBACKENDDARWIN_H
1218334Speter
1318334Speter#include "llvm/Support/MachO.h"
1418334Speter
1518334Speterusing namespace llvm;
1618334Speter
1752212Sobriennamespace {
1818334Speterclass ARMAsmBackendDarwin : public ARMAsmBackend {
1918334Speter  const MCRegisterInfo &MRI;
2052212Sobrienpublic:
2118334Speter  const MachO::CPUSubTypeARM Subtype;
2218334Speter  ARMAsmBackendDarwin(const Target &T, const Triple &TT,
2352212Sobrien                      const MCRegisterInfo &MRI, MachO::CPUSubTypeARM st)
2418334Speter      : ARMAsmBackend(T, TT, /* IsLittleEndian */ true), MRI(MRI), Subtype(st) {
2518334Speter    HasDataInCodeSupport = true;
2652212Sobrien  }
2718334Speter
2818334Speter  MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS) const override {
2952212Sobrien    return createARMMachObjectWriter(OS, /*Is64Bit=*/false, MachO::CPU_TYPE_ARM,
3018334Speter                                     Subtype);
3118334Speter  }
3252212Sobrien
3318334Speter  uint32_t generateCompactUnwindEncoding(
3418334Speter      ArrayRef<MCCFIInstruction> Instrs) const override;
3552212Sobrien};
3618334Speter}
3718334Speter
3852212Sobrien#endif
3918334Speter