xref: /freebsd/contrib/llvm-project/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.h (revision fe75646a0234a261c0013bf1840fdac4acaf0cec)
1 //===-- ARMMCAsmInfo.h - ARM 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 ARMMCAsmInfo class.
10 //
11 //===----------------------------------------------------------------------===//
12 
13 #ifndef LLVM_LIB_TARGET_ARM_MCTARGETDESC_ARMMCASMINFO_H
14 #define LLVM_LIB_TARGET_ARM_MCTARGETDESC_ARMMCASMINFO_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 Triple;
22 
23 class ARMMCAsmInfoDarwin : public MCAsmInfoDarwin {
24   virtual void anchor();
25 
26 public:
27   explicit ARMMCAsmInfoDarwin(const Triple &TheTriple);
28 };
29 
30 class ARMELFMCAsmInfo : public MCAsmInfoELF {
31   void anchor() override;
32 
33 public:
34   explicit ARMELFMCAsmInfo(const Triple &TT);
35 
36   void setUseIntegratedAssembler(bool Value) override;
37 };
38 
39 class ARMCOFFMCAsmInfoMicrosoft : public MCAsmInfoMicrosoft {
40   void anchor() override;
41 
42 public:
43   explicit ARMCOFFMCAsmInfoMicrosoft();
44 };
45 
46 class ARMCOFFMCAsmInfoGNU : public MCAsmInfoGNUCOFF {
47   void anchor() override;
48 
49 public:
50   explicit ARMCOFFMCAsmInfoGNU();
51 };
52 
53 } // namespace llvm
54 
55 #endif
56