1*9880d681SAndroid Build Coastguard Worker //===-- ARMAsmBackendDarwin.h ARM Asm Backend Darwin ----------*- C++ -*-===// 2*9880d681SAndroid Build Coastguard Worker // 3*9880d681SAndroid Build Coastguard Worker // The LLVM Compiler Infrastructure 4*9880d681SAndroid Build Coastguard Worker // 5*9880d681SAndroid Build Coastguard Worker // This file is distributed under the University of Illinois Open Source 6*9880d681SAndroid Build Coastguard Worker // License. See LICENSE.TXT for details. 7*9880d681SAndroid Build Coastguard Worker // 8*9880d681SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===// 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker #ifndef LLVM_LIB_TARGET_ARM_ARMASMBACKENDDARWIN_H 11*9880d681SAndroid Build Coastguard Worker #define LLVM_LIB_TARGET_ARM_ARMASMBACKENDDARWIN_H 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker #include "ARMAsmBackend.h" 14*9880d681SAndroid Build Coastguard Worker #include "llvm/Support/MachO.h" 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Worker namespace llvm { 17*9880d681SAndroid Build Coastguard Worker class ARMAsmBackendDarwin : public ARMAsmBackend { 18*9880d681SAndroid Build Coastguard Worker const MCRegisterInfo &MRI; 19*9880d681SAndroid Build Coastguard Worker public: 20*9880d681SAndroid Build Coastguard Worker const MachO::CPUSubTypeARM Subtype; ARMAsmBackendDarwin(const Target & T,const Triple & TT,const MCRegisterInfo & MRI,MachO::CPUSubTypeARM st)21*9880d681SAndroid Build Coastguard Worker ARMAsmBackendDarwin(const Target &T, const Triple &TT, 22*9880d681SAndroid Build Coastguard Worker const MCRegisterInfo &MRI, MachO::CPUSubTypeARM st) 23*9880d681SAndroid Build Coastguard Worker : ARMAsmBackend(T, TT, /* IsLittleEndian */ true), MRI(MRI), Subtype(st) { 24*9880d681SAndroid Build Coastguard Worker } 25*9880d681SAndroid Build Coastguard Worker createObjectWriter(raw_pwrite_stream & OS)26*9880d681SAndroid Build Coastguard Worker MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS) const override { 27*9880d681SAndroid Build Coastguard Worker return createARMMachObjectWriter(OS, /*Is64Bit=*/false, MachO::CPU_TYPE_ARM, 28*9880d681SAndroid Build Coastguard Worker Subtype); 29*9880d681SAndroid Build Coastguard Worker } 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Worker uint32_t generateCompactUnwindEncoding( 32*9880d681SAndroid Build Coastguard Worker ArrayRef<MCCFIInstruction> Instrs) const override; 33*9880d681SAndroid Build Coastguard Worker }; 34*9880d681SAndroid Build Coastguard Worker } // end namespace llvm 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Worker #endif 37