1//===-- SystemZ.td - Describe the SystemZ target machine -----*- tblgen -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10//===----------------------------------------------------------------------===//
11// Target-independent interfaces which we are implementing
12//===----------------------------------------------------------------------===//
13
14include "llvm/Target/Target.td"
15
16//===----------------------------------------------------------------------===//
17// SystemZ supported processors
18//===----------------------------------------------------------------------===//
19
20class Proc<string Name, list<SubtargetFeature> Features>
21 : Processor<Name, NoItineraries, Features>;
22
23def : Proc<"z10", []>;
24
25//===----------------------------------------------------------------------===//
26// Register file description
27//===----------------------------------------------------------------------===//
28
29include "SystemZRegisterInfo.td"
30
31//===----------------------------------------------------------------------===//
32// Calling convention description
33//===----------------------------------------------------------------------===//
34
35include "SystemZCallingConv.td"
36
37//===----------------------------------------------------------------------===//
38// Instruction descriptions
39//===----------------------------------------------------------------------===//
40
41include "SystemZOperators.td"
42include "SystemZOperands.td"
43include "SystemZPatterns.td"
44include "SystemZInstrFormats.td"
45include "SystemZInstrInfo.td"
46include "SystemZInstrFP.td"
47
48def SystemZInstrInfo : InstrInfo {}
49
50//===----------------------------------------------------------------------===//
51// Assembly parser
52//===----------------------------------------------------------------------===//
53
54def SystemZAsmParser : AsmParser {
55  let ShouldEmitMatchRegisterName = 0;
56}
57
58//===----------------------------------------------------------------------===//
59// Assembly writer
60//===----------------------------------------------------------------------===//
61
62def SystemZAsmWriter : AsmWriter {
63  string AsmWriterClassName = "InstPrinter";
64  bit isMCAsmWriter = 1;
65}
66
67//===----------------------------------------------------------------------===//
68// Top-level target declaration
69//===----------------------------------------------------------------------===//
70
71def SystemZ : Target {
72  let InstructionSet = SystemZInstrInfo;
73  let AssemblyParsers = [SystemZAsmParser];
74  let AssemblyWriters = [SystemZAsmWriter];
75}
76