This patch implements Xtensa ISA option "Windowed Register Option". It implements subtarget feature, instructions descriptions and support of these instructions in asm parser and disassembler. This is the second version of the Windowed Register Option implementation ( previous implementation #121118). In this variant "checkRegister" function is placed in XtensaMCTargetDesc.
69 lines
2.4 KiB
TableGen
69 lines
2.4 KiB
TableGen
//===- 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.
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
include "XtensaFeatures.td"
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
// Xtensa supported processors.
|
|
//===----------------------------------------------------------------------===//
|
|
class Proc<string Name, list<SubtargetFeature> Features>
|
|
: Processor<Name, NoItineraries, Features>;
|
|
|
|
def : Proc<"generic", []>;
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
// Register File Description
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
include "XtensaRegisterInfo.td"
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
// Calling Convention Description
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
include "XtensaCallingConv.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];
|
|
}
|
|
|