| //===-- SystemZ.td - Describe the SystemZ target machine -----*- tblgen -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| //===----------------------------------------------------------------------===// |
| // Target-independent interfaces which we are implementing |
| //===----------------------------------------------------------------------===// |
| |
| include "llvm/Target/Target.td" |
| |
| //===----------------------------------------------------------------------===// |
| // SystemZ supported processors |
| //===----------------------------------------------------------------------===// |
| |
| class Proc<string Name, list<SubtargetFeature> Features> |
| : Processor<Name, NoItineraries, Features>; |
| |
| def : Proc<"z10", []>; |
| |
| //===----------------------------------------------------------------------===// |
| // Register file description |
| //===----------------------------------------------------------------------===// |
| |
| include "SystemZRegisterInfo.td" |
| |
| //===----------------------------------------------------------------------===// |
| // Calling convention description |
| //===----------------------------------------------------------------------===// |
| |
| include "SystemZCallingConv.td" |
| |
| //===----------------------------------------------------------------------===// |
| // Instruction descriptions |
| //===----------------------------------------------------------------------===// |
| |
| include "SystemZOperators.td" |
| include "SystemZOperands.td" |
| include "SystemZPatterns.td" |
| include "SystemZInstrFormats.td" |
| include "SystemZInstrInfo.td" |
| include "SystemZInstrFP.td" |
| |
| def SystemZInstrInfo : InstrInfo {} |
| |
| //===----------------------------------------------------------------------===// |
| // Assembly parser |
| //===----------------------------------------------------------------------===// |
| |
| def SystemZAsmParser : AsmParser { |
| let ShouldEmitMatchRegisterName = 0; |
| } |
| |
| //===----------------------------------------------------------------------===// |
| // Assembly writer |
| //===----------------------------------------------------------------------===// |
| |
| def SystemZAsmWriter : AsmWriter { |
| string AsmWriterClassName = "InstPrinter"; |
| bit isMCAsmWriter = 1; |
| } |
| |
| //===----------------------------------------------------------------------===// |
| // Top-level target declaration |
| //===----------------------------------------------------------------------===// |
| |
| def SystemZ : Target { |
| let InstructionSet = SystemZInstrInfo; |
| let AssemblyParsers = [SystemZAsmParser]; |
| let AssemblyWriters = [SystemZAsmWriter]; |
| } |