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