xref: /llvm-project/llvm/lib/Target/PowerPC/PPCSchedule440.td (revision 2946cd701067404b99c39fb29dc9c74bd7193eb3)
1b22310fdSJia Liu//===-- PPCSchedule440.td - PPC 440 Scheduling Definitions -*- tablegen -*-===//
2ad677b64SHal Finkel//
3*2946cd70SChandler Carruth// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*2946cd70SChandler Carruth// See https://llvm.org/LICENSE.txt for license information.
5*2946cd70SChandler Carruth// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6ad677b64SHal Finkel//
7ad677b64SHal Finkel//===----------------------------------------------------------------------===//
8ad677b64SHal Finkel
9ad677b64SHal Finkel// Primary reference:
10afa70aa2SHal Finkel// PowerPC 440x6 Embedded Processor Core User's Manual.
11ad677b64SHal Finkel// IBM (as updated in) 2010.
12ad677b64SHal Finkel
13ad677b64SHal Finkel// The basic PPC 440 does not include a floating-point unit; the pipeline
14ad677b64SHal Finkel// timings here are constructed to match the FP2 unit shipped with the
15ad677b64SHal Finkel// PPC-440- and PPC-450-based Blue Gene (L and P) supercomputers.
16ad677b64SHal Finkel// References:
17ad677b64SHal Finkel// S. Chatterjee, et al. Design and exploitation of a high-performance
18ad677b64SHal Finkel// SIMD floating-point unit for Blue Gene/L.
19ad677b64SHal Finkel// IBM J. Res. & Dev. 49 (2/3) March/May 2005.
20ad677b64SHal Finkel// also:
21ad677b64SHal Finkel// Carlos Sosa and Brant Knudson. IBM System Blue Gene Solution:
22ad677b64SHal Finkel// Blue Gene/P Application Development.
23ad677b64SHal Finkel// IBM (as updated in) 2009.
24ad677b64SHal Finkel
25ad677b64SHal Finkel//===----------------------------------------------------------------------===//
26ad677b64SHal Finkel// Functional units on the PowerPC 440/450 chip sets
27ad677b64SHal Finkel//
2892720ab1SHal Finkeldef P440_DISS1  : FuncUnit; // Issue unit 1
2992720ab1SHal Finkeldef P440_DISS2  : FuncUnit; // Issue unit 2
3092720ab1SHal Finkeldef P440_LRACC  : FuncUnit; // Register access and dispatch for
31ad677b64SHal Finkel                            // the simple integer (J-pipe) and
32ad677b64SHal Finkel                            // load/store (L-pipe) pipelines
3392720ab1SHal Finkeldef P440_IRACC  : FuncUnit; // Register access and dispatch for
34ad677b64SHal Finkel                            // the complex integer (I-pipe) pipeline
3592720ab1SHal Finkeldef P440_FRACC  : FuncUnit; // Register access and dispatch for
36ad677b64SHal Finkel                            // the floating-point execution (F-pipe) pipeline
3792720ab1SHal Finkeldef P440_IEXE1  : FuncUnit; // Execution stage 1 for the I pipeline
3892720ab1SHal Finkeldef P440_IEXE2  : FuncUnit; // Execution stage 2 for the I pipeline
3992720ab1SHal Finkeldef P440_IWB    : FuncUnit; // Write-back unit for the I pipeline
4092720ab1SHal Finkeldef P440_JEXE1  : FuncUnit; // Execution stage 1 for the J pipeline
4192720ab1SHal Finkeldef P440_JEXE2  : FuncUnit; // Execution stage 2 for the J pipeline
4292720ab1SHal Finkeldef P440_JWB    : FuncUnit; // Write-back unit for the J pipeline
4392720ab1SHal Finkeldef P440_AGEN   : FuncUnit; // Address generation for the L pipeline
4492720ab1SHal Finkeldef P440_CRD    : FuncUnit; // D-cache access for the L pipeline
4592720ab1SHal Finkeldef P440_LWB    : FuncUnit; // Write-back unit for the L pipeline
4692720ab1SHal Finkeldef P440_FEXE1  : FuncUnit; // Execution stage 1 for the F pipeline
4792720ab1SHal Finkeldef P440_FEXE2  : FuncUnit; // Execution stage 2 for the F pipeline
4892720ab1SHal Finkeldef P440_FEXE3  : FuncUnit; // Execution stage 3 for the F pipeline
4992720ab1SHal Finkeldef P440_FEXE4  : FuncUnit; // Execution stage 4 for the F pipeline
5092720ab1SHal Finkeldef P440_FEXE5  : FuncUnit; // Execution stage 5 for the F pipeline
5192720ab1SHal Finkeldef P440_FEXE6  : FuncUnit; // Execution stage 6 for the F pipeline
5292720ab1SHal Finkeldef P440_FWB    : FuncUnit; // Write-back unit for the F pipeline
53ad677b64SHal Finkel
5492720ab1SHal Finkeldef P440_LWARX_Hold : FuncUnit; // This is a pseudo-unit which is used
55ad677b64SHal Finkel                                // to make sure that no lwarx/stwcx.
56ad677b64SHal Finkel                                // instructions are issued while another
57ad677b64SHal Finkel                                // lwarx/stwcx. is in the L pipe.
58ad677b64SHal Finkel
5992720ab1SHal Finkeldef P440_GPR_Bypass : Bypass; // The bypass for general-purpose regs.
6092720ab1SHal Finkeldef P440_FPR_Bypass : Bypass; // The bypass for floating-point regs.
61ad677b64SHal Finkel
62ad677b64SHal Finkel// Notes:
63ad677b64SHal Finkel// Instructions are held in the FRACC, LRACC and IRACC pipeline
64ad677b64SHal Finkel// stages until their source operands become ready. Exceptions:
65ad677b64SHal Finkel//  - Store instructions will hold in the AGEN stage
66ad677b64SHal Finkel//  - The integer multiply-accumulate instruction will hold in
67ad677b64SHal Finkel//    the IEXE1 stage
68ad677b64SHal Finkel//
69ad677b64SHal Finkel// For most I-pipe operations, the result is available at the end of
70ad677b64SHal Finkel// the IEXE1 stage. Operations such as multiply and divide must
71ad677b64SHal Finkel// continue to execute in IEXE2 and IWB. Divide resides in IWB for
72ad677b64SHal Finkel// 33 cycles (multiply also calculates its result in IWB). For all
73ad677b64SHal Finkel// J-pipe instructions, the result is available
74ad677b64SHal Finkel// at the end of the JEXE1 stage. Loads have a 3-cycle latency
75ad677b64SHal Finkel// (data is not available until after the LWB stage).
76ad677b64SHal Finkel//
77ad677b64SHal Finkel// The L1 cache hit latency is four cycles for floating point loads
78ad677b64SHal Finkel// and three cycles for integer loads.
79ad677b64SHal Finkel//
80ad677b64SHal Finkel// The stwcx. instruction requires both the LRACC and the IRACC
81ad677b64SHal Finkel// dispatch stages. It must be issued from DISS0.
82ad677b64SHal Finkel//
83ad677b64SHal Finkel// All lwarx/stwcx. instructions hold in LRACC if another
84ad677b64SHal Finkel// uncommitted lwarx/stwcx. is in AGEN, CRD, or LWB.
85ad677b64SHal Finkel//
86ad677b64SHal Finkel// msync (a.k.a. sync) and mbar will hold in LWB until all load/store
87ad677b64SHal Finkel// resources are empty. AGEN and CRD are held empty until the msync/mbar
88ad677b64SHal Finkel// commits.
89ad677b64SHal Finkel//
90ad677b64SHal Finkel// Most floating-point instructions, computational and move,
91ad677b64SHal Finkel// have a 5-cycle latency. Divide takes longer (30 cycles). Instructions that
92ad677b64SHal Finkel// update the CR take 2 cycles. Stores take 3 cycles and, as mentioned above,
93ad677b64SHal Finkel// loads take 4 cycles (for L1 hit).
94ad677b64SHal Finkel
95ad677b64SHal Finkel//
96ad677b64SHal Finkel// This file defines the itinerary class data for the PPC 440 processor.
97ad677b64SHal Finkel//
98ad677b64SHal Finkel//===----------------------------------------------------------------------===//
99ad677b64SHal Finkel
100ad677b64SHal Finkel
101ad677b64SHal Finkeldef PPC440Itineraries : ProcessorItineraries<
102dd063699SHal Finkel  [P440_DISS1, P440_DISS2, P440_FRACC, P440_IRACC, P440_IEXE1, P440_IEXE2,
103dd063699SHal Finkel   P440_IWB, P440_LRACC, P440_JEXE1, P440_JEXE2, P440_JWB, P440_AGEN, P440_CRD,
104dd063699SHal Finkel   P440_LWB, P440_FEXE1, P440_FEXE2, P440_FEXE3, P440_FEXE4, P440_FEXE5,
105dd063699SHal Finkel   P440_FEXE6, P440_FWB, P440_LWARX_Hold],
10692720ab1SHal Finkel  [P440_GPR_Bypass, P440_FPR_Bypass], [
107dd063699SHal Finkel  InstrItinData<IIC_IntSimple,  [InstrStage<1, [P440_DISS1, P440_DISS2]>,
10892720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC, P440_LRACC]>,
10992720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1, P440_JEXE1]>,
11092720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2, P440_JEXE2]>,
11192720ab1SHal Finkel                                 InstrStage<1, [P440_IWB, P440_JWB]>],
112a10bd1d2SHal Finkel                                [2, 0, 0],
11392720ab1SHal Finkel                                [P440_GPR_Bypass,
11492720ab1SHal Finkel                                 P440_GPR_Bypass, P440_GPR_Bypass]>,
115dd063699SHal Finkel  InstrItinData<IIC_IntGeneral, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
11692720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC, P440_LRACC]>,
11792720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1, P440_JEXE1]>,
11892720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2, P440_JEXE2]>,
11992720ab1SHal Finkel                                 InstrStage<1, [P440_IWB, P440_JWB]>],
120a10bd1d2SHal Finkel                                [2, 0, 0],
12192720ab1SHal Finkel                                [P440_GPR_Bypass,
12292720ab1SHal Finkel                                 P440_GPR_Bypass, P440_GPR_Bypass]>,
12311d3c561SHal Finkel  InstrItinData<IIC_IntISEL,    [InstrStage<1, [P440_DISS1, P440_DISS2]>,
12411d3c561SHal Finkel                                 InstrStage<1, [P440_IRACC, P440_LRACC]>,
12511d3c561SHal Finkel                                 InstrStage<1, [P440_IEXE1, P440_JEXE1]>,
12611d3c561SHal Finkel                                 InstrStage<1, [P440_IEXE2, P440_JEXE2]>,
12711d3c561SHal Finkel                                 InstrStage<1, [P440_IWB, P440_JWB]>],
12811d3c561SHal Finkel                                [2, 0, 0, 0],
12911d3c561SHal Finkel                                [P440_GPR_Bypass,
13011d3c561SHal Finkel                                 P440_GPR_Bypass, P440_GPR_Bypass, NoBypass]>,
131dd063699SHal Finkel  InstrItinData<IIC_IntCompare, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
13292720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC, P440_LRACC]>,
13392720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1, P440_JEXE1]>,
13492720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2, P440_JEXE2]>,
13592720ab1SHal Finkel                                 InstrStage<1, [P440_IWB, P440_JWB]>],
136a10bd1d2SHal Finkel                                [2, 0, 0],
13792720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>,
138dd063699SHal Finkel  InstrItinData<IIC_IntDivW,    [InstrStage<1, [P440_DISS1, P440_DISS2]>,
13992720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
14092720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
14192720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
14292720ab1SHal Finkel                                 InstrStage<33, [P440_IWB]>],
143a10bd1d2SHal Finkel                                [36, 0, 0],
14492720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>,
145dd063699SHal Finkel  InstrItinData<IIC_IntMFFS,    [InstrStage<1, [P440_DISS1, P440_DISS2]>,
14692720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
14792720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
14892720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
14992720ab1SHal Finkel                                 InstrStage<1, [P440_IWB]>],
150a10bd1d2SHal Finkel                                [3, 0, 0],
15192720ab1SHal Finkel                                [P440_GPR_Bypass,
15292720ab1SHal Finkel                                 P440_GPR_Bypass, P440_GPR_Bypass]>,
153dd063699SHal Finkel  InstrItinData<IIC_IntMTFSB0,  [InstrStage<1, [P440_DISS1, P440_DISS2]>,
15492720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
15592720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
15692720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
15792720ab1SHal Finkel                                 InstrStage<1, [P440_IWB]>],
158a10bd1d2SHal Finkel                                [3, 0, 0],
15992720ab1SHal Finkel                                [P440_GPR_Bypass,
16092720ab1SHal Finkel                                 P440_GPR_Bypass, P440_GPR_Bypass]>,
161dd063699SHal Finkel  InstrItinData<IIC_IntMulHW,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
16292720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
16392720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
16492720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
16592720ab1SHal Finkel                                 InstrStage<1, [P440_IWB]>],
166a10bd1d2SHal Finkel                                [4, 0, 0],
16792720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>,
168dd063699SHal Finkel  InstrItinData<IIC_IntMulHWU,  [InstrStage<1, [P440_DISS1, P440_DISS2]>,
16992720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
17092720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
17192720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
17292720ab1SHal Finkel                                 InstrStage<1, [P440_IWB]>],
173a10bd1d2SHal Finkel                                [4, 0, 0],
17492720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>,
175dd063699SHal Finkel  InstrItinData<IIC_IntMulLI,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
17692720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
17792720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
17892720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
17992720ab1SHal Finkel                                 InstrStage<1, [P440_IWB]>],
180a10bd1d2SHal Finkel                                [4, 0, 0],
18192720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>,
182dd063699SHal Finkel  InstrItinData<IIC_IntRotate,  [InstrStage<1, [P440_DISS1, P440_DISS2]>,
18392720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC, P440_LRACC]>,
18492720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1, P440_JEXE1]>,
18592720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2, P440_JEXE2]>,
18692720ab1SHal Finkel                                 InstrStage<1, [P440_IWB, P440_JWB]>],
187a10bd1d2SHal Finkel                                [2, 0, 0],
18892720ab1SHal Finkel                                [P440_GPR_Bypass,
18992720ab1SHal Finkel                                 P440_GPR_Bypass, P440_GPR_Bypass]>,
190dd063699SHal Finkel  InstrItinData<IIC_IntShift,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
19192720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC, P440_LRACC]>,
19292720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1, P440_JEXE1]>,
19392720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2, P440_JEXE2]>,
19492720ab1SHal Finkel                                 InstrStage<1, [P440_IWB, P440_JWB]>],
195a10bd1d2SHal Finkel                                [2, 0, 0],
19692720ab1SHal Finkel                                [P440_GPR_Bypass,
19792720ab1SHal Finkel                                 P440_GPR_Bypass, P440_GPR_Bypass]>,
198dd063699SHal Finkel  InstrItinData<IIC_IntTrapW,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
19992720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
20092720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
20192720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
20292720ab1SHal Finkel                                 InstrStage<1, [P440_IWB]>],
203a10bd1d2SHal Finkel                                [2, 0],
20492720ab1SHal Finkel                                [P440_GPR_Bypass, P440_GPR_Bypass]>,
205dd063699SHal Finkel  InstrItinData<IIC_BrB,        [InstrStage<1, [P440_DISS1, P440_DISS2]>,
20692720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
20792720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
20892720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
20992720ab1SHal Finkel                                 InstrStage<1, [P440_IWB]>],
210a10bd1d2SHal Finkel                                [4, 0],
21192720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
212dd063699SHal Finkel  InstrItinData<IIC_BrCR,       [InstrStage<1, [P440_DISS1, P440_DISS2]>,
21392720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
21492720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
21592720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
21692720ab1SHal Finkel                                 InstrStage<1, [P440_IWB]>],
217a10bd1d2SHal Finkel                                [4, 0, 0],
21892720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>,
219dd063699SHal Finkel  InstrItinData<IIC_BrMCR,      [InstrStage<1, [P440_DISS1, P440_DISS2]>,
22092720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
22192720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
22292720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
22392720ab1SHal Finkel                                 InstrStage<1, [P440_IWB]>],
224a10bd1d2SHal Finkel                                [4, 0, 0],
22592720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>,
226dd063699SHal Finkel  InstrItinData<IIC_BrMCRX,     [InstrStage<1, [P440_DISS1, P440_DISS2]>,
22792720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
22892720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
22992720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
23092720ab1SHal Finkel                                 InstrStage<1, [P440_IWB]>],
231a10bd1d2SHal Finkel                                [4, 0, 0],
23292720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>,
233dd063699SHal Finkel  InstrItinData<IIC_LdStDCBA,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
23492720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
23592720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
23692720ab1SHal Finkel                                 InstrStage<1, [P440_CRD]>,
23792720ab1SHal Finkel                                 InstrStage<1, [P440_LWB]>],
2384035e8d8SHal Finkel                                [1, 1],
23992720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
240dd063699SHal Finkel  InstrItinData<IIC_LdStDCBF,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
24192720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
24292720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
24392720ab1SHal Finkel                                 InstrStage<1, [P440_CRD]>,
24492720ab1SHal Finkel                                 InstrStage<1, [P440_LWB]>],
2454035e8d8SHal Finkel                                [1, 1],
24692720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
247dd063699SHal Finkel  InstrItinData<IIC_LdStDCBI,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
24892720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
24992720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
25092720ab1SHal Finkel                                 InstrStage<1, [P440_CRD]>,
25192720ab1SHal Finkel                                 InstrStage<1, [P440_LWB]>],
2524035e8d8SHal Finkel                                [1, 1],
25392720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
254dd063699SHal Finkel  InstrItinData<IIC_LdStLoad,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
25592720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
25692720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
25792720ab1SHal Finkel                                 InstrStage<1, [P440_CRD]>,
25892720ab1SHal Finkel                                 InstrStage<2, [P440_LWB]>],
2594035e8d8SHal Finkel                                [5, 1, 1],
26092720ab1SHal Finkel                                [P440_GPR_Bypass, P440_GPR_Bypass]>,
261dd063699SHal Finkel  InstrItinData<IIC_LdStLoadUpd,[InstrStage<1, [P440_DISS1, P440_DISS2]>,
26292720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
26392720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
26492720ab1SHal Finkel                                 InstrStage<1, [P440_CRD]>,
26592720ab1SHal Finkel                                 InstrStage<2, [P440_LWB]>],
2664035e8d8SHal Finkel                                [5, 2, 1, 1],
26792720ab1SHal Finkel                                [P440_GPR_Bypass, P440_GPR_Bypass]>,
26846402a42SHal Finkel  InstrItinData<IIC_LdStLoadUpdX,[InstrStage<1, [P440_DISS1, P440_DISS2]>,
26946402a42SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
27046402a42SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
27146402a42SHal Finkel                                 InstrStage<1, [P440_CRD]>,
27246402a42SHal Finkel                                 InstrStage<2, [P440_LWB]>],
27346402a42SHal Finkel                                [5, 2, 1, 1],
27446402a42SHal Finkel                                [P440_GPR_Bypass, P440_GPR_Bypass]>,
275dd063699SHal Finkel  InstrItinData<IIC_LdStStore,  [InstrStage<1, [P440_DISS1, P440_DISS2]>,
27692720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
27792720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
27892720ab1SHal Finkel                                 InstrStage<1, [P440_CRD]>,
27992720ab1SHal Finkel                                 InstrStage<2, [P440_LWB]>],
2804035e8d8SHal Finkel                                [1, 1, 1],
28192720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
282dd063699SHal Finkel  InstrItinData<IIC_LdStICBI,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
28392720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
28492720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
28592720ab1SHal Finkel                                 InstrStage<1, [P440_CRD]>,
28692720ab1SHal Finkel                                 InstrStage<1, [P440_LWB]>],
2874035e8d8SHal Finkel                                [4, 1, 1],
28892720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
289dd063699SHal Finkel  InstrItinData<IIC_LdStSTFD,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
29092720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
29192720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
29292720ab1SHal Finkel                                 InstrStage<1, [P440_CRD]>,
29392720ab1SHal Finkel                                 InstrStage<1, [P440_LWB]>],
2944035e8d8SHal Finkel                                [1, 1, 1],
29592720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>,
296dd063699SHal Finkel  InstrItinData<IIC_LdStSTFDU,  [InstrStage<1, [P440_DISS1, P440_DISS2]>,
29792720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
29892720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
29992720ab1SHal Finkel                                 InstrStage<1, [P440_CRD]>,
30092720ab1SHal Finkel                                 InstrStage<1, [P440_LWB]>],
3014035e8d8SHal Finkel                                [2, 1, 1, 1],
30292720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>,
303dd063699SHal Finkel  InstrItinData<IIC_LdStLFD,    [InstrStage<1, [P440_DISS1, P440_DISS2]>,
30492720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
30592720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
30692720ab1SHal Finkel                                 InstrStage<1, [P440_CRD]>,
30792720ab1SHal Finkel                                 InstrStage<2, [P440_LWB]>],
308a10bd1d2SHal Finkel                                [5, 1, 1],
30992720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>,
310dd063699SHal Finkel  InstrItinData<IIC_LdStLFDU,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
31192720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
31292720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
31392720ab1SHal Finkel                                 InstrStage<1, [P440_CRD]>,
31492720ab1SHal Finkel                                 InstrStage<1, [P440_LWB]>],
3154035e8d8SHal Finkel                                [5, 2, 1, 1],
31692720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>,
31746402a42SHal Finkel  InstrItinData<IIC_LdStLFDUX,  [InstrStage<1, [P440_DISS1, P440_DISS2]>,
31846402a42SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
31946402a42SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
32046402a42SHal Finkel                                 InstrStage<1, [P440_CRD]>,
32146402a42SHal Finkel                                 InstrStage<1, [P440_LWB]>],
32246402a42SHal Finkel                                [5, 2, 1, 1],
32346402a42SHal Finkel                                [NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>,
324dd063699SHal Finkel  InstrItinData<IIC_LdStLHA,    [InstrStage<1, [P440_DISS1, P440_DISS2]>,
32592720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
32692720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
32792720ab1SHal Finkel                                 InstrStage<1, [P440_CRD]>,
32892720ab1SHal Finkel                                 InstrStage<1, [P440_LWB]>],
3294035e8d8SHal Finkel                                [4, 1, 1],
33092720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
331dd063699SHal Finkel  InstrItinData<IIC_LdStLHAU,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
33292720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
33392720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
33492720ab1SHal Finkel                                 InstrStage<1, [P440_CRD]>,
33592720ab1SHal Finkel                                 InstrStage<1, [P440_LWB]>],
3364035e8d8SHal Finkel                                [4, 1, 1],
33792720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
33846402a42SHal Finkel  InstrItinData<IIC_LdStLHAUX,  [InstrStage<1, [P440_DISS1, P440_DISS2]>,
33946402a42SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
34046402a42SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
34146402a42SHal Finkel                                 InstrStage<1, [P440_CRD]>,
34246402a42SHal Finkel                                 InstrStage<1, [P440_LWB]>],
34346402a42SHal Finkel                                [4, 1, 1],
34446402a42SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
345dd063699SHal Finkel  InstrItinData<IIC_LdStLMW,    [InstrStage<1, [P440_DISS1, P440_DISS2]>,
34692720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
34792720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
34892720ab1SHal Finkel                                 InstrStage<1, [P440_CRD]>,
34992720ab1SHal Finkel                                 InstrStage<1, [P440_LWB]>],
3504035e8d8SHal Finkel                                [4, 1, 1],
35192720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
352dd063699SHal Finkel  InstrItinData<IIC_LdStLWARX,  [InstrStage<1, [P440_DISS1]>,
35392720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC], 0>,
35492720ab1SHal Finkel                                 InstrStage<4, [P440_LWARX_Hold], 0>,
35592720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
35692720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
35792720ab1SHal Finkel                                 InstrStage<1, [P440_CRD]>,
35892720ab1SHal Finkel                                 InstrStage<1, [P440_LWB]>],
3594035e8d8SHal Finkel                                [4, 1, 1],
36092720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
361dd063699SHal Finkel  InstrItinData<IIC_LdStSTD,    [InstrStage<1, [P440_DISS1, P440_DISS2]>,
36292720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
36392720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
36492720ab1SHal Finkel                                 InstrStage<1, [P440_CRD]>,
36592720ab1SHal Finkel                                 InstrStage<2, [P440_LWB]>],
3664035e8d8SHal Finkel                                [4, 1, 1],
36792720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
3689a0ed200SJinsong Ji  InstrItinData<IIC_LdStSTU,    [InstrStage<1, [P440_DISS1, P440_DISS2]>,
36992720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
37092720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
37192720ab1SHal Finkel                                 InstrStage<1, [P440_CRD]>,
37292720ab1SHal Finkel                                 InstrStage<2, [P440_LWB]>],
3734035e8d8SHal Finkel                                [2, 1, 1, 1],
37492720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
3759a0ed200SJinsong Ji  InstrItinData<IIC_LdStSTUX,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
37646402a42SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
37746402a42SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
37846402a42SHal Finkel                                 InstrStage<1, [P440_CRD]>,
37946402a42SHal Finkel                                 InstrStage<2, [P440_LWB]>],
38046402a42SHal Finkel                                [2, 1, 1, 1],
38146402a42SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
382dd063699SHal Finkel  InstrItinData<IIC_LdStSTDCX,  [InstrStage<1, [P440_DISS1]>,
38392720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC], 0>,
38492720ab1SHal Finkel                                 InstrStage<4, [P440_LWARX_Hold], 0>,
38592720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
38692720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
38792720ab1SHal Finkel                                 InstrStage<1, [P440_CRD]>,
38892720ab1SHal Finkel                                 InstrStage<1, [P440_LWB]>],
3894035e8d8SHal Finkel                                [4, 1, 1],
39092720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
391dd063699SHal Finkel  InstrItinData<IIC_LdStSTWCX,  [InstrStage<1, [P440_DISS1]>,
39292720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC], 0>,
39392720ab1SHal Finkel                                 InstrStage<4, [P440_LWARX_Hold], 0>,
39492720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
39592720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN]>,
39692720ab1SHal Finkel                                 InstrStage<1, [P440_CRD]>,
39792720ab1SHal Finkel                                 InstrStage<1, [P440_LWB]>],
3984035e8d8SHal Finkel                                [4, 1, 1],
39992720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
400dd063699SHal Finkel  InstrItinData<IIC_LdStSync,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
40192720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC]>,
40292720ab1SHal Finkel                                 InstrStage<3, [P440_AGEN], 1>,
40392720ab1SHal Finkel                                 InstrStage<2, [P440_CRD],  1>,
40492720ab1SHal Finkel                                 InstrStage<1, [P440_LWB]>]>,
405dd063699SHal Finkel  InstrItinData<IIC_SprISYNC,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
40692720ab1SHal Finkel                                 InstrStage<1, [P440_FRACC], 0>,
40792720ab1SHal Finkel                                 InstrStage<1, [P440_LRACC], 0>,
40892720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
40992720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE1], 0>,
41092720ab1SHal Finkel                                 InstrStage<1, [P440_AGEN],  0>,
41192720ab1SHal Finkel                                 InstrStage<1, [P440_JEXE1], 0>,
41292720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
41392720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE2], 0>,
41492720ab1SHal Finkel                                 InstrStage<1, [P440_CRD],   0>,
41592720ab1SHal Finkel                                 InstrStage<1, [P440_JEXE2], 0>,
41692720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
41792720ab1SHal Finkel                                 InstrStage<6, [P440_FEXE3], 0>,
41892720ab1SHal Finkel                                 InstrStage<6, [P440_LWB],   0>,
41992720ab1SHal Finkel                                 InstrStage<6, [P440_JWB],   0>,
42092720ab1SHal Finkel                                 InstrStage<6, [P440_IWB]>]>,
421dd063699SHal Finkel  InstrItinData<IIC_SprMFSR,    [InstrStage<1, [P440_DISS1, P440_DISS2]>,
42292720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
42392720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
42492720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
42592720ab1SHal Finkel                                 InstrStage<1, [P440_IWB]>],
426a10bd1d2SHal Finkel                                [2, 0],
42792720ab1SHal Finkel                                [P440_GPR_Bypass, P440_GPR_Bypass]>,
428dd063699SHal Finkel  InstrItinData<IIC_SprMTMSR,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
42992720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
43092720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
43192720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
43292720ab1SHal Finkel                                 InstrStage<1, [P440_IWB]>],
433a10bd1d2SHal Finkel                                [2, 0],
43492720ab1SHal Finkel                                [P440_GPR_Bypass, P440_GPR_Bypass]>,
435dd063699SHal Finkel  InstrItinData<IIC_SprMTSR,    [InstrStage<1, [P440_DISS1, P440_DISS2]>,
43692720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
43792720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
43892720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
43992720ab1SHal Finkel                                 InstrStage<3, [P440_IWB]>],
440a10bd1d2SHal Finkel                                [5, 0],
44192720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
442dd063699SHal Finkel  InstrItinData<IIC_SprTLBSYNC, [InstrStage<1, [P440_DISS1, P440_DISS2]>,
44392720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
44492720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
44592720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
44692720ab1SHal Finkel                                 InstrStage<1, [P440_IWB]>]>,
447dd063699SHal Finkel  InstrItinData<IIC_SprMFCR,    [InstrStage<1, [P440_DISS1, P440_DISS2]>,
44892720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
44992720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
45092720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
45192720ab1SHal Finkel                                 InstrStage<1, [P440_IWB]>],
452a10bd1d2SHal Finkel                                [4, 0],
45392720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
454dd063699SHal Finkel  InstrItinData<IIC_SprMFMSR,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
45592720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
45692720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
45792720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
45892720ab1SHal Finkel                                 InstrStage<1, [P440_IWB]>],
459a10bd1d2SHal Finkel                                [3, 0],
46092720ab1SHal Finkel                                [P440_GPR_Bypass, P440_GPR_Bypass]>,
461dd063699SHal Finkel  InstrItinData<IIC_SprMFSPR,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
46292720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
46392720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
46492720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
46592720ab1SHal Finkel                                 InstrStage<3, [P440_IWB]>],
466a10bd1d2SHal Finkel                                [6, 0],
46792720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
468dd063699SHal Finkel  InstrItinData<IIC_SprMFTB,    [InstrStage<1, [P440_DISS1, P440_DISS2]>,
46992720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
47092720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
47192720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
47292720ab1SHal Finkel                                 InstrStage<3, [P440_IWB]>],
473a10bd1d2SHal Finkel                                [6, 0],
47492720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
475dd063699SHal Finkel  InstrItinData<IIC_SprMTSPR,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
47692720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
47792720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
47892720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
47992720ab1SHal Finkel                                 InstrStage<3, [P440_IWB]>],
480a10bd1d2SHal Finkel                                [6, 0],
48192720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
482dd063699SHal Finkel  InstrItinData<IIC_SprMTSRIN,  [InstrStage<1, [P440_DISS1, P440_DISS2]>,
48392720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
48492720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
48592720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
48692720ab1SHal Finkel                                 InstrStage<3, [P440_IWB]>],
487a10bd1d2SHal Finkel                                [6, 0],
48892720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
489dd063699SHal Finkel  InstrItinData<IIC_SprRFI,     [InstrStage<1, [P440_DISS1, P440_DISS2]>,
49092720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
49192720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
49292720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
49392720ab1SHal Finkel                                 InstrStage<1, [P440_IWB]>],
494a10bd1d2SHal Finkel                                [4, 0],
49592720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
496dd063699SHal Finkel  InstrItinData<IIC_SprSC,      [InstrStage<1, [P440_DISS1, P440_DISS2]>,
49792720ab1SHal Finkel                                 InstrStage<1, [P440_IRACC]>,
49892720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE1]>,
49992720ab1SHal Finkel                                 InstrStage<1, [P440_IEXE2]>,
50092720ab1SHal Finkel                                 InstrStage<1, [P440_IWB]>],
501a10bd1d2SHal Finkel                                [4, 0],
50292720ab1SHal Finkel                                [NoBypass, P440_GPR_Bypass]>,
503dd063699SHal Finkel  InstrItinData<IIC_FPGeneral,  [InstrStage<1, [P440_DISS1, P440_DISS2]>,
50492720ab1SHal Finkel                                 InstrStage<1, [P440_FRACC]>,
50592720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE1]>,
50692720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE2]>,
50792720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE3]>,
50892720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE4]>,
50992720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE5]>,
51092720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE6]>,
51192720ab1SHal Finkel                                 InstrStage<1, [P440_FWB]>],
512a10bd1d2SHal Finkel                                [6, 0, 0],
51392720ab1SHal Finkel                                [P440_FPR_Bypass,
51492720ab1SHal Finkel                                 P440_FPR_Bypass, P440_FPR_Bypass]>,
515dd063699SHal Finkel  InstrItinData<IIC_FPAddSub,   [InstrStage<1, [P440_DISS1, P440_DISS2]>,
51692720ab1SHal Finkel                                 InstrStage<1, [P440_FRACC]>,
51792720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE1]>,
51892720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE2]>,
51992720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE3]>,
52092720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE4]>,
52192720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE5]>,
52292720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE6]>,
52392720ab1SHal Finkel                                 InstrStage<1, [P440_FWB]>],
524a10bd1d2SHal Finkel                                [6, 0, 0],
52592720ab1SHal Finkel                                [P440_FPR_Bypass,
52692720ab1SHal Finkel                                 P440_FPR_Bypass, P440_FPR_Bypass]>,
527dd063699SHal Finkel  InstrItinData<IIC_FPCompare,  [InstrStage<1, [P440_DISS1, P440_DISS2]>,
52892720ab1SHal Finkel                                 InstrStage<1, [P440_FRACC]>,
52992720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE1]>,
53092720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE2]>,
53192720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE3]>,
53292720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE4]>,
53392720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE5]>,
53492720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE6]>,
53592720ab1SHal Finkel                                 InstrStage<1, [P440_FWB]>],
536a10bd1d2SHal Finkel                                [6, 0, 0],
53792720ab1SHal Finkel                                [P440_FPR_Bypass, P440_FPR_Bypass,
53892720ab1SHal Finkel                                 P440_FPR_Bypass]>,
539dd063699SHal Finkel  InstrItinData<IIC_FPDivD,     [InstrStage<1, [P440_DISS1, P440_DISS2]>,
54092720ab1SHal Finkel                                 InstrStage<1, [P440_FRACC]>,
54192720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE1]>,
54292720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE2]>,
54392720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE3]>,
54492720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE4]>,
54592720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE5]>,
54692720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE6]>,
54792720ab1SHal Finkel                                 InstrStage<25, [P440_FWB]>],
548a10bd1d2SHal Finkel                                [31, 0, 0],
54992720ab1SHal Finkel                                [NoBypass, P440_FPR_Bypass, P440_FPR_Bypass]>,
550dd063699SHal Finkel  InstrItinData<IIC_FPDivS,     [InstrStage<1, [P440_DISS1, P440_DISS2]>,
55192720ab1SHal Finkel                                 InstrStage<1, [P440_FRACC]>,
55292720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE1]>,
55392720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE2]>,
55492720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE3]>,
55592720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE4]>,
55692720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE5]>,
55792720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE6]>,
55892720ab1SHal Finkel                                 InstrStage<13, [P440_FWB]>],
559a10bd1d2SHal Finkel                                [19, 0, 0],
56092720ab1SHal Finkel                                [NoBypass, P440_FPR_Bypass, P440_FPR_Bypass]>,
561dd063699SHal Finkel  InstrItinData<IIC_FPFused,    [InstrStage<1, [P440_DISS1, P440_DISS2]>,
56292720ab1SHal Finkel                                 InstrStage<1, [P440_FRACC]>,
56392720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE1]>,
56492720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE2]>,
56592720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE3]>,
56692720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE4]>,
56792720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE5]>,
56892720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE6]>,
56992720ab1SHal Finkel                                 InstrStage<1, [P440_FWB]>],
570a10bd1d2SHal Finkel                                [6, 0, 0, 0],
57192720ab1SHal Finkel                                [P440_FPR_Bypass,
57292720ab1SHal Finkel                                 P440_FPR_Bypass, P440_FPR_Bypass,
57392720ab1SHal Finkel                                 P440_FPR_Bypass]>,
574dd063699SHal Finkel  InstrItinData<IIC_FPRes,      [InstrStage<1, [P440_DISS1, P440_DISS2]>,
57592720ab1SHal Finkel                                 InstrStage<1, [P440_FRACC]>,
57692720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE1]>,
57792720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE2]>,
57892720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE3]>,
57992720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE4]>,
58092720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE5]>,
58192720ab1SHal Finkel                                 InstrStage<1, [P440_FEXE6]>,
58292720ab1SHal Finkel                                 InstrStage<1, [P440_FWB]>],
583a10bd1d2SHal Finkel                                [6, 0],
58492720ab1SHal Finkel                                [P440_FPR_Bypass, P440_FPR_Bypass]>
585ad677b64SHal Finkel]>;
5865a7162f3SHal Finkel
5875a7162f3SHal Finkel// ===---------------------------------------------------------------------===//
5885a7162f3SHal Finkel// PPC440 machine model for scheduling and other instruction cost heuristics.
5895a7162f3SHal Finkel
5905a7162f3SHal Finkeldef PPC440Model : SchedMachineModel {
5915a7162f3SHal Finkel  let IssueWidth = 2;  // 2 instructions are dispatched per cycle.
5925a7162f3SHal Finkel  let LoadLatency = 5; // Optimistic load latency assuming bypass.
5935a7162f3SHal Finkel                       // This is overriden by OperandCycles if the
5945a7162f3SHal Finkel                       // Itineraries are queried instead.
5955a7162f3SHal Finkel
59617cb5799SMatthias Braun  let CompleteModel = 0;
59717cb5799SMatthias Braun
5985a7162f3SHal Finkel  let Itineraries = PPC440Itineraries;
5995a7162f3SHal Finkel}
6005a7162f3SHal Finkel
601