]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/llvm/lib/Target/SystemZ/SystemZ.td
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / llvm / lib / Target / SystemZ / SystemZ.td
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
14 include "llvm/Target/Target.td"
15
16 //===----------------------------------------------------------------------===//
17 // SystemZ supported processors
18 //===----------------------------------------------------------------------===//
19
20 class Proc<string Name, list<SubtargetFeature> Features>
21  : Processor<Name, NoItineraries, Features>;
22
23 def : Proc<"z10", []>;
24
25 //===----------------------------------------------------------------------===//
26 // Register file description
27 //===----------------------------------------------------------------------===//
28
29 include "SystemZRegisterInfo.td"
30
31 //===----------------------------------------------------------------------===//
32 // Calling convention description
33 //===----------------------------------------------------------------------===//
34
35 include "SystemZCallingConv.td"
36
37 //===----------------------------------------------------------------------===//
38 // Instruction descriptions
39 //===----------------------------------------------------------------------===//
40
41 include "SystemZOperators.td"
42 include "SystemZOperands.td"
43 include "SystemZPatterns.td"
44 include "SystemZInstrFormats.td"
45 include "SystemZInstrInfo.td"
46 include "SystemZInstrFP.td"
47
48 def SystemZInstrInfo : InstrInfo {}
49
50 //===----------------------------------------------------------------------===//
51 // Assembly parser
52 //===----------------------------------------------------------------------===//
53
54 def SystemZAsmParser : AsmParser {
55   let ShouldEmitMatchRegisterName = 0;
56 }
57
58 //===----------------------------------------------------------------------===//
59 // Assembly writer
60 //===----------------------------------------------------------------------===//
61
62 def SystemZAsmWriter : AsmWriter {
63   string AsmWriterClassName = "InstPrinter";
64   bit isMCAsmWriter = 1;
65 }
66
67 //===----------------------------------------------------------------------===//
68 // Top-level target declaration
69 //===----------------------------------------------------------------------===//
70
71 def SystemZ : Target {
72   let InstructionSet = SystemZInstrInfo;
73   let AssemblyParsers = [SystemZAsmParser];
74   let AssemblyWriters = [SystemZAsmWriter];
75 }