| //===- HexagonSchedule.td - Hexagon Scheduling Definitions -*- tablegen -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| // Functional Units |
| def LUNIT : FuncUnit; |
| def LSUNIT : FuncUnit; |
| def MUNIT : FuncUnit; |
| def SUNIT : FuncUnit; |
| |
| |
| // Itinerary classes |
| def ALU32 : InstrItinClass; |
| def ALU64 : InstrItinClass; |
| def CR : InstrItinClass; |
| def J : InstrItinClass; |
| def JR : InstrItinClass; |
| def LD : InstrItinClass; |
| def M : InstrItinClass; |
| def ST : InstrItinClass; |
| def S : InstrItinClass; |
| def PSEUDO : InstrItinClass; |
| |
| |
| def HexagonItineraries : |
| ProcessorItineraries<[LUNIT, LSUNIT, MUNIT, SUNIT], [], [ |
| InstrItinData<ALU32 , [InstrStage<1, [LUNIT, LSUNIT, MUNIT, SUNIT]>]>, |
| InstrItinData<ALU64 , [InstrStage<1, [MUNIT, SUNIT]>]>, |
| InstrItinData<CR , [InstrStage<1, [SUNIT]>]>, |
| InstrItinData<J , [InstrStage<1, [SUNIT, MUNIT]>]>, |
| InstrItinData<JR , [InstrStage<1, [MUNIT]>]>, |
| InstrItinData<LD , [InstrStage<1, [LUNIT, LSUNIT]>]>, |
| InstrItinData<M , [InstrStage<1, [MUNIT, SUNIT]>]>, |
| InstrItinData<ST , [InstrStage<1, [LSUNIT]>]>, |
| InstrItinData<S , [InstrStage<1, [SUNIT, MUNIT]>]>, |
| InstrItinData<PSEUDO , [InstrStage<1, [LUNIT, LSUNIT, MUNIT, SUNIT]>]> |
| ]>; |
| |
| |
| //===----------------------------------------------------------------------===// |
| // V4 Machine Info + |
| //===----------------------------------------------------------------------===// |
| |
| include "HexagonScheduleV4.td" |
| |
| //===----------------------------------------------------------------------===// |
| // V4 Machine Info - |
| //===----------------------------------------------------------------------===// |