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<int sz, 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;
25 // XCore pseudo instructions format
26 class PseudoInstXCore<dag outs, dag ins, string asmstr, list<dag> pattern>
27 : InstXCore<0, outs, ins, asmstr, pattern> {
31 //===----------------------------------------------------------------------===//
32 // Instruction formats
33 //===----------------------------------------------------------------------===//
35 class _F3R<dag outs, dag ins, string asmstr, list<dag> pattern>
36 : InstXCore<2, outs, ins, asmstr, pattern> {
39 class _FL3R<dag outs, dag ins, string asmstr, list<dag> pattern>
40 : InstXCore<4, outs, ins, asmstr, pattern> {
43 class _F2RUS<dag outs, dag ins, string asmstr, list<dag> pattern>
44 : InstXCore<2, outs, ins, asmstr, pattern> {
47 class _FL2RUS<dag outs, dag ins, string asmstr, list<dag> pattern>
48 : InstXCore<4, outs, ins, asmstr, pattern> {
51 class _FRU6<dag outs, dag ins, string asmstr, list<dag> pattern>
52 : InstXCore<2, outs, ins, asmstr, pattern> {
55 class _FLRU6<dag outs, dag ins, string asmstr, list<dag> pattern>
56 : InstXCore<4, outs, ins, asmstr, pattern> {
59 class _FU6<dag outs, dag ins, string asmstr, list<dag> pattern>
60 : InstXCore<2, outs, ins, asmstr, pattern> {
63 class _FLU6<dag outs, dag ins, string asmstr, list<dag> pattern>
64 : InstXCore<4, outs, ins, asmstr, pattern> {
67 class _FU10<dag outs, dag ins, string asmstr, list<dag> pattern>
68 : InstXCore<2, outs, ins, asmstr, pattern> {
71 class _FLU10<dag outs, dag ins, string asmstr, list<dag> pattern>
72 : InstXCore<4, outs, ins, asmstr, pattern> {
75 class _F2R<dag outs, dag ins, string asmstr, list<dag> pattern>
76 : InstXCore<2, outs, ins, asmstr, pattern> {
79 class _FRUS<dag outs, dag ins, string asmstr, list<dag> pattern>
80 : InstXCore<2, outs, ins, asmstr, pattern> {
83 class _FL2R<dag outs, dag ins, string asmstr, list<dag> pattern>
84 : InstXCore<4, outs, ins, asmstr, pattern> {
87 class _F1R<dag outs, dag ins, string asmstr, list<dag> pattern>
88 : InstXCore<2, outs, ins, asmstr, pattern> {
91 class _F0R<dag outs, dag ins, string asmstr, list<dag> pattern>
92 : InstXCore<2, outs, ins, asmstr, pattern> {
95 class _L4R<dag outs, dag ins, string asmstr, list<dag> pattern>
96 : InstXCore<4, outs, ins, asmstr, pattern> {
99 class _L5R<dag outs, dag ins, string asmstr, list<dag> pattern>
100 : InstXCore<4, outs, ins, asmstr, pattern> {
103 class _L6R<dag outs, dag ins, string asmstr, list<dag> pattern>
104 : InstXCore<4, outs, ins, asmstr, pattern> {