1 //=====-- AArch64MCAsmInfo.h - AArch64 asm properties ---------*- 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 // This file contains the declaration of the AArch64MCAsmInfo class. 10 // 11 //===----------------------------------------------------------------------===// 12 13 #ifndef LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64MCASMINFO_H 14 #define LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64MCASMINFO_H 15 16 #include "llvm/MC/MCAsmInfoCOFF.h" 17 #include "llvm/MC/MCAsmInfoDarwin.h" 18 #include "llvm/MC/MCAsmInfoELF.h" 19 20 namespace llvm { 21 class MCStreamer; 22 class Target; 23 class Triple; 24 25 struct AArch64MCAsmInfoDarwin : public MCAsmInfoDarwin { 26 explicit AArch64MCAsmInfoDarwin(bool IsILP32); 27 const MCExpr * 28 getExprForPersonalitySymbol(const MCSymbol *Sym, unsigned Encoding, 29 MCStreamer &Streamer) const override; 30 }; 31 32 struct AArch64MCAsmInfoELF : public MCAsmInfoELF { 33 explicit AArch64MCAsmInfoELF(const Triple &T); 34 }; 35 36 struct AArch64MCAsmInfoMicrosoftCOFF : public MCAsmInfoMicrosoft { 37 explicit AArch64MCAsmInfoMicrosoftCOFF(); 38 }; 39 40 struct AArch64MCAsmInfoGNUCOFF : public MCAsmInfoGNUCOFF { 41 explicit AArch64MCAsmInfoGNUCOFF(); 42 }; 43 44 } // namespace llvm 45 46 #endif 47