| //===-- 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]; | 
 | } | 
 |  |