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