//===-- SystemZ.td - Describe the SystemZ target machine -----*- tblgen -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===// // Target-independent interfaces which we are implementing //===----------------------------------------------------------------------===// include "llvm/Target/Target.td" //===----------------------------------------------------------------------===// // SystemZ subtarget features //===----------------------------------------------------------------------===// include "SystemZFeatures.td" //===----------------------------------------------------------------------===// // SystemZ subtarget scheduling models //===----------------------------------------------------------------------===// include "SystemZSchedule.td" //===----------------------------------------------------------------------===// // SystemZ supported processors //===----------------------------------------------------------------------===// include "SystemZProcessors.td" //===----------------------------------------------------------------------===// // 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 "SystemZInstrVector.td" include "SystemZInstrFP.td" include "SystemZInstrHFP.td" include "SystemZInstrDFP.td" include "SystemZInstrSystem.td" def SystemZInstrInfo : InstrInfo { let guessInstructionProperties = 0; } //===----------------------------------------------------------------------===// // Assembly parser //===----------------------------------------------------------------------===// def SystemZAsmParser : AsmParser { let ShouldEmitMatchRegisterName = 0; } def ATTAsmParserVariant : AsmParserVariant { int Variant = 0; // Variant name. string Name = "att"; } def HLASMAsmParserVariant : AsmParserVariant { int Variant = 1; // Variant name. string Name = "hlasm"; } //===----------------------------------------------------------------------===// // Top-level target declaration //===----------------------------------------------------------------------===// def SystemZ : Target { let InstructionSet = SystemZInstrInfo; let AssemblyParsers = [SystemZAsmParser]; let AssemblyParserVariants = [ATTAsmParserVariant, HLASMAsmParserVariant]; let AllowRegisterRenaming = 1; }