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