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 Triple; 23 24 struct AArch64MCAsmInfoDarwin : public MCAsmInfoDarwin { 25 explicit AArch64MCAsmInfoDarwin(bool IsILP32); 26 const MCExpr * 27 getExprForPersonalitySymbol(const MCSymbol *Sym, unsigned Encoding, 28 MCStreamer &Streamer) const override; 29 }; 30 31 struct AArch64MCAsmInfoELF : public MCAsmInfoELF { 32 explicit AArch64MCAsmInfoELF(const Triple &T); 33 }; 34 35 struct AArch64MCAsmInfoMicrosoftCOFF : public MCAsmInfoMicrosoft { 36 explicit AArch64MCAsmInfoMicrosoftCOFF(); 37 }; 38 39 struct AArch64MCAsmInfoGNUCOFF : public MCAsmInfoGNUCOFF { 40 explicit AArch64MCAsmInfoGNUCOFF(); 41 }; 42 43 } // namespace llvm 44 45 #endif 46