//===-- AVR.td - Describe the AVR Target Machine ----------*- tablegen -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===---------------------------------------------------------------------===// // This is the top level entry point for the AVR target. //===---------------------------------------------------------------------===// //===---------------------------------------------------------------------===// // Target-independent interfaces which we are implementing //===---------------------------------------------------------------------===// include "llvm/Target/Target.td" //===---------------------------------------------------------------------===// // AVR Device Definitions //===---------------------------------------------------------------------===// include "AVRDevices.td" //===---------------------------------------------------------------------===// // Register File Description //===---------------------------------------------------------------------===// include "AVRRegisterInfo.td" //===---------------------------------------------------------------------===// // Instruction Descriptions //===---------------------------------------------------------------------===// include "AVRInstrInfo.td" def AVRInstrInfo : InstrInfo; //===---------------------------------------------------------------------===// // Calling Conventions //===---------------------------------------------------------------------===// include "AVRCallingConv.td" //===---------------------------------------------------------------------===// // Assembly Printers //===---------------------------------------------------------------------===// def AVRAsmWriter : AsmWriter { string AsmWriterClassName = "InstPrinter"; bit isMCAsmWriter = 1; } //===---------------------------------------------------------------------===// // Assembly Parsers //===---------------------------------------------------------------------===// def AVRAsmParser : AsmParser { let ShouldEmitMatchRegisterName = 1; let ShouldEmitMatchRegisterAltName = 1; } def AVRAsmParserVariant : AsmParserVariant { int Variant = 0; // Recognize hard coded registers. string RegisterPrefix = "$"; string TokenizingCharacters = "+"; } //===---------------------------------------------------------------------===// // Target Declaration //===---------------------------------------------------------------------===// def AVR : Target { let InstructionSet = AVRInstrInfo; let AssemblyWriters = [AVRAsmWriter]; let AssemblyParsers = [AVRAsmParser]; let AssemblyParserVariants = [AVRAsmParserVariant]; }