1 //===- XCoreInstrFormats.td - XCore Instruction Formats ----*- tablegen -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 //===----------------------------------------------------------------------===//
11 // Instruction format superclass
12 //===----------------------------------------------------------------------===//
13 class InstXCore<dag outs, dag ins, string asmstr, list<dag> pattern>
17 let Namespace = "XCore";
18 dag OutOperandList = outs;
19 dag InOperandList = ins;
20 let AsmString = asmstr;
21 let Pattern = pattern;
24 // XCore pseudo instructions format
25 class PseudoInstXCore<dag outs, dag ins, string asmstr, list<dag> pattern>
26 : InstXCore<outs, ins, asmstr, pattern>;
28 //===----------------------------------------------------------------------===//
29 // Instruction formats
30 //===----------------------------------------------------------------------===//
32 class _F3R<dag outs, dag ins, string asmstr, list<dag> pattern>
33 : InstXCore<outs, ins, asmstr, pattern> {
37 class _FL3R<dag outs, dag ins, string asmstr, list<dag> pattern>
38 : InstXCore<outs, ins, asmstr, pattern> {
42 class _F2RUS<dag outs, dag ins, string asmstr, list<dag> pattern>
43 : InstXCore<outs, ins, asmstr, pattern> {
47 class _FL2RUS<dag outs, dag ins, string asmstr, list<dag> pattern>
48 : InstXCore<outs, ins, asmstr, pattern> {
52 class _FRU6<dag outs, dag ins, string asmstr, list<dag> pattern>
53 : InstXCore<outs, ins, asmstr, pattern> {
57 class _FLRU6<dag outs, dag ins, string asmstr, list<dag> pattern>
58 : InstXCore<outs, ins, asmstr, pattern> {
62 class _FU6<dag outs, dag ins, string asmstr, list<dag> pattern>
63 : InstXCore<outs, ins, asmstr, pattern> {
67 class _FLU6<dag outs, dag ins, string asmstr, list<dag> pattern>
68 : InstXCore<outs, ins, asmstr, pattern> {
72 class _FU10<dag outs, dag ins, string asmstr, list<dag> pattern>
73 : InstXCore<outs, ins, asmstr, pattern> {
77 class _FLU10<dag outs, dag ins, string asmstr, list<dag> pattern>
78 : InstXCore<outs, ins, asmstr, pattern> {
82 class _F2R<dag outs, dag ins, string asmstr, list<dag> pattern>
83 : InstXCore<outs, ins, asmstr, pattern> {
87 class _FRUS<dag outs, dag ins, string asmstr, list<dag> pattern>
88 : InstXCore<outs, ins, asmstr, pattern> {
92 class _FL2R<dag outs, dag ins, string asmstr, list<dag> pattern>
93 : InstXCore<outs, ins, asmstr, pattern> {
97 class _F1R<dag outs, dag ins, string asmstr, list<dag> pattern>
98 : InstXCore<outs, ins, asmstr, pattern> {
102 class _F0R<dag outs, dag ins, string asmstr, list<dag> pattern>
103 : InstXCore<outs, ins, asmstr, pattern> {
107 class _L4R<dag outs, dag ins, string asmstr, list<dag> pattern>
108 : InstXCore<outs, ins, asmstr, pattern> {
112 class _L5R<dag outs, dag ins, string asmstr, list<dag> pattern>
113 : InstXCore<outs, ins, asmstr, pattern> {
117 class _L6R<dag outs, dag ins, string asmstr, list<dag> pattern>
118 : InstXCore<outs, ins, asmstr, pattern> {