Remove invalid instruction encodings.
[oota-llvm.git] / lib / Target / XCore / XCoreInstrFormats.td
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 //===----------------------------------------------------------------------===//
13 class InstXCore<int sz, 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   let Size = sz;
23 }
24
25 // XCore pseudo instructions format
26 class PseudoInstXCore<dag outs, dag ins, string asmstr, list<dag> pattern>
27    : InstXCore<0, outs, ins, asmstr, pattern> {
28   let isPseudo = 1;
29 }
30
31 //===----------------------------------------------------------------------===//
32 // Instruction formats
33 //===----------------------------------------------------------------------===//
34
35 class _F3R<dag outs, dag ins, string asmstr, list<dag> pattern>
36     : InstXCore<2, outs, ins, asmstr, pattern> {
37 }
38
39 class _FL3R<dag outs, dag ins, string asmstr, list<dag> pattern>
40     : InstXCore<4, outs, ins, asmstr, pattern> {
41 }
42
43 class _F2RUS<dag outs, dag ins, string asmstr, list<dag> pattern>
44     : InstXCore<2, outs, ins, asmstr, pattern> {
45 }
46
47 class _FL2RUS<dag outs, dag ins, string asmstr, list<dag> pattern>
48     : InstXCore<4, outs, ins, asmstr, pattern> {
49 }
50
51 class _FRU6<dag outs, dag ins, string asmstr, list<dag> pattern>
52     : InstXCore<2, outs, ins, asmstr, pattern> {
53 }
54
55 class _FLRU6<dag outs, dag ins, string asmstr, list<dag> pattern>
56     : InstXCore<4, outs, ins, asmstr, pattern> {
57 }
58
59 class _FU6<dag outs, dag ins, string asmstr, list<dag> pattern>
60     : InstXCore<2, outs, ins, asmstr, pattern> {
61 }
62
63 class _FLU6<dag outs, dag ins, string asmstr, list<dag> pattern>
64     : InstXCore<4, outs, ins, asmstr, pattern> {
65 }
66
67 class _FU10<dag outs, dag ins, string asmstr, list<dag> pattern>
68     : InstXCore<2, outs, ins, asmstr, pattern> {
69 }
70
71 class _FLU10<dag outs, dag ins, string asmstr, list<dag> pattern>
72     : InstXCore<4, outs, ins, asmstr, pattern> {
73 }
74
75 class _F2R<dag outs, dag ins, string asmstr, list<dag> pattern>
76     : InstXCore<2, outs, ins, asmstr, pattern> {
77 }
78
79 class _FRUS<dag outs, dag ins, string asmstr, list<dag> pattern>
80     : InstXCore<2, outs, ins, asmstr, pattern> {
81 }
82
83 class _FL2R<dag outs, dag ins, string asmstr, list<dag> pattern>
84     : InstXCore<4, outs, ins, asmstr, pattern> {
85 }
86
87 class _F1R<dag outs, dag ins, string asmstr, list<dag> pattern>
88     : InstXCore<2, outs, ins, asmstr, pattern> {
89 }
90
91 class _F0R<dag outs, dag ins, string asmstr, list<dag> pattern>
92     : InstXCore<2, outs, ins, asmstr, pattern> {
93 }
94
95 class _L4R<dag outs, dag ins, string asmstr, list<dag> pattern>
96     : InstXCore<4, outs, ins, asmstr, pattern> {
97 }
98
99 class _L5R<dag outs, dag ins, string asmstr, list<dag> pattern>
100     : InstXCore<4, outs, ins, asmstr, pattern> {
101 }
102
103 class _L6R<dag outs, dag ins, string asmstr, list<dag> pattern>
104     : InstXCore<4, outs, ins, asmstr, pattern> {
105 }