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