xref: /freebsd/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZ.td (revision c6989859ae9388eeb46a24fe88f9b8d07101c710)
1//===-- SystemZ.td - Describe the SystemZ target machine -----*- tblgen -*-===//
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// SystemZ subtarget features
17//===----------------------------------------------------------------------===//
18
19include "SystemZFeatures.td"
20
21//===----------------------------------------------------------------------===//
22// SystemZ subtarget scheduling models
23//===----------------------------------------------------------------------===//
24
25include "SystemZSchedule.td"
26
27//===----------------------------------------------------------------------===//
28// SystemZ supported processors
29//===----------------------------------------------------------------------===//
30
31include "SystemZProcessors.td"
32
33//===----------------------------------------------------------------------===//
34// Register file description
35//===----------------------------------------------------------------------===//
36
37include "SystemZRegisterInfo.td"
38
39//===----------------------------------------------------------------------===//
40// Calling convention description
41//===----------------------------------------------------------------------===//
42
43include "SystemZCallingConv.td"
44
45//===----------------------------------------------------------------------===//
46// Instruction descriptions
47//===----------------------------------------------------------------------===//
48
49include "SystemZOperators.td"
50include "SystemZOperands.td"
51include "SystemZPatterns.td"
52include "SystemZInstrFormats.td"
53include "SystemZInstrInfo.td"
54include "SystemZInstrVector.td"
55include "SystemZInstrFP.td"
56include "SystemZInstrHFP.td"
57include "SystemZInstrDFP.td"
58include "SystemZInstrSystem.td"
59
60def SystemZInstrInfo : InstrInfo { let guessInstructionProperties = 0; }
61
62//===----------------------------------------------------------------------===//
63// Assembly parser
64//===----------------------------------------------------------------------===//
65
66def SystemZAsmParser : AsmParser {
67  let ShouldEmitMatchRegisterName = 0;
68}
69
70//===----------------------------------------------------------------------===//
71// Top-level target declaration
72//===----------------------------------------------------------------------===//
73
74def SystemZ : Target {
75  let InstructionSet = SystemZInstrInfo;
76  let AssemblyParsers = [SystemZAsmParser];
77  let AllowRegisterRenaming = 1;
78}
79