| //===-- AVR.td - Describe the AVR Target Machine ----------*- tablegen -*-===// |
| // |
| // 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 |
| // |
| //===---------------------------------------------------------------------===// |
| // 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]; |
| } |