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