1 //===-- AVR.td - Describe the AVR Target Machine ----------*- tablegen -*-===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===---------------------------------------------------------------------===//
8 // This is the top level entry point for the AVR target.
9 //===---------------------------------------------------------------------===//
11 //===---------------------------------------------------------------------===//
12 // Target-independent interfaces which we are implementing
13 //===---------------------------------------------------------------------===//
15 include "llvm/Target/Target.td"
17 //===---------------------------------------------------------------------===//
18 // AVR Device Definitions
19 //===---------------------------------------------------------------------===//
21 include "AVRDevices.td"
23 //===---------------------------------------------------------------------===//
24 // Register File Description
25 //===---------------------------------------------------------------------===//
27 include "AVRRegisterInfo.td"
29 //===---------------------------------------------------------------------===//
30 // Instruction Descriptions
31 //===---------------------------------------------------------------------===//
33 include "AVRInstrInfo.td"
35 def AVRInstrInfo : InstrInfo;
37 //===---------------------------------------------------------------------===//
38 // Calling Conventions
39 //===---------------------------------------------------------------------===//
41 include "AVRCallingConv.td"
43 //===---------------------------------------------------------------------===//
45 //===---------------------------------------------------------------------===//
47 def AVRAsmWriter : AsmWriter {
48 string AsmWriterClassName = "InstPrinter";
49 bit isMCAsmWriter = 1;
52 //===---------------------------------------------------------------------===//
54 //===---------------------------------------------------------------------===//
56 def AVRAsmParser : AsmParser {
57 let ShouldEmitMatchRegisterName = 1;
58 let ShouldEmitMatchRegisterAltName = 1;
61 def AVRAsmParserVariant : AsmParserVariant {
64 // Recognize hard coded registers.
65 string RegisterPrefix = "$";
66 string TokenizingCharacters = "+";
69 //===---------------------------------------------------------------------===//
71 //===---------------------------------------------------------------------===//
74 let InstructionSet = AVRInstrInfo;
75 let AssemblyWriters = [AVRAsmWriter];
77 let AssemblyParsers = [AVRAsmParser];
78 let AssemblyParserVariants = [AVRAsmParserVariant];