1//===-- XCoreInstrFormats.td - XCore Instruction Formats ---*- 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
10//===----------------------------------------------------------------------===//
11// Instruction format superclass
12//===----------------------------------------------------------------------===//
13class InstXCore<dag outs, dag ins, string asmstr, list<dag> pattern>
14    : Instruction {
15  field bits<32> Inst;
16
17  let Namespace = "XCore";
18  dag OutOperandList = outs;
19  dag InOperandList = ins;
20  let AsmString   = asmstr;
21  let Pattern = pattern;
22}
23
24// XCore pseudo instructions format
25class PseudoInstXCore<dag outs, dag ins, string asmstr, list<dag> pattern>
26   : InstXCore<outs, ins, asmstr, pattern>;
27
28//===----------------------------------------------------------------------===//
29// Instruction formats
30//===----------------------------------------------------------------------===//
31
32class _F3R<dag outs, dag ins, string asmstr, list<dag> pattern>
33    : InstXCore<outs, ins, asmstr, pattern> {
34  let Inst{31-0} = 0;
35}
36
37class _FL3R<dag outs, dag ins, string asmstr, list<dag> pattern>
38    : InstXCore<outs, ins, asmstr, pattern> {
39  let Inst{31-0} = 0;
40}
41
42class _F2RUS<dag outs, dag ins, string asmstr, list<dag> pattern>
43    : InstXCore<outs, ins, asmstr, pattern> {
44  let Inst{31-0} = 0;
45}
46
47class _FL2RUS<dag outs, dag ins, string asmstr, list<dag> pattern>
48    : InstXCore<outs, ins, asmstr, pattern> {
49  let Inst{31-0} = 0;
50}
51
52class _FRU6<dag outs, dag ins, string asmstr, list<dag> pattern>
53    : InstXCore<outs, ins, asmstr, pattern> {
54  let Inst{31-0} = 0;
55}
56
57class _FLRU6<dag outs, dag ins, string asmstr, list<dag> pattern>
58    : InstXCore<outs, ins, asmstr, pattern> {
59  let Inst{31-0} = 0;
60}
61
62class _FU6<dag outs, dag ins, string asmstr, list<dag> pattern>
63    : InstXCore<outs, ins, asmstr, pattern> {
64  let Inst{31-0} = 0;
65}
66
67class _FLU6<dag outs, dag ins, string asmstr, list<dag> pattern>
68    : InstXCore<outs, ins, asmstr, pattern> {
69  let Inst{31-0} = 0;
70}
71
72class _FU10<dag outs, dag ins, string asmstr, list<dag> pattern>
73    : InstXCore<outs, ins, asmstr, pattern> {
74  let Inst{31-0} = 0;
75}
76
77class _FLU10<dag outs, dag ins, string asmstr, list<dag> pattern>
78    : InstXCore<outs, ins, asmstr, pattern> {
79  let Inst{31-0} = 0;
80}
81
82class _F2R<dag outs, dag ins, string asmstr, list<dag> pattern>
83    : InstXCore<outs, ins, asmstr, pattern> {
84  let Inst{31-0} = 0;
85}
86
87class _FRUS<dag outs, dag ins, string asmstr, list<dag> pattern>
88    : InstXCore<outs, ins, asmstr, pattern> {
89  let Inst{31-0} = 0;
90}
91
92class _FL2R<dag outs, dag ins, string asmstr, list<dag> pattern>
93    : InstXCore<outs, ins, asmstr, pattern> {
94  let Inst{31-0} = 0;
95}
96
97class _F1R<dag outs, dag ins, string asmstr, list<dag> pattern>
98    : InstXCore<outs, ins, asmstr, pattern> {
99  let Inst{31-0} = 0;
100}
101
102class _F0R<dag outs, dag ins, string asmstr, list<dag> pattern>
103    : InstXCore<outs, ins, asmstr, pattern> {
104  let Inst{31-0} = 0;
105}
106
107class _L4R<dag outs, dag ins, string asmstr, list<dag> pattern>
108    : InstXCore<outs, ins, asmstr, pattern> {
109  let Inst{31-0} = 0;
110}
111
112class _L5R<dag outs, dag ins, string asmstr, list<dag> pattern>
113    : InstXCore<outs, ins, asmstr, pattern> {
114  let Inst{31-0} = 0;
115}
116
117class _L6R<dag outs, dag ins, string asmstr, list<dag> pattern>
118    : InstXCore<outs, ins, asmstr, pattern> {
119  let Inst{31-0} = 0;
120}
121