• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1//===-- MipsSchedule.td - Mips 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//===----------------------------------------------------------------------===//
11// Functional units across Mips chips sets. Based on GCC/Mips backend files.
12//===----------------------------------------------------------------------===//
13def ALU     : FuncUnit;
14def IMULDIV : FuncUnit;
15
16//===----------------------------------------------------------------------===//
17// Instruction Itinerary classes used for Mips
18//===----------------------------------------------------------------------===//
19// IIM16Alu is a placeholder class for most MIPS16 instructions.
20def IIM16Alu           : InstrItinClass;
21def IIPseudo           : InstrItinClass;
22
23def II_ABS              : InstrItinClass;
24def II_ADDI             : InstrItinClass;
25def II_ADDIU            : InstrItinClass;
26def II_ADDIUPC          : InstrItinClass;
27def II_ADD              : InstrItinClass;
28def II_ADDU             : InstrItinClass;
29def II_ADD_D            : InstrItinClass;
30def II_ADD_S            : InstrItinClass;
31def II_ALIGN            : InstrItinClass;
32def II_AND              : InstrItinClass;
33def II_ANDI             : InstrItinClass;
34def II_ALUIPC           : InstrItinClass;
35def II_AUI              : InstrItinClass;
36def II_AUIPC            : InstrItinClass;
37def II_B                : InstrItinClass;
38def II_BADDU            : InstrItinClass;
39def II_BBIT             : InstrItinClass; // bbit[01], bbit[01]32
40def II_BALC             : InstrItinClass;
41def II_BC               : InstrItinClass;
42def II_BC1F             : InstrItinClass;
43def II_BC1FL            : InstrItinClass;
44def II_BC1T             : InstrItinClass;
45def II_BC1TL            : InstrItinClass;
46def II_BC1CCZ           : InstrItinClass;
47def II_BCC              : InstrItinClass; // beq and bne
48def II_BCCZ             : InstrItinClass; // b[gl][et]z
49def II_BCCC             : InstrItinClass; // b<cc>c
50def II_BCCZAL           : InstrItinClass; // bgezal and bltzal
51def II_BCCZALS          : InstrItinClass; // bgezals and bltzals
52def II_BCCZC            : InstrItinClass; // beqzc, bnezc
53def II_BITSWAP          : InstrItinClass;
54def II_CEIL             : InstrItinClass;
55def II_CFC1             : InstrItinClass;
56def II_CLO              : InstrItinClass;
57def II_CLZ              : InstrItinClass;
58def II_CTC1             : InstrItinClass;
59def II_CVT              : InstrItinClass;
60def II_C_CC_D           : InstrItinClass; // Any c.<cc>.d instruction
61def II_C_CC_S           : InstrItinClass; // Any c.<cc>.s instruction
62def II_DADDIU           : InstrItinClass;
63def II_DADDU            : InstrItinClass;
64def II_DADDI            : InstrItinClass;
65def II_DADD             : InstrItinClass;
66def II_DAHI             : InstrItinClass;
67def II_DATI             : InstrItinClass;
68def II_DAUI             : InstrItinClass;
69def II_DALIGN           : InstrItinClass;
70def II_DBITSWAP         : InstrItinClass;
71def II_DCLO             : InstrItinClass;
72def II_DCLZ             : InstrItinClass;
73def II_DDIV             : InstrItinClass;
74def II_DDIVU            : InstrItinClass;
75def II_DIV              : InstrItinClass;
76def II_DIVU             : InstrItinClass;
77def II_DIV_D            : InstrItinClass;
78def II_DIV_S            : InstrItinClass;
79def II_DMFC0            : InstrItinClass;
80def II_DMTC0            : InstrItinClass;
81def II_DMFC1            : InstrItinClass;
82def II_DMTC1            : InstrItinClass;
83def II_DMOD             : InstrItinClass;
84def II_DMODU            : InstrItinClass;
85def II_DMUH             : InstrItinClass;
86def II_DMUHU            : InstrItinClass;
87def II_DMFC2            : InstrItinClass;
88def II_DMTC2            : InstrItinClass;
89def II_DMUL             : InstrItinClass;
90def II_DMULU            : InstrItinClass;
91def II_DMULT            : InstrItinClass;
92def II_DMULTU           : InstrItinClass;
93def II_DROTR            : InstrItinClass;
94def II_DROTR32          : InstrItinClass;
95def II_DROTRV           : InstrItinClass;
96def II_DSLL             : InstrItinClass;
97def II_DSLL32           : InstrItinClass;
98def II_DSLLV            : InstrItinClass;
99def II_DSRA             : InstrItinClass;
100def II_DSRA32           : InstrItinClass;
101def II_DSRAV            : InstrItinClass;
102def II_DSRL             : InstrItinClass;
103def II_DSRL32           : InstrItinClass;
104def II_DSRLV            : InstrItinClass;
105def II_DSBH             : InstrItinClass;
106def II_DSHD             : InstrItinClass;
107def II_DSUBU            : InstrItinClass;
108def II_DSUB             : InstrItinClass;
109def II_EXT              : InstrItinClass; // Any EXT instruction
110def II_FLOOR            : InstrItinClass;
111def II_INS              : InstrItinClass; // Any INS instruction
112def II_IndirectBranchPseudo : InstrItinClass; // Indirect branch pseudo.
113def II_J                : InstrItinClass;
114def II_JAL              : InstrItinClass;
115def II_JALR             : InstrItinClass;
116def II_JALR_HB          : InstrItinClass;
117def II_JALRC            : InstrItinClass;
118def II_JALRS            : InstrItinClass;
119def II_JALS             : InstrItinClass;
120def II_JIC              : InstrItinClass;
121def II_JIALC            : InstrItinClass;
122def II_JR               : InstrItinClass;
123def II_JR_HB            : InstrItinClass;
124def II_JRADDIUSP        : InstrItinClass;
125def II_JRC              : InstrItinClass;
126def II_ReturnPseudo     : InstrItinClass; // Return pseudo.
127def II_ERET             : InstrItinClass;
128def II_DERET            : InstrItinClass;
129def II_ERETNC           : InstrItinClass;
130def II_EHB              : InstrItinClass;
131def II_SDBBP            : InstrItinClass;
132def II_SSNOP            : InstrItinClass;
133def II_SYSCALL          : InstrItinClass;
134def II_PAUSE            : InstrItinClass;
135def II_WAIT             : InstrItinClass;
136def II_EI               : InstrItinClass;
137def II_DI               : InstrItinClass;
138def II_TEQ              : InstrItinClass;
139def II_TEQI             : InstrItinClass;
140def II_TGE              : InstrItinClass;
141def II_TGEI             : InstrItinClass;
142def II_TGEIU            : InstrItinClass;
143def II_TGEU             : InstrItinClass;
144def II_TNE              : InstrItinClass;
145def II_TNEI             : InstrItinClass;
146def II_TLT              : InstrItinClass;
147def II_TLTI             : InstrItinClass;
148def II_TLTU             : InstrItinClass;
149def II_TTLTIU           : InstrItinClass;
150def II_TLBP             : InstrItinClass;
151def II_TLBR             : InstrItinClass;
152def II_TLBWI            : InstrItinClass;
153def II_TLBWR            : InstrItinClass;
154def II_TRAP             : InstrItinClass;
155def II_BREAK            : InstrItinClass;
156def II_SYNC             : InstrItinClass;
157def II_SYNCI            : InstrItinClass;
158def II_LB               : InstrItinClass;
159def II_LBE              : InstrItinClass;
160def II_LBU              : InstrItinClass;
161def II_LBUE             : InstrItinClass;
162def II_LD               : InstrItinClass;
163def II_LDC1             : InstrItinClass;
164def II_LDC2             : InstrItinClass;
165def II_LDC3             : InstrItinClass;
166def II_LDL              : InstrItinClass;
167def II_LDR              : InstrItinClass;
168def II_LDPC             : InstrItinClass;
169def II_LDXC1            : InstrItinClass;
170def II_LH               : InstrItinClass;
171def II_LHE              : InstrItinClass;
172def II_LHU              : InstrItinClass;
173def II_LHUE             : InstrItinClass;
174def II_LL               : InstrItinClass;
175def II_LLD              : InstrItinClass;
176def II_LUI              : InstrItinClass;
177def II_LUXC1            : InstrItinClass;
178def II_LW               : InstrItinClass;
179def II_LWE              : InstrItinClass;
180def II_LWC1             : InstrItinClass;
181def II_LWC2             : InstrItinClass;
182def II_LWC3             : InstrItinClass;
183def II_LWL              : InstrItinClass;
184def II_LWLE             : InstrItinClass;
185def II_LWPC             : InstrItinClass;
186def II_LWR              : InstrItinClass;
187def II_LWRE             : InstrItinClass;
188def II_LWU              : InstrItinClass;
189def II_LWUPC            : InstrItinClass;
190def II_LWXC1            : InstrItinClass;
191def II_LSA              : InstrItinClass;
192def II_DLSA             : InstrItinClass;
193def II_MADD             : InstrItinClass;
194def II_MADDU            : InstrItinClass;
195def II_MADD_D           : InstrItinClass;
196def II_MADD_S           : InstrItinClass;
197def II_MADDF_D          : InstrItinClass;
198def II_MADDF_S          : InstrItinClass;
199def II_MFC0             : InstrItinClass;
200def II_MFC1             : InstrItinClass;
201def II_MFHC1            : InstrItinClass;
202def II_MFC2             : InstrItinClass;
203def II_MFHI_MFLO        : InstrItinClass; // mfhi and mflo
204def II_MOD              : InstrItinClass;
205def II_MODU             : InstrItinClass;
206def II_MOVF             : InstrItinClass;
207def II_MOVF_D           : InstrItinClass;
208def II_MOVF_S           : InstrItinClass;
209def II_MOVN             : InstrItinClass;
210def II_MOVN_D           : InstrItinClass;
211def II_MOVN_S           : InstrItinClass;
212def II_MOVT             : InstrItinClass;
213def II_MOVT_D           : InstrItinClass;
214def II_MOVT_S           : InstrItinClass;
215def II_MOVZ             : InstrItinClass;
216def II_MOVZ_D           : InstrItinClass;
217def II_MOVZ_S           : InstrItinClass;
218def II_MOV_D            : InstrItinClass;
219def II_MOV_S            : InstrItinClass;
220def II_MSUB             : InstrItinClass;
221def II_MSUBU            : InstrItinClass;
222def II_MSUB_D           : InstrItinClass;
223def II_MSUB_S           : InstrItinClass;
224def II_MSUBF_D          : InstrItinClass;
225def II_MSUBF_S          : InstrItinClass;
226def II_MTC0             : InstrItinClass;
227def II_MTC1             : InstrItinClass;
228def II_MTHC1            : InstrItinClass;
229def II_MTC2             : InstrItinClass;
230def II_MTHI_MTLO        : InstrItinClass; // mthi and mtlo
231def II_MUL              : InstrItinClass;
232def II_MUH              : InstrItinClass;
233def II_MUHU             : InstrItinClass;
234def II_MULU             : InstrItinClass;
235def II_MULT             : InstrItinClass;
236def II_MULTU            : InstrItinClass;
237def II_MUL_D            : InstrItinClass;
238def II_MUL_S            : InstrItinClass;
239def II_NEG              : InstrItinClass;
240def II_NMADD_D          : InstrItinClass;
241def II_NMADD_S          : InstrItinClass;
242def II_NMSUB_D          : InstrItinClass;
243def II_NMSUB_S          : InstrItinClass;
244def II_NOR              : InstrItinClass;
245def II_OR               : InstrItinClass;
246def II_ORI              : InstrItinClass;
247def II_POP              : InstrItinClass;
248def II_RDHWR            : InstrItinClass;
249def II_RESTORE          : InstrItinClass;
250def II_ROTR             : InstrItinClass;
251def II_ROTRV            : InstrItinClass;
252def II_ROUND            : InstrItinClass;
253def II_SAVE             : InstrItinClass;
254def II_SC               : InstrItinClass;
255def II_SCD              : InstrItinClass;
256def II_SB               : InstrItinClass;
257def II_SBE              : InstrItinClass;
258def II_SD               : InstrItinClass;
259def II_SDC1             : InstrItinClass;
260def II_SDC2             : InstrItinClass;
261def II_SDC3             : InstrItinClass;
262def II_SDL              : InstrItinClass;
263def II_SDR              : InstrItinClass;
264def II_SDXC1            : InstrItinClass;
265def II_SEB              : InstrItinClass;
266def II_SEH              : InstrItinClass;
267def II_SELCCZ           : InstrItinClass;
268def II_SEQ_SNE          : InstrItinClass; // seq and sne
269def II_SEQI_SNEI        : InstrItinClass; // seqi and snei
270def II_SH               : InstrItinClass;
271def II_SHE              : InstrItinClass;
272def II_SLL              : InstrItinClass;
273def II_SLLV             : InstrItinClass;
274def II_SLTI_SLTIU       : InstrItinClass; // slti and sltiu
275def II_SLT_SLTU         : InstrItinClass; // slt and sltu
276def II_SQRT_D           : InstrItinClass;
277def II_SQRT_S           : InstrItinClass;
278def II_SRA              : InstrItinClass;
279def II_SRAV             : InstrItinClass;
280def II_SRL              : InstrItinClass;
281def II_SRLV             : InstrItinClass;
282def II_SUB              : InstrItinClass;
283def II_SUBU             : InstrItinClass;
284def II_SUB_D            : InstrItinClass;
285def II_SUB_S            : InstrItinClass;
286def II_SUXC1            : InstrItinClass;
287def II_SW               : InstrItinClass;
288def II_SWE              : InstrItinClass;
289def II_SWC1             : InstrItinClass;
290def II_SWC2             : InstrItinClass;
291def II_SWC3             : InstrItinClass;
292def II_SWL              : InstrItinClass;
293def II_SWLE             : InstrItinClass;
294def II_SWR              : InstrItinClass;
295def II_SWRE             : InstrItinClass;
296def II_SWXC1            : InstrItinClass;
297def II_TRUNC            : InstrItinClass;
298def II_WSBH             : InstrItinClass;
299def II_XOR              : InstrItinClass;
300def II_XORI             : InstrItinClass;
301def II_CACHE            : InstrItinClass;
302def II_PREF             : InstrItinClass;
303def II_CACHEE           : InstrItinClass;
304def II_PREFE            : InstrItinClass;
305def II_LLE              : InstrItinClass;
306def II_SCE              : InstrItinClass;
307def II_TLBINV           : InstrItinClass;
308def II_TLBINVF          : InstrItinClass;
309
310//===----------------------------------------------------------------------===//
311// Mips Generic instruction itineraries.
312//===----------------------------------------------------------------------===//
313def MipsGenericItineraries : ProcessorItineraries<[ALU, IMULDIV], [], [
314  InstrItinData<IIM16Alu           , [InstrStage<1,  [ALU]>]>,
315  InstrItinData<II_ADDI            , [InstrStage<1,  [ALU]>]>,
316  InstrItinData<II_ADDIU           , [InstrStage<1,  [ALU]>]>,
317  InstrItinData<II_ADDIUPC         , [InstrStage<1,  [ALU]>]>,
318  InstrItinData<II_ADD             , [InstrStage<1,  [ALU]>]>,
319  InstrItinData<II_ADDU            , [InstrStage<1,  [ALU]>]>,
320  InstrItinData<II_AUI             , [InstrStage<1,  [ALU]>]>,
321  InstrItinData<II_AND             , [InstrStage<1,  [ALU]>]>,
322  InstrItinData<II_ALUIPC          , [InstrStage<1,  [ALU]>]>,
323  InstrItinData<II_AUIPC           , [InstrStage<1,  [ALU]>]>,
324  InstrItinData<II_ALIGN           , [InstrStage<1,  [ALU]>]>,
325  InstrItinData<II_BADDU           , [InstrStage<1,  [ALU]>]>,
326  InstrItinData<II_BITSWAP         , [InstrStage<1,  [ALU]>]>,
327  InstrItinData<II_SLL             , [InstrStage<1,  [ALU]>]>,
328  InstrItinData<II_SRA             , [InstrStage<1,  [ALU]>]>,
329  InstrItinData<II_SRL             , [InstrStage<1,  [ALU]>]>,
330  InstrItinData<II_ROTR            , [InstrStage<1,  [ALU]>]>,
331  InstrItinData<II_SLLV            , [InstrStage<1,  [ALU]>]>,
332  InstrItinData<II_SRAV            , [InstrStage<1,  [ALU]>]>,
333  InstrItinData<II_SRLV            , [InstrStage<1,  [ALU]>]>,
334  InstrItinData<II_ROTRV           , [InstrStage<1,  [ALU]>]>,
335  InstrItinData<II_CLO             , [InstrStage<1,  [ALU]>]>,
336  InstrItinData<II_CLZ             , [InstrStage<1,  [ALU]>]>,
337  InstrItinData<II_DADDIU          , [InstrStage<1,  [ALU]>]>,
338  InstrItinData<II_DADDU           , [InstrStage<1,  [ALU]>]>,
339  InstrItinData<II_DADDI           , [InstrStage<1,  [ALU]>]>,
340  InstrItinData<II_DADD            , [InstrStage<1,  [ALU]>]>,
341  InstrItinData<II_DALIGN          , [InstrStage<1,  [ALU]>]>,
342  InstrItinData<II_DAHI            , [InstrStage<1,  [ALU]>]>,
343  InstrItinData<II_DATI            , [InstrStage<1,  [ALU]>]>,
344  InstrItinData<II_DAUI            , [InstrStage<1,  [ALU]>]>,
345  InstrItinData<II_DBITSWAP        , [InstrStage<1,  [ALU]>]>,
346  InstrItinData<II_DCLO            , [InstrStage<1,  [ALU]>]>,
347  InstrItinData<II_DCLZ            , [InstrStage<1,  [ALU]>]>,
348  InstrItinData<II_DMOD            , [InstrStage<17, [IMULDIV]>]>,
349  InstrItinData<II_DMODU           , [InstrStage<17, [IMULDIV]>]>,
350  InstrItinData<II_DSLL            , [InstrStage<1,  [ALU]>]>,
351  InstrItinData<II_DSLL32          , [InstrStage<1,  [ALU]>]>,
352  InstrItinData<II_DSRL            , [InstrStage<1,  [ALU]>]>,
353  InstrItinData<II_DSRL32          , [InstrStage<1,  [ALU]>]>,
354  InstrItinData<II_DSRA            , [InstrStage<1,  [ALU]>]>,
355  InstrItinData<II_DSRA32          , [InstrStage<1,  [ALU]>]>,
356  InstrItinData<II_DSLLV           , [InstrStage<1,  [ALU]>]>,
357  InstrItinData<II_DSRLV           , [InstrStage<1,  [ALU]>]>,
358  InstrItinData<II_DSRAV           , [InstrStage<1,  [ALU]>]>,
359  InstrItinData<II_DSUBU           , [InstrStage<1,  [ALU]>]>,
360  InstrItinData<II_DSUB            , [InstrStage<1,  [ALU]>]>,
361  InstrItinData<II_DROTR           , [InstrStage<1,  [ALU]>]>,
362  InstrItinData<II_DROTR32         , [InstrStage<1,  [ALU]>]>,
363  InstrItinData<II_DROTRV          , [InstrStage<1,  [ALU]>]>,
364  InstrItinData<II_DSBH            , [InstrStage<1,  [ALU]>]>,
365  InstrItinData<II_DSHD            , [InstrStage<1,  [ALU]>]>,
366  InstrItinData<II_DCLO            , [InstrStage<1,  [ALU]>]>,
367  InstrItinData<II_DCLZ            , [InstrStage<1,  [ALU]>]>,
368  InstrItinData<II_EXT             , [InstrStage<1,  [ALU]>]>,
369  InstrItinData<II_INS             , [InstrStage<1,  [ALU]>]>,
370  InstrItinData<II_LUI             , [InstrStage<1,  [ALU]>]>,
371  InstrItinData<II_MOVF            , [InstrStage<1,  [ALU]>]>,
372  InstrItinData<II_MOVN            , [InstrStage<1,  [ALU]>]>,
373  InstrItinData<II_MOVN_S          , [InstrStage<1,  [ALU]>]>,
374  InstrItinData<II_MOVN_D          , [InstrStage<1,  [ALU]>]>,
375  InstrItinData<II_MOVT            , [InstrStage<1,  [ALU]>]>,
376  InstrItinData<II_MOVZ            , [InstrStage<1,  [ALU]>]>,
377  InstrItinData<II_NOR             , [InstrStage<1,  [ALU]>]>,
378  InstrItinData<II_OR              , [InstrStage<1,  [ALU]>]>,
379  InstrItinData<II_POP             , [InstrStage<1,  [ALU]>]>,
380  InstrItinData<II_RDHWR           , [InstrStage<1,  [ALU]>]>,
381  InstrItinData<II_SUB             , [InstrStage<1,  [ALU]>]>,
382  InstrItinData<II_SUBU            , [InstrStage<1,  [ALU]>]>,
383  InstrItinData<II_XOR             , [InstrStage<1,  [ALU]>]>,
384  InstrItinData<II_ANDI            , [InstrStage<1,  [ALU]>]>,
385  InstrItinData<II_ORI             , [InstrStage<1,  [ALU]>]>,
386  InstrItinData<II_XORI            , [InstrStage<1,  [ALU]>]>,
387  InstrItinData<II_LB              , [InstrStage<3,  [ALU]>]>,
388  InstrItinData<II_LBE             , [InstrStage<3,  [ALU]>]>,
389  InstrItinData<II_LBU             , [InstrStage<3,  [ALU]>]>,
390  InstrItinData<II_LBUE            , [InstrStage<3,  [ALU]>]>,
391  InstrItinData<II_LH              , [InstrStage<3,  [ALU]>]>,
392  InstrItinData<II_LHU             , [InstrStage<3,  [ALU]>]>,
393  InstrItinData<II_LHUE            , [InstrStage<3,  [ALU]>]>,
394  InstrItinData<II_LW              , [InstrStage<3,  [ALU]>]>,
395  InstrItinData<II_LWPC            , [InstrStage<3,  [ALU]>]>,
396  InstrItinData<II_LWL             , [InstrStage<3,  [ALU]>]>,
397  InstrItinData<II_LWLE            , [InstrStage<3,  [ALU]>]>,
398  InstrItinData<II_LWR             , [InstrStage<3,  [ALU]>]>,
399  InstrItinData<II_LWRE            , [InstrStage<3,  [ALU]>]>,
400  InstrItinData<II_LWUPC           , [InstrStage<3,  [ALU]>]>,
401  InstrItinData<II_LD              , [InstrStage<3,  [ALU]>]>,
402  InstrItinData<II_LDL             , [InstrStage<3,  [ALU]>]>,
403  InstrItinData<II_LDR             , [InstrStage<3,  [ALU]>]>,
404  InstrItinData<II_LDPC            , [InstrStage<3,  [ALU]>]>,
405  InstrItinData<II_LL              , [InstrStage<3,  [ALU]>]>,
406  InstrItinData<II_LLD             , [InstrStage<3,  [ALU]>]>,
407  InstrItinData<II_RESTORE         , [InstrStage<3,  [ALU]>]>,
408  InstrItinData<II_SB              , [InstrStage<1,  [ALU]>]>,
409  InstrItinData<II_SH              , [InstrStage<1,  [ALU]>]>,
410  InstrItinData<II_SHE             , [InstrStage<1,  [ALU]>]>,
411  InstrItinData<II_SW              , [InstrStage<1,  [ALU]>]>,
412  InstrItinData<II_SWL             , [InstrStage<1,  [ALU]>]>,
413  InstrItinData<II_SWR             , [InstrStage<1,  [ALU]>]>,
414  InstrItinData<II_SDL             , [InstrStage<1,  [ALU]>]>,
415  InstrItinData<II_SDR             , [InstrStage<1,  [ALU]>]>,
416  InstrItinData<II_SD              , [InstrStage<1,  [ALU]>]>,
417  InstrItinData<II_SC              , [InstrStage<1,  [ALU]>]>,
418  InstrItinData<II_SCD             , [InstrStage<1,  [ALU]>]>,
419  InstrItinData<II_SAVE            , [InstrStage<1,  [ALU]>]>,
420  InstrItinData<II_SELCCZ          , [InstrStage<1,  [ALU]>]>,
421  InstrItinData<II_SEQ_SNE         , [InstrStage<1,  [ALU]>]>,
422  InstrItinData<II_SEQI_SNEI       , [InstrStage<1,  [ALU]>]>,
423  InstrItinData<II_SLTI_SLTIU      , [InstrStage<1,  [ALU]>]>,
424  InstrItinData<II_SLT_SLTU        , [InstrStage<1,  [ALU]>]>,
425  InstrItinData<II_B               , [InstrStage<1,  [ALU]>]>,
426  InstrItinData<II_BALC            , [InstrStage<1,  [ALU]>]>,
427  InstrItinData<II_BBIT            , [InstrStage<1,  [ALU]>]>,
428  InstrItinData<II_BC              , [InstrStage<1,  [ALU]>]>,
429  InstrItinData<II_BC1F            , [InstrStage<1,  [ALU]>]>,
430  InstrItinData<II_BC1FL           , [InstrStage<1,  [ALU]>]>,
431  InstrItinData<II_BC1T            , [InstrStage<1,  [ALU]>]>,
432  InstrItinData<II_BC1TL           , [InstrStage<1,  [ALU]>]>,
433  InstrItinData<II_BC1CCZ          , [InstrStage<1,  [ALU]>]>,
434  InstrItinData<II_BCC             , [InstrStage<1,  [ALU]>]>,
435  InstrItinData<II_BCCC            , [InstrStage<1,  [ALU]>]>,
436  InstrItinData<II_BCCZ            , [InstrStage<1,  [ALU]>]>,
437  InstrItinData<II_BCCZAL          , [InstrStage<1,  [ALU]>]>,
438  InstrItinData<II_BCCZALS         , [InstrStage<1,  [ALU]>]>,
439  InstrItinData<II_BCCZC           , [InstrStage<1,  [ALU]>]>,
440  InstrItinData<II_IndirectBranchPseudo, [InstrStage<1,  [ALU]>]>,
441  InstrItinData<II_J               , [InstrStage<1,  [ALU]>]>,
442  InstrItinData<II_JAL             , [InstrStage<1,  [ALU]>]>,
443  InstrItinData<II_JALR            , [InstrStage<1,  [ALU]>]>,
444  InstrItinData<II_JALR_HB         , [InstrStage<1,  [ALU]>]>,
445  InstrItinData<II_JALRC           , [InstrStage<1,  [ALU]>]>,
446  InstrItinData<II_JALRS           , [InstrStage<1,  [ALU]>]>,
447  InstrItinData<II_JALS            , [InstrStage<1,  [ALU]>]>,
448  InstrItinData<II_JIC             , [InstrStage<1,  [ALU]>]>,
449  InstrItinData<II_JIALC           , [InstrStage<1,  [ALU]>]>,
450  InstrItinData<II_JR              , [InstrStage<1,  [ALU]>]>,
451  InstrItinData<II_JR_HB           , [InstrStage<1,  [ALU]>]>,
452  InstrItinData<II_JRADDIUSP       , [InstrStage<1,  [ALU]>]>,
453  InstrItinData<II_JRC             , [InstrStage<1,  [ALU]>]>,
454  InstrItinData<II_ReturnPseudo    , [InstrStage<1,  [ALU]>]>,
455  InstrItinData<IIPseudo           , [InstrStage<1,  [ALU]>]>,
456  InstrItinData<II_DMUH            , [InstrStage<17, [IMULDIV]>]>,
457  InstrItinData<II_DMUHU           , [InstrStage<17, [IMULDIV]>]>,
458  InstrItinData<II_ERET            , [InstrStage<1,  [ALU]>]>,
459  InstrItinData<II_DERET           , [InstrStage<1,  [ALU]>]>,
460  InstrItinData<II_ERETNC          , [InstrStage<1,  [ALU]>]>,
461  InstrItinData<II_EHB             , [InstrStage<1,  [ALU]>]>,
462  InstrItinData<II_SDBBP           , [InstrStage<1,  [ALU]>]>,
463  InstrItinData<II_SSNOP           , [InstrStage<1,  [ALU]>]>,
464  InstrItinData<II_SYSCALL         , [InstrStage<1,  [ALU]>]>,
465  InstrItinData<II_PAUSE           , [InstrStage<1,  [ALU]>]>,
466  InstrItinData<II_WAIT            , [InstrStage<1,  [ALU]>]>,
467  InstrItinData<II_EI              , [InstrStage<1,  [ALU]>]>,
468  InstrItinData<II_DI              , [InstrStage<1,  [ALU]>]>,
469  InstrItinData<II_TEQ             , [InstrStage<1,  [ALU]>]>,
470  InstrItinData<II_TEQI            , [InstrStage<1,  [ALU]>]>,
471  InstrItinData<II_TGE             , [InstrStage<1,  [ALU]>]>,
472  InstrItinData<II_TGEI            , [InstrStage<1,  [ALU]>]>,
473  InstrItinData<II_TGEIU           , [InstrStage<1,  [ALU]>]>,
474  InstrItinData<II_TGEU            , [InstrStage<1,  [ALU]>]>,
475  InstrItinData<II_TNE             , [InstrStage<1,  [ALU]>]>,
476  InstrItinData<II_TNEI            , [InstrStage<1,  [ALU]>]>,
477  InstrItinData<II_TLT             , [InstrStage<1,  [ALU]>]>,
478  InstrItinData<II_TLTI            , [InstrStage<1,  [ALU]>]>,
479  InstrItinData<II_TLTU            , [InstrStage<1,  [ALU]>]>,
480  InstrItinData<II_TTLTIU          , [InstrStage<1,  [ALU]>]>,
481  InstrItinData<II_TLBP            , [InstrStage<1,  [ALU]>]>,
482  InstrItinData<II_TLBR            , [InstrStage<1,  [ALU]>]>,
483  InstrItinData<II_TLBWI           , [InstrStage<1,  [ALU]>]>,
484  InstrItinData<II_TLBWR           , [InstrStage<1,  [ALU]>]>,
485  InstrItinData<II_TRAP            , [InstrStage<1,  [ALU]>]>,
486  InstrItinData<II_BREAK           , [InstrStage<1,  [ALU]>]>,
487  InstrItinData<II_SYNC            , [InstrStage<1,  [ALU]>]>,
488  InstrItinData<II_SYNCI           , [InstrStage<1,  [ALU]>]>,
489  InstrItinData<II_DMUL            , [InstrStage<17, [IMULDIV]>]>,
490  InstrItinData<II_DMULT           , [InstrStage<17, [IMULDIV]>]>,
491  InstrItinData<II_DMULTU          , [InstrStage<17, [IMULDIV]>]>,
492  InstrItinData<II_DMULU           , [InstrStage<17, [IMULDIV]>]>,
493  InstrItinData<II_MADD            , [InstrStage<17, [IMULDIV]>]>,
494  InstrItinData<II_MADDU           , [InstrStage<17, [IMULDIV]>]>,
495  InstrItinData<II_MFHI_MFLO       , [InstrStage<1,  [IMULDIV]>]>,
496  InstrItinData<II_MOD             , [InstrStage<38, [IMULDIV]>]>,
497  InstrItinData<II_MODU            , [InstrStage<38, [IMULDIV]>]>,
498  InstrItinData<II_MSUB            , [InstrStage<17, [IMULDIV]>]>,
499  InstrItinData<II_MSUBU           , [InstrStage<17, [IMULDIV]>]>,
500  InstrItinData<II_MTHI_MTLO       , [InstrStage<1,  [IMULDIV]>]>,
501  InstrItinData<II_MUH             , [InstrStage<17, [IMULDIV]>]>,
502  InstrItinData<II_MUHU            , [InstrStage<17, [IMULDIV]>]>,
503  InstrItinData<II_MUL             , [InstrStage<17, [IMULDIV]>]>,
504  InstrItinData<II_MULT            , [InstrStage<17, [IMULDIV]>]>,
505  InstrItinData<II_MULTU           , [InstrStage<17, [IMULDIV]>]>,
506  InstrItinData<II_MULU            , [InstrStage<17, [IMULDIV]>]>,
507  InstrItinData<II_MSUB            , [InstrStage<17, [IMULDIV]>]>,
508  InstrItinData<II_MSUBU           , [InstrStage<17, [IMULDIV]>]>,
509  InstrItinData<II_DIV             , [InstrStage<38, [IMULDIV]>]>,
510  InstrItinData<II_DIVU            , [InstrStage<38, [IMULDIV]>]>,
511  InstrItinData<II_DDIV            , [InstrStage<38, [IMULDIV]>]>,
512  InstrItinData<II_DDIVU           , [InstrStage<38, [IMULDIV]>]>,
513  InstrItinData<II_CEIL            , [InstrStage<1,  [ALU]>]>,
514  InstrItinData<II_CVT             , [InstrStage<1,  [ALU]>]>,
515  InstrItinData<II_ABS             , [InstrStage<1,  [ALU]>]>,
516  InstrItinData<II_FLOOR           , [InstrStage<1,  [ALU]>]>,
517  InstrItinData<II_NEG             , [InstrStage<1,  [ALU]>]>,
518  InstrItinData<II_ROUND           , [InstrStage<1,  [ALU]>]>,
519  InstrItinData<II_TRUNC           , [InstrStage<1,  [ALU]>]>,
520  InstrItinData<II_MOV_D           , [InstrStage<2,  [ALU]>]>,
521  InstrItinData<II_MOV_S           , [InstrStage<2,  [ALU]>]>,
522  InstrItinData<II_CFC1            , [InstrStage<2,  [ALU]>]>,
523  InstrItinData<II_CTC1            , [InstrStage<2,  [ALU]>]>,
524  InstrItinData<II_MOVF_D          , [InstrStage<2,  [ALU]>]>,
525  InstrItinData<II_MOVF_S          , [InstrStage<2,  [ALU]>]>,
526  InstrItinData<II_MOVT_D          , [InstrStage<2,  [ALU]>]>,
527  InstrItinData<II_MOVT_S          , [InstrStage<2,  [ALU]>]>,
528  InstrItinData<II_MOVZ_D          , [InstrStage<2,  [ALU]>]>,
529  InstrItinData<II_MOVZ_S          , [InstrStage<2,  [ALU]>]>,
530  InstrItinData<II_C_CC_S          , [InstrStage<3,  [ALU]>]>,
531  InstrItinData<II_C_CC_D          , [InstrStage<3,  [ALU]>]>,
532  InstrItinData<II_ADD_D           , [InstrStage<4,  [ALU]>]>,
533  InstrItinData<II_ADD_S           , [InstrStage<4,  [ALU]>]>,
534  InstrItinData<II_SUB_D           , [InstrStage<4,  [ALU]>]>,
535  InstrItinData<II_SUB_S           , [InstrStage<4,  [ALU]>]>,
536  InstrItinData<II_MUL_S           , [InstrStage<7,  [ALU]>]>,
537  InstrItinData<II_MADD_S          , [InstrStage<7,  [ALU]>]>,
538  InstrItinData<II_MADDF_S         , [InstrStage<7,  [ALU]>]>,
539  InstrItinData<II_MSUB_S          , [InstrStage<7,  [ALU]>]>,
540  InstrItinData<II_MSUBF_S         , [InstrStage<7,  [ALU]>]>,
541  InstrItinData<II_NMADD_S         , [InstrStage<7,  [ALU]>]>,
542  InstrItinData<II_NMSUB_S         , [InstrStage<7,  [ALU]>]>,
543  InstrItinData<II_MUL_D           , [InstrStage<8,  [ALU]>]>,
544  InstrItinData<II_MADD_D          , [InstrStage<8,  [ALU]>]>,
545  InstrItinData<II_MADDF_D         , [InstrStage<8,  [ALU]>]>,
546  InstrItinData<II_MSUB_D          , [InstrStage<8,  [ALU]>]>,
547  InstrItinData<II_MSUBF_D         , [InstrStage<8,  [ALU]>]>,
548  InstrItinData<II_NMADD_D         , [InstrStage<8,  [ALU]>]>,
549  InstrItinData<II_NMSUB_D         , [InstrStage<8,  [ALU]>]>,
550  InstrItinData<II_DIV_S           , [InstrStage<23, [ALU]>]>,
551  InstrItinData<II_DIV_D           , [InstrStage<36, [ALU]>]>,
552  InstrItinData<II_SQRT_S          , [InstrStage<54, [ALU]>]>,
553  InstrItinData<II_SQRT_D          , [InstrStage<12, [ALU]>]>,
554  InstrItinData<II_WSBH            , [InstrStage<1,  [ALU]>]>,
555  InstrItinData<II_LSA             , [InstrStage<1,  [ALU]>]>,
556  InstrItinData<II_DLSA            , [InstrStage<1,  [ALU]>]>,
557  InstrItinData<II_LDC1            , [InstrStage<3,  [ALU]>]>,
558  InstrItinData<II_LDC2            , [InstrStage<3,  [ALU]>]>,
559  InstrItinData<II_LDC3            , [InstrStage<3,  [ALU]>]>,
560  InstrItinData<II_LWC1            , [InstrStage<3,  [ALU]>]>,
561  InstrItinData<II_LWC2            , [InstrStage<3,  [ALU]>]>,
562  InstrItinData<II_LWC3            , [InstrStage<3,  [ALU]>]>,
563  InstrItinData<II_LDXC1           , [InstrStage<3,  [ALU]>]>,
564  InstrItinData<II_LWXC1           , [InstrStage<3,  [ALU]>]>,
565  InstrItinData<II_LUXC1           , [InstrStage<3,  [ALU]>]>,
566  InstrItinData<II_SDC1            , [InstrStage<1,  [ALU]>]>,
567  InstrItinData<II_SDC2            , [InstrStage<1,  [ALU]>]>,
568  InstrItinData<II_SDC3            , [InstrStage<1,  [ALU]>]>,
569  InstrItinData<II_SWC1            , [InstrStage<1,  [ALU]>]>,
570  InstrItinData<II_SWC2            , [InstrStage<1,  [ALU]>]>,
571  InstrItinData<II_SWC3            , [InstrStage<1,  [ALU]>]>,
572  InstrItinData<II_SDXC1           , [InstrStage<1,  [ALU]>]>,
573  InstrItinData<II_SWXC1           , [InstrStage<1,  [ALU]>]>,
574  InstrItinData<II_SUXC1           , [InstrStage<1,  [ALU]>]>,
575  InstrItinData<II_DMFC0           , [InstrStage<2,  [ALU]>]>,
576  InstrItinData<II_DMFC1           , [InstrStage<2,  [ALU]>]>,
577  InstrItinData<II_DMFC2           , [InstrStage<2,  [ALU]>]>,
578  InstrItinData<II_DMTC0           , [InstrStage<2,  [ALU]>]>,
579  InstrItinData<II_DMTC1           , [InstrStage<2,  [ALU]>]>,
580  InstrItinData<II_DMTC2           , [InstrStage<2,  [ALU]>]>,
581  InstrItinData<II_MFC0            , [InstrStage<2,  [ALU]>]>,
582  InstrItinData<II_MFC1            , [InstrStage<2,  [ALU]>]>,
583  InstrItinData<II_MFC2            , [InstrStage<2,  [ALU]>]>,
584  InstrItinData<II_MTC0            , [InstrStage<2,  [ALU]>]>,
585  InstrItinData<II_MTC1            , [InstrStage<2,  [ALU]>]>,
586  InstrItinData<II_MTC2            , [InstrStage<2,  [ALU]>]>,
587  InstrItinData<II_MFHC1           , [InstrStage<2,  [ALU]>]>,
588  InstrItinData<II_MTHC1           , [InstrStage<2,  [ALU]>]>,
589  InstrItinData<II_CACHE           , [InstrStage<1,  [ALU]>]>,
590  InstrItinData<II_PREF            , [InstrStage<1,  [ALU]>]>,
591  InstrItinData<II_CACHEE          , [InstrStage<1,  [ALU]>]>,
592  InstrItinData<II_PREFE           , [InstrStage<1,  [ALU]>]>,
593  InstrItinData<II_TLBINV          , [InstrStage<1,  [ALU]>]>,
594  InstrItinData<II_TLBINVF         , [InstrStage<1,  [ALU]>]>,
595  InstrItinData<II_LLE             , [InstrStage<3,  [ALU]>]>,
596  InstrItinData<II_SCE             , [InstrStage<1,  [ALU]>]>
597]>;
598
599include "MipsScheduleP5600.td"
600