1*9880d681SAndroid Build Coastguard Worker//===-- BPF.td - Describe the BPF Target Machine -----------*- tablegen -*-===// 2*9880d681SAndroid Build Coastguard Worker// 3*9880d681SAndroid Build Coastguard Worker// The LLVM Compiler Infrastructure 4*9880d681SAndroid Build Coastguard Worker// 5*9880d681SAndroid Build Coastguard Worker// This file is distributed under the University of Illinois Open Source 6*9880d681SAndroid Build Coastguard Worker// License. See LICENSE.TXT for details. 7*9880d681SAndroid Build Coastguard Worker// 8*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Workerinclude "llvm/Target/Target.td" 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Workerinclude "BPFRegisterInfo.td" 13*9880d681SAndroid Build Coastguard Workerinclude "BPFCallingConv.td" 14*9880d681SAndroid Build Coastguard Workerinclude "BPFInstrInfo.td" 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Workerdef BPFInstrInfo : InstrInfo; 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Workerclass Proc<string Name, list<SubtargetFeature> Features> 19*9880d681SAndroid Build Coastguard Worker : Processor<Name, NoItineraries, Features>; 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Workerdef : Proc<"generic", []>; 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Workerdef BPFInstPrinter : AsmWriter { 24*9880d681SAndroid Build Coastguard Worker string AsmWriterClassName = "InstPrinter"; 25*9880d681SAndroid Build Coastguard Worker bit isMCAsmWriter = 1; 26*9880d681SAndroid Build Coastguard Worker} 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Workerdef BPFAsmParserVariant : AsmParserVariant { 29*9880d681SAndroid Build Coastguard Worker int Variant = 0; 30*9880d681SAndroid Build Coastguard Worker string Name = "BPF"; 31*9880d681SAndroid Build Coastguard Worker string BreakCharacters = "."; 32*9880d681SAndroid Build Coastguard Worker} 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Workerdef BPF : Target { 35*9880d681SAndroid Build Coastguard Worker let InstructionSet = BPFInstrInfo; 36*9880d681SAndroid Build Coastguard Worker let AssemblyWriters = [BPFInstPrinter]; 37*9880d681SAndroid Build Coastguard Worker let AssemblyParserVariants = [BPFAsmParserVariant]; 38*9880d681SAndroid Build Coastguard Worker} 39