HexagonSchedule.td revision 234353
1//===- HexagonSchedule.td - Hexagon Scheduling Definitions -*- 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// Functional Units
11def LUNIT     : FuncUnit;
12def LSUNIT    : FuncUnit;
13def MUNIT     : FuncUnit;
14def SUNIT     : FuncUnit;
15
16// Itinerary classes
17def ALU32     : InstrItinClass;
18def ALU64     : InstrItinClass;
19def CR        : InstrItinClass;
20def J         : InstrItinClass;
21def JR        : InstrItinClass;
22def LD        : InstrItinClass;
23def M         : InstrItinClass;
24def ST        : InstrItinClass;
25def S         : InstrItinClass;
26def SYS       : InstrItinClass;
27def MARKER    : InstrItinClass;
28def PSEUDO    : InstrItinClass;
29
30def HexagonItineraries :
31      ProcessorItineraries<[LUNIT, LSUNIT, MUNIT, SUNIT], [], [
32        InstrItinData<ALU32  , [InstrStage<1, [LUNIT, LSUNIT, MUNIT, SUNIT]>]>,
33        InstrItinData<ALU64  , [InstrStage<1, [MUNIT, SUNIT]>]>,
34        InstrItinData<CR     , [InstrStage<1, [SUNIT]>]>,
35        InstrItinData<J      , [InstrStage<1, [SUNIT, MUNIT]>]>,
36        InstrItinData<JR     , [InstrStage<1, [MUNIT]>]>,
37        InstrItinData<LD     , [InstrStage<1, [LUNIT, LSUNIT]>]>,
38        InstrItinData<M      , [InstrStage<1, [MUNIT, SUNIT]>]>,
39        InstrItinData<ST     , [InstrStage<1, [LSUNIT]>]>,
40        InstrItinData<S      , [InstrStage<1, [SUNIT, MUNIT]>]>,
41        InstrItinData<SYS    , [InstrStage<1, [LSUNIT]>]>,
42        InstrItinData<MARKER , [InstrStage<1, [LUNIT, LSUNIT, MUNIT, SUNIT]>]>,
43        InstrItinData<PSEUDO , [InstrStage<1, [LUNIT, LSUNIT, MUNIT, SUNIT]>]>
44      ]>;
45
46//===----------------------------------------------------------------------===//
47// V4 Machine Info +
48//===----------------------------------------------------------------------===//
49
50include "HexagonScheduleV4.td"
51
52//===----------------------------------------------------------------------===//
53// V4 Machine Info -
54//===----------------------------------------------------------------------===//
55