Home | History | Annotate | Download | only in XCore
      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