1//===- Lanai.td - Describe the Lanai Target Machine --------*- tablegen -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9//===----------------------------------------------------------------------===//
10// Target-independent interfaces which we are implementing
11//===----------------------------------------------------------------------===//
12
13include "llvm/Target/Target.td"
14
15//===----------------------------------------------------------------------===//
16// Register File, Calling Conv, Instruction Descriptions
17//===----------------------------------------------------------------------===//
18
19include "LanaiSchedule.td"
20include "LanaiRegisterInfo.td"
21include "LanaiCallingConv.td"
22include "LanaiInstrInfo.td"
23
24def LanaiInstrInfo : InstrInfo;
25
26//===----------------------------------------------------------------------===//
27// Lanai processors supported.
28//===----------------------------------------------------------------------===//
29
30def : ProcessorModel<"generic", LanaiSchedModel, []>;
31def : ProcessorModel<"v11", LanaiSchedModel, []>;
32
33def LanaiInstPrinter : AsmWriter {
34  string AsmWriterClassName  = "InstPrinter";
35  bit isMCAsmWriter = 1;
36}
37
38//===----------------------------------------------------------------------===//
39// Declare the target which we are implementing
40//===----------------------------------------------------------------------===//
41
42def Lanai : Target {
43  // Pull in Instruction Info:
44  let InstructionSet = LanaiInstrInfo;
45  let AssemblyWriters = [LanaiInstPrinter];
46}
47