AArch64.td revision 263508
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// 10// This is the top level entry point for the AArch64 target. 11// 12//===----------------------------------------------------------------------===// 13 14//===----------------------------------------------------------------------===// 15// Target-independent interfaces 16//===----------------------------------------------------------------------===// 17 18include "llvm/Target/Target.td" 19 20//===----------------------------------------------------------------------===// 21// AArch64 Subtarget features. 22// 23 24def FeatureFPARMv8 : SubtargetFeature<"fp-armv8", "HasFPARMv8", "true", 25 "Enable ARMv8 FP">; 26 27def FeatureNEON : SubtargetFeature<"neon", "HasNEON", "true", 28 "Enable Advanced SIMD instructions", [FeatureFPARMv8]>; 29 30def FeatureCrypto : SubtargetFeature<"crypto", "HasCrypto", "true", 31 "Enable cryptographic instructions">; 32 33//===----------------------------------------------------------------------===// 34// AArch64 Processors 35// 36 37include "AArch64Schedule.td" 38 39def : Processor<"generic", GenericItineraries, [FeatureFPARMv8]>; 40 41//===----------------------------------------------------------------------===// 42// Register File Description 43//===----------------------------------------------------------------------===// 44 45include "AArch64RegisterInfo.td" 46 47include "AArch64CallingConv.td" 48 49//===----------------------------------------------------------------------===// 50// Instruction Descriptions 51//===----------------------------------------------------------------------===// 52 53include "AArch64InstrInfo.td" 54 55def AArch64InstrInfo : InstrInfo; 56 57//===----------------------------------------------------------------------===// 58// Assembly printer 59//===----------------------------------------------------------------------===// 60 61def A64InstPrinter : AsmWriter { 62 string AsmWriterClassName = "InstPrinter"; 63 bit isMCAsmWriter = 1; 64} 65 66//===----------------------------------------------------------------------===// 67// Declare the target which we are implementing 68//===----------------------------------------------------------------------===// 69 70def AArch64 : Target { 71 let InstructionSet = AArch64InstrInfo; 72 let AssemblyWriters = [A64InstPrinter]; 73} 74