1 //===- Xtensa.td - Describe the Xtensa Target Machine ------*- tablegen -*-===//
3 // The LLVM Compiler Infrastructure
5 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
6 // See https://llvm.org/LICENSE.txt for license information.
7 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
9 //===----------------------------------------------------------------------===//
11 //===----------------------------------------------------------------------===//
12 // Target-independent interfaces
13 //===----------------------------------------------------------------------===//
15 include "llvm/Target/Target.td"
17 //===----------------------------------------------------------------------===//
18 // Subtarget Features.
19 //===----------------------------------------------------------------------===//
21 include "XtensaFeatures.td"
23 //===----------------------------------------------------------------------===//
24 // Xtensa supported processors.
25 //===----------------------------------------------------------------------===//
26 class Proc<string Name, list<SubtargetFeature> Features>
27 : Processor<Name, NoItineraries, Features>;
29 def : Proc<"generic", []>;
31 //===----------------------------------------------------------------------===//
32 // Register File Description
33 //===----------------------------------------------------------------------===//
35 include "XtensaRegisterInfo.td"
37 //===----------------------------------------------------------------------===//
38 // Calling Convention Description
39 //===----------------------------------------------------------------------===//
41 include "XtensaCallingConv.td"
43 //===----------------------------------------------------------------------===//
44 // Instruction Descriptions
45 //===----------------------------------------------------------------------===//
47 include "XtensaInstrInfo.td"
49 def XtensaInstrInfo : InstrInfo;
51 //===----------------------------------------------------------------------===//
53 //===----------------------------------------------------------------------===//
55 def XtensaAsmParser : AsmParser {
56 let ShouldEmitMatchRegisterAltName = 1;
59 def XtensaInstPrinter : AsmWriter {
60 string AsmWriterClassName = "InstPrinter";
64 let InstructionSet = XtensaInstrInfo;
65 let AssemblyWriters = [XtensaInstPrinter];
66 let AssemblyParsers = [XtensaAsmParser];