1//===-- AVR.td - Describe the AVR Target Machine ----------*- tablegen -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===---------------------------------------------------------------------===// 9// This is the top level entry point for the AVR target. 10//===---------------------------------------------------------------------===// 11 12//===---------------------------------------------------------------------===// 13// Target-independent interfaces which we are implementing 14//===---------------------------------------------------------------------===// 15 16include "llvm/Target/Target.td" 17 18//===---------------------------------------------------------------------===// 19// AVR Device Definitions 20//===---------------------------------------------------------------------===// 21 22include "AVRDevices.td" 23 24//===---------------------------------------------------------------------===// 25// Register File Description 26//===---------------------------------------------------------------------===// 27 28include "AVRRegisterInfo.td" 29 30//===---------------------------------------------------------------------===// 31// Instruction Descriptions 32//===---------------------------------------------------------------------===// 33 34include "AVRInstrInfo.td" 35 36def AVRInstrInfo : InstrInfo; 37 38//===---------------------------------------------------------------------===// 39// Calling Conventions 40//===---------------------------------------------------------------------===// 41 42include "AVRCallingConv.td" 43 44//===---------------------------------------------------------------------===// 45// Assembly Printers 46//===---------------------------------------------------------------------===// 47 48def AVRAsmWriter : AsmWriter { 49 string AsmWriterClassName = "InstPrinter"; 50 bit isMCAsmWriter = 1; 51} 52 53//===---------------------------------------------------------------------===// 54// Assembly Parsers 55//===---------------------------------------------------------------------===// 56 57def AVRAsmParser : AsmParser { 58 let ShouldEmitMatchRegisterName = 1; 59 let ShouldEmitMatchRegisterAltName = 1; 60} 61 62def AVRAsmParserVariant : AsmParserVariant { 63 int Variant = 0; 64 65 // Recognize hard coded registers. 66 string RegisterPrefix = "$"; 67 string TokenizingCharacters = "+"; 68} 69 70//===---------------------------------------------------------------------===// 71// Target Declaration 72//===---------------------------------------------------------------------===// 73 74def AVR : Target { 75 let InstructionSet = AVRInstrInfo; 76 let AssemblyWriters = [AVRAsmWriter]; 77 78 let AssemblyParsers = [AVRAsmParser]; 79 let AssemblyParserVariants = [AVRAsmParserVariant]; 80} 81 82