Fix formatting in AArch64 backend.
[oota-llvm.git] / lib / Target / AArch64 / AArch64.td
1 //===- AArch64.td - Describe the AArch64 Target Machine -------*- tblgen -*-==//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 // This is the top level entry point for the AArch64 target.
10 //===----------------------------------------------------------------------===//
11
12 //===----------------------------------------------------------------------===//
13 // Target-independent interfaces
14 //===----------------------------------------------------------------------===//
15
16 include "llvm/Target/Target.td"
17
18 //===----------------------------------------------------------------------===//
19 // AArch64 Subtarget features.
20 //
21
22 def FeatureNEON : SubtargetFeature<"neon", "HasNEON", "true",
23   "Enable Advanced SIMD instructions">;
24
25 def FeatureCrypto : SubtargetFeature<"crypto", "HasCrypto", "true",
26   "Enable cryptographic instructions">;
27
28 //===----------------------------------------------------------------------===//
29 // AArch64 Processors
30 //
31
32 include "AArch64Schedule.td"
33
34 def : Processor<"generic", GenericItineraries, [FeatureNEON, FeatureCrypto]>;
35
36 //===----------------------------------------------------------------------===//
37 // Register File Description
38 //===----------------------------------------------------------------------===//
39
40 include "AArch64RegisterInfo.td"
41
42 include "AArch64CallingConv.td"
43
44 //===----------------------------------------------------------------------===//
45 // Instruction Descriptions
46 //===----------------------------------------------------------------------===//
47
48 include "AArch64InstrInfo.td"
49
50 def AArch64InstrInfo : InstrInfo;
51
52 //===----------------------------------------------------------------------===//
53 // Assembly printer
54 //===----------------------------------------------------------------------===//
55
56 def A64InstPrinter : AsmWriter {
57   string AsmWriterClassName = "InstPrinter";
58   bit isMCAsmWriter = 1;
59 }
60
61 //===----------------------------------------------------------------------===//
62 // Declare the target which we are implementing
63 //===----------------------------------------------------------------------===//
64
65 def AArch64 : Target {
66   let InstructionSet = AArch64InstrInfo;
67   let AssemblyWriters = [A64InstPrinter];
68 }