//===- Xtensa.td - Describe the Xtensa Target Machine ------*- tablegen -*-===// // // The LLVM Compiler Infrastructure // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===// // Target-independent interfaces //===----------------------------------------------------------------------===// include "llvm/Target/Target.td" //===----------------------------------------------------------------------===// // Subtarget Features. //===----------------------------------------------------------------------===// def FeatureDensity : SubtargetFeature<"density", "HasDensity", "true", "Enable Density instructions">; def HasDensity : Predicate<"Subtarget->hasDensity()">, AssemblerPredicate<(all_of FeatureDensity)>; //===----------------------------------------------------------------------===// // Xtensa supported processors. //===----------------------------------------------------------------------===// class Proc Features> : Processor; def : Proc<"generic", []>; //===----------------------------------------------------------------------===// // Register File Description //===----------------------------------------------------------------------===// include "XtensaRegisterInfo.td" //===----------------------------------------------------------------------===// // Instruction Descriptions //===----------------------------------------------------------------------===// include "XtensaInstrInfo.td" def XtensaInstrInfo : InstrInfo; //===----------------------------------------------------------------------===// // Target Declaration //===----------------------------------------------------------------------===// def XtensaAsmParser : AsmParser { let ShouldEmitMatchRegisterAltName = 1; } def XtensaInstPrinter : AsmWriter { string AsmWriterClassName = "InstPrinter"; } def Xtensa : Target { let InstructionSet = XtensaInstrInfo; let AssemblyWriters = [XtensaInstPrinter]; let AssemblyParsers = [XtensaAsmParser]; }