Home | History | Annotate | Download | only in Hexagon
      1 //===--- HexagonIICScalar.td ----------------------------------------------===//
      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 // These itinerary class descriptions are based on the instruction timing
     11 // classes as per V62. Curretnly, they are just extracted from
     12 // HexagonScheduleV62.td but will soon be auto-generated by HexagonGen.py.
     13 
     14 class PseudoItin {
     15   list<InstrItinData> PseudoItin_list = [
     16     InstrItinData<PSEUDO, [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>],
     17                           [1, 1, 1]>,
     18     InstrItinData<PSEUDOM, [InstrStage<1, [SLOT2, SLOT3], 0>,
     19                             InstrStage<1, [SLOT2, SLOT3]>], [1, 1, 1]>,
     20     InstrItinData<DUPLEX,  [InstrStage<1, [SLOT0]>], [1, 1, 1]>,
     21     InstrItinData<tc_ENDLOOP, [InstrStage<1, [SLOT_ENDLOOP]>], [2]>
     22   ];
     23 }
     24 
     25 class ScalarItin {
     26   list<InstrItinData> ScalarItin_list = [
     27     InstrItinData<LD_tc_ld_SLOT01, [InstrStage<1, [SLOT0, SLOT1]>],
     28                                    [3, 1], [Hex_FWD, Hex_FWD]>,
     29     InstrItinData<ST_tc_st_SLOT01, [InstrStage<1, [SLOT0, SLOT1]>],
     30                                    [1, 1, 1], [Hex_FWD, Hex_FWD, Hex_FWD]>
     31   ];
     32 }
     33