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 20namespace llvm { 21class MCStreamer; 22class Target; 23class Triple; 24 25struct 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 32struct AArch64MCAsmInfoELF : public MCAsmInfoELF { 33 explicit AArch64MCAsmInfoELF(const Triple &T); 34}; 35 36struct AArch64MCAsmInfoMicrosoftCOFF : public MCAsmInfoMicrosoft { 37 explicit AArch64MCAsmInfoMicrosoftCOFF(); 38}; 39 40struct AArch64MCAsmInfoGNUCOFF : public MCAsmInfoGNUCOFF { 41 explicit AArch64MCAsmInfoGNUCOFF(); 42}; 43 44} // namespace llvm 45 46#endif 47