1283625Sdim//===-- BPF.td - Describe the BPF Target Machine -----------*- tablegen -*-===// 2283625Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6283625Sdim// 7283625Sdim//===----------------------------------------------------------------------===// 8283625Sdim 9283625Sdiminclude "llvm/Target/Target.td" 10283625Sdim 11283625Sdiminclude "BPFRegisterInfo.td" 12283625Sdiminclude "BPFCallingConv.td" 13283625Sdiminclude "BPFInstrInfo.td" 14283625Sdim 15283625Sdimdef BPFInstrInfo : InstrInfo; 16283625Sdim 17283625Sdimclass Proc<string Name, list<SubtargetFeature> Features> 18283625Sdim : Processor<Name, NoItineraries, Features>; 19283625Sdim 20283625Sdimdef : Proc<"generic", []>; 21327952Sdimdef : Proc<"v1", []>; 22327952Sdimdef : Proc<"v2", []>; 23353358Sdimdef : Proc<"v3", []>; 24327952Sdimdef : Proc<"probe", []>; 25283625Sdim 26327952Sdimdef DummyFeature : SubtargetFeature<"dummy", "isDummyMode", 27327952Sdim "true", "unused feature">; 28327952Sdim 29341825Sdimdef ALU32 : SubtargetFeature<"alu32", "HasAlu32", "true", 30341825Sdim "Enable ALU32 instructions">; 31341825Sdim 32341825Sdimdef DwarfRIS: SubtargetFeature<"dwarfris", "UseDwarfRIS", "true", 33341825Sdim "Disable MCAsmInfo DwarfUsesRelocationsAcrossSections">; 34341825Sdim 35283625Sdimdef BPFInstPrinter : AsmWriter { 36283625Sdim string AsmWriterClassName = "InstPrinter"; 37283625Sdim bit isMCAsmWriter = 1; 38283625Sdim} 39283625Sdim 40314564Sdimdef BPFAsmParser : AsmParser { 41314564Sdim bit HasMnemonicFirst = 0; 42314564Sdim} 43314564Sdim 44296417Sdimdef BPFAsmParserVariant : AsmParserVariant { 45296417Sdim int Variant = 0; 46296417Sdim string Name = "BPF"; 47296417Sdim string BreakCharacters = "."; 48314564Sdim string TokenizingCharacters = "#()[]=:.<>!+*"; 49296417Sdim} 50296417Sdim 51283625Sdimdef BPF : Target { 52283625Sdim let InstructionSet = BPFInstrInfo; 53283625Sdim let AssemblyWriters = [BPFInstPrinter]; 54314564Sdim let AssemblyParsers = [BPFAsmParser]; 55296417Sdim let AssemblyParserVariants = [BPFAsmParserVariant]; 56283625Sdim} 57