PPCScheduleA2.td revision 04dccea2c352e752e2823fac51051dd4ae0d8e67
1//===- PPCScheduleA2.td - PPC A2 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// Primary reference: 11// A2 Processor User's Manual. 12// IBM (as updated in) 2010. 13 14//===----------------------------------------------------------------------===// 15// Functional units on the PowerPC A2 chip sets 16// 17def IU0to3_0 : FuncUnit; // Fetch unit 1 to 4 slot 1 18def IU0to3_1 : FuncUnit; // Fetch unit 1 to 4 slot 2 19def IU0to3_2 : FuncUnit; // Fetch unit 1 to 4 slot 3 20def IU0to3_3 : FuncUnit; // Fetch unit 1 to 4 slot 4 21def IU4_0 : FuncUnit; // Instruction buffer slot 1 22def IU4_1 : FuncUnit; // Instruction buffer slot 2 23def IU4_2 : FuncUnit; // Instruction buffer slot 3 24def IU4_3 : FuncUnit; // Instruction buffer slot 4 25def IU4_4 : FuncUnit; // Instruction buffer slot 5 26def IU4_5 : FuncUnit; // Instruction buffer slot 6 27def IU4_6 : FuncUnit; // Instruction buffer slot 7 28def IU4_7 : FuncUnit; // Instruction buffer slot 8 29def IU5 : FuncUnit; // Dependency resolution 30def IU6 : FuncUnit; // Instruction issue 31def RF0 : FuncUnit; 32def XRF1 : FuncUnit; 33def XEX1 : FuncUnit; // Execution stage 1 for the XU pipeline 34def XEX2 : FuncUnit; // Execution stage 2 for the XU pipeline 35def XEX3 : FuncUnit; // Execution stage 3 for the XU pipeline 36def XEX4 : FuncUnit; // Execution stage 4 for the XU pipeline 37def XEX5 : FuncUnit; // Execution stage 5 for the XU pipeline 38def XEX6 : FuncUnit; // Execution stage 6 for the XU pipeline 39def FRF1 : FuncUnit; 40def FEX1 : FuncUnit; // Execution stage 1 for the FU pipeline 41def FEX2 : FuncUnit; // Execution stage 2 for the FU pipeline 42def FEX3 : FuncUnit; // Execution stage 3 for the FU pipeline 43def FEX4 : FuncUnit; // Execution stage 4 for the FU pipeline 44def FEX5 : FuncUnit; // Execution stage 5 for the FU pipeline 45def FEX6 : FuncUnit; // Execution stage 6 for the FU pipeline 46 47def CR_Bypass : Bypass; // The bypass for condition regs. 48//def GPR_Bypass : Bypass; // The bypass for general-purpose regs. 49//def FPR_Bypass : Bypass; // The bypass for floating-point regs. 50 51// 52// This file defines the itinerary class data for the PPC A2 processor. 53// 54//===----------------------------------------------------------------------===// 55 56 57def PPCA2Itineraries : ProcessorItineraries< 58 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3, 59 IU4_0, IU4_1, IU4_2, IU4_3, IU4_4, IU4_5, IU4_6, IU4_7, 60 IU5, IU6, RF0, XRF1, XEX1, XEX2, XEX3, XEX4, XEX5, XEX6, 61 FRF1, FEX1, FEX2, FEX3, FEX4, FEX5, FEX6], 62 [CR_Bypass, GPR_Bypass, FPR_Bypass], [ 63 InstrItinData<IntSimple , [InstrStage<4, 64 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 65 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 66 IU4_4, IU4_5, IU4_6, IU4_7]>, 67 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 68 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 69 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 70 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 71 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 72 [10, 7, 7], 73 [GPR_Bypass, GPR_Bypass, GPR_Bypass]>, 74 InstrItinData<IntGeneral , [InstrStage<4, 75 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 76 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 77 IU4_4, IU4_5, IU4_6, IU4_7]>, 78 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 79 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 80 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 81 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 82 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 83 [10, 7, 7], 84 [GPR_Bypass, GPR_Bypass, GPR_Bypass]>, 85 InstrItinData<IntCompare , [InstrStage<4, 86 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 87 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 88 IU4_4, IU4_5, IU4_6, IU4_7]>, 89 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 90 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 91 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 92 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 93 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 94 [10, 7, 7], 95 [CR_Bypass, GPR_Bypass, GPR_Bypass]>, 96 InstrItinData<IntDivW , [InstrStage<4, 97 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 98 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 99 IU4_4, IU4_5, IU4_6, IU4_7]>, 100 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 101 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 102 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 103 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 104 InstrStage<1, [XEX5]>, InstrStage<38, [XEX6]>], 105 [53, 7, 7], 106 [NoBypass, GPR_Bypass, GPR_Bypass]>, 107 InstrItinData<IntMFFS , [InstrStage<4, 108 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 109 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 110 IU4_4, IU4_5, IU4_6, IU4_7]>, 111 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 112 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 113 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 114 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 115 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 116 [10, 7, 7], 117 [GPR_Bypass, GPR_Bypass, GPR_Bypass]>, 118 InstrItinData<IntMTFSB0 , [InstrStage<4, 119 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 120 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 121 IU4_4, IU4_5, IU4_6, IU4_7]>, 122 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 123 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 124 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 125 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 126 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 127 [10, 7, 7], 128 [GPR_Bypass, GPR_Bypass, GPR_Bypass]>, 129 InstrItinData<IntMulHW , [InstrStage<4, 130 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 131 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 132 IU4_4, IU4_5, IU4_6, IU4_7]>, 133 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 134 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 135 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 136 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 137 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 138 [14, 7, 7], 139 [GPR_Bypass, GPR_Bypass, GPR_Bypass]>, 140 InstrItinData<IntMulHWU , [InstrStage<4, 141 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 142 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 143 IU4_4, IU4_5, IU4_6, IU4_7]>, 144 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 145 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 146 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 147 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 148 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 149 [14, 7, 7], 150 [GPR_Bypass, GPR_Bypass, GPR_Bypass]>, 151 InstrItinData<IntMulLI , [InstrStage<4, 152 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 153 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 154 IU4_4, IU4_5, IU4_6, IU4_7]>, 155 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 156 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 157 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 158 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 159 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 160 [15, 7, 7], 161 [GPR_Bypass, GPR_Bypass, GPR_Bypass]>, 162 InstrItinData<IntRotate , [InstrStage<4, 163 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 164 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 165 IU4_4, IU4_5, IU4_6, IU4_7]>, 166 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 167 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 168 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 169 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 170 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 171 [10, 7, 7], 172 [GPR_Bypass, GPR_Bypass, GPR_Bypass]>, 173 InstrItinData<IntRotateD , [InstrStage<4, 174 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 175 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 176 IU4_4, IU4_5, IU4_6, IU4_7]>, 177 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 178 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 179 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 180 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 181 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 182 [10, 7, 7], 183 [GPR_Bypass, GPR_Bypass, GPR_Bypass]>, 184 InstrItinData<IntShift , [InstrStage<4, 185 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 186 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 187 IU4_4, IU4_5, IU4_6, IU4_7]>, 188 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 189 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 190 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 191 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 192 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 193 [10, 7, 7], 194 [GPR_Bypass, GPR_Bypass, GPR_Bypass]>, 195 InstrItinData<IntTrapW , [InstrStage<4, 196 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 197 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 198 IU4_4, IU4_5, IU4_6, IU4_7]>, 199 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 200 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 201 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 202 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 203 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 204 [10, 7, 7], 205 [GPR_Bypass, GPR_Bypass]>, 206 InstrItinData<IntTrapD , [InstrStage<4, 207 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 208 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 209 IU4_4, IU4_5, IU4_6, IU4_7]>, 210 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 211 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 212 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 213 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 214 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 215 [10, 7, 7], 216 [GPR_Bypass, GPR_Bypass]>, 217 InstrItinData<BrB , [InstrStage<4, 218 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 219 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 220 IU4_4, IU4_5, IU4_6, IU4_7]>, 221 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 222 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 223 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 224 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 225 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 226 [15, 7, 7], 227 [NoBypass, GPR_Bypass]>, 228 InstrItinData<BrCR , [InstrStage<4, 229 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 230 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 231 IU4_4, IU4_5, IU4_6, IU4_7]>, 232 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 233 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 234 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 235 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 236 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 237 [10, 7, 7], 238 [CR_Bypass, CR_Bypass, CR_Bypass]>, 239 InstrItinData<BrMCR , [InstrStage<4, 240 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 241 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 242 IU4_4, IU4_5, IU4_6, IU4_7]>, 243 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 244 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 245 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 246 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 247 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 248 [10, 7, 7], 249 [CR_Bypass, CR_Bypass, CR_Bypass]>, 250 InstrItinData<BrMCRX , [InstrStage<4, 251 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 252 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 253 IU4_4, IU4_5, IU4_6, IU4_7]>, 254 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 255 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 256 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 257 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 258 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 259 [10, 7, 7], 260 [CR_Bypass, GPR_Bypass, GPR_Bypass]>, 261 InstrItinData<LdStDCBA , [InstrStage<4, 262 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 263 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 264 IU4_4, IU4_5, IU4_6, IU4_7]>, 265 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 266 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 267 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 268 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 269 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 270 [13, 11], 271 [NoBypass, GPR_Bypass]>, 272 InstrItinData<LdStDCBF , [InstrStage<4, 273 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 274 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 275 IU4_4, IU4_5, IU4_6, IU4_7]>, 276 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 277 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 278 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 279 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 280 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 281 [13, 11], 282 [NoBypass, GPR_Bypass]>, 283 InstrItinData<LdStDCBI , [InstrStage<4, 284 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 285 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 286 IU4_4, IU4_5, IU4_6, IU4_7]>, 287 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 288 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 289 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 290 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 291 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 292 [13, 11], 293 [NoBypass, GPR_Bypass]>, 294 InstrItinData<LdStLoad , [InstrStage<4, 295 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 296 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 297 IU4_4, IU4_5, IU4_6, IU4_7]>, 298 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 299 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 300 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 301 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 302 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 303 [14, 7], 304 [GPR_Bypass, GPR_Bypass]>, 305 InstrItinData<LdStStore , [InstrStage<4, 306 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 307 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 308 IU4_4, IU4_5, IU4_6, IU4_7]>, 309 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 310 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 311 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 312 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 313 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 314 [13, 7], 315 [GPR_Bypass, GPR_Bypass]>, 316 InstrItinData<LdStICBI , [InstrStage<4, 317 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 318 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 319 IU4_4, IU4_5, IU4_6, IU4_7]>, 320 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 321 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 322 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 323 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 324 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 325 [14, 7], 326 [NoBypass, GPR_Bypass]>, 327 InstrItinData<LdStUX , [InstrStage<4, 328 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 329 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 330 IU4_4, IU4_5, IU4_6, IU4_7]>, 331 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 332 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 333 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 334 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 335 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 336 [14, 7, 7], 337 [NoBypass, FPR_Bypass, FPR_Bypass]>, 338 InstrItinData<LdStLFD , [InstrStage<4, 339 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 340 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 341 IU4_4, IU4_5, IU4_6, IU4_7]>, 342 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 343 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 344 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 345 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 346 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 347 [14, 7, 7], 348 [FPR_Bypass, GPR_Bypass, GPR_Bypass]>, 349 InstrItinData<LdStLFDU , [InstrStage<4, 350 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 351 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 352 IU4_4, IU4_5, IU4_6, IU4_7]>, 353 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 354 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 355 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 356 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 357 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 358 [14, 7, 7], 359 [FPR_Bypass, GPR_Bypass, GPR_Bypass]>, 360 InstrItinData<LdStLHA , [InstrStage<4, 361 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 362 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 363 IU4_4, IU4_5, IU4_6, IU4_7]>, 364 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 365 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 366 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 367 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 368 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 369 [14, 7], 370 [NoBypass, GPR_Bypass]>, 371 InstrItinData<LdStLMW , [InstrStage<4, 372 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 373 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 374 IU4_4, IU4_5, IU4_6, IU4_7]>, 375 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 376 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 377 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 378 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 379 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 380 [14, 7], 381 [NoBypass, GPR_Bypass]>, 382 InstrItinData<LdStLWARX , [InstrStage<4, 383 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 384 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 385 IU4_4, IU4_5, IU4_6, IU4_7]>, 386 InstrStage<1, [IU5]>, InstrStage<13, [IU6]>, 387 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 388 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 389 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 390 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 391 [26, 7], 392 [NoBypass, GPR_Bypass]>, 393 InstrItinData<LdStSTD , [InstrStage<4, 394 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 395 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 396 IU4_4, IU4_5, IU4_6, IU4_7]>, 397 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 398 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 399 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 400 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 401 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 402 [13, 7], 403 [GPR_Bypass, GPR_Bypass]>, 404 InstrItinData<LdStSTDCX , [InstrStage<4, 405 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 406 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 407 IU4_4, IU4_5, IU4_6, IU4_7]>, 408 InstrStage<1, [IU5]>, InstrStage<13, [IU6]>, 409 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 410 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 411 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 412 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 413 [26, 7], 414 [NoBypass, GPR_Bypass]>, 415 InstrItinData<LdStSTWCX , [InstrStage<4, 416 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 417 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 418 IU4_4, IU4_5, IU4_6, IU4_7]>, 419 InstrStage<1, [IU5]>, InstrStage<13, [IU6]>, 420 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 421 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 422 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 423 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 424 [26, 7], 425 [NoBypass, GPR_Bypass]>, 426 InstrItinData<LdStSync , [InstrStage<4, 427 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 428 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 429 IU4_4, IU4_5, IU4_6, IU4_7]>, 430 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 431 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 432 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 433 InstrStage<1, [XEX3]>, InstrStage<12, [XEX4]>, 434 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>]>, 435 InstrItinData<SprISYNC , [InstrStage<4, 436 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 437 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 438 IU4_4, IU4_5, IU4_6, IU4_7]>, 439 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 440 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 441 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 442 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 443 InstrStage<1, [XEX5]>, InstrStage<14, [XEX6]>]>, 444 InstrItinData<SprMFSR , [InstrStage<4, 445 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 446 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 447 IU4_4, IU4_5, IU4_6, IU4_7]>, 448 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 449 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 450 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 451 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 452 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 453 [15, 7], 454 [GPR_Bypass, NoBypass]>, 455 InstrItinData<SprMTMSR , [InstrStage<4, 456 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 457 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 458 IU4_4, IU4_5, IU4_6, IU4_7]>, 459 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 460 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 461 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 462 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 463 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 464 [15, 7], 465 [NoBypass, GPR_Bypass]>, 466 InstrItinData<SprMTSR , [InstrStage<4, 467 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 468 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 469 IU4_4, IU4_5, IU4_6, IU4_7]>, 470 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 471 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 472 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 473 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 474 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 475 [15, 7], 476 [NoBypass, GPR_Bypass]>, 477 InstrItinData<SprTLBSYNC , [InstrStage<4, 478 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 479 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 480 IU4_4, IU4_5, IU4_6, IU4_7]>, 481 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 482 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 483 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 484 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 485 InstrStage<1, [XEX5]>, InstrStage<14, [XEX6]>]>, 486 InstrItinData<SprMFCR , [InstrStage<4, 487 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 488 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 489 IU4_4, IU4_5, IU4_6, IU4_7]>, 490 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 491 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 492 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 493 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 494 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 495 [10, 7], 496 [GPR_Bypass, CR_Bypass]>, 497 InstrItinData<SprMFMSR , [InstrStage<4, 498 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 499 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 500 IU4_4, IU4_5, IU4_6, IU4_7]>, 501 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 502 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 503 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 504 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 505 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 506 [15, 7], 507 [GPR_Bypass, NoBypass]>, 508 InstrItinData<SprMFSPR , [InstrStage<4, 509 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 510 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 511 IU4_4, IU4_5, IU4_6, IU4_7]>, 512 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 513 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 514 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 515 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 516 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 517 [15, 7], 518 [NoBypass, GPR_Bypass]>, 519 InstrItinData<SprMFTB , [InstrStage<4, 520 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 521 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 522 IU4_4, IU4_5, IU4_6, IU4_7]>, 523 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 524 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 525 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 526 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 527 InstrStage<1, [XEX5]>, InstrStage<14, [XEX6]>], 528 [29, 7], 529 [NoBypass, GPR_Bypass]>, 530 InstrItinData<SprMTSPR , [InstrStage<4, 531 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 532 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 533 IU4_4, IU4_5, IU4_6, IU4_7]>, 534 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 535 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 536 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 537 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 538 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 539 [15, 7], 540 [NoBypass, GPR_Bypass]>, 541 InstrItinData<SprMTSRIN , [InstrStage<4, 542 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 543 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 544 IU4_4, IU4_5, IU4_6, IU4_7]>, 545 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 546 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 547 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 548 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 549 InstrStage<1, [XEX5]>, InstrStage<14, [XEX6]>], 550 [29, 7], 551 [NoBypass, GPR_Bypass]>, 552 InstrItinData<SprRFI , [InstrStage<4, 553 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 554 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 555 IU4_4, IU4_5, IU4_6, IU4_7]>, 556 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 557 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 558 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 559 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 560 InstrStage<1, [XEX5]>, InstrStage<14, [XEX6]>], 561 [29, 7], 562 [NoBypass, GPR_Bypass]>, 563 InstrItinData<SprSC , [InstrStage<4, 564 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 565 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 566 IU4_4, IU4_5, IU4_6, IU4_7]>, 567 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 568 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 569 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 570 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 571 InstrStage<1, [XEX5]>, InstrStage<14, [XEX6]>], 572 [29, 7], 573 [NoBypass, GPR_Bypass]>, 574 InstrItinData<FPGeneral , [InstrStage<4, 575 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 576 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 577 IU4_4, IU4_5, IU4_6, IU4_7]>, 578 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 579 InstrStage<1, [RF0]>, InstrStage<1, [FRF1]>, 580 InstrStage<1, [FEX1]>, InstrStage<1, [FEX2]>, 581 InstrStage<1, [FEX3]>, InstrStage<1, [FEX4]>, 582 InstrStage<1, [FEX5]>, InstrStage<1, [FEX6]>], 583 [15, 7, 7], 584 [FPR_Bypass, FPR_Bypass, FPR_Bypass]>, 585 InstrItinData<FPCompare , [InstrStage<4, 586 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 587 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 588 IU4_4, IU4_5, IU4_6, IU4_7]>, 589 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 590 InstrStage<1, [RF0]>, InstrStage<1, [FRF1]>, 591 InstrStage<1, [FEX1]>, InstrStage<1, [FEX2]>, 592 InstrStage<1, [FEX3]>, InstrStage<1, [FEX4]>, 593 InstrStage<1, [FEX5]>, InstrStage<1, [FEX6]>], 594 [13, 7, 7], 595 [CR_Bypass, FPR_Bypass, FPR_Bypass]>, 596 InstrItinData<FPDivD , [InstrStage<4, 597 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 598 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 599 IU4_4, IU4_5, IU4_6, IU4_7]>, 600 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 601 InstrStage<1, [RF0]>, InstrStage<71, [FRF1], 0>, 602 InstrStage<71, [FEX1], 0>, 603 InstrStage<71, [FEX2], 0>, 604 InstrStage<71, [FEX3], 0>, 605 InstrStage<71, [FEX4], 0>, 606 InstrStage<71, [FEX5], 0>, 607 InstrStage<71, [FEX6]>], 608 [86, 7, 7], 609 [NoBypass, FPR_Bypass, FPR_Bypass]>, 610 InstrItinData<FPDivS , [InstrStage<4, 611 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 612 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 613 IU4_4, IU4_5, IU4_6, IU4_7]>, 614 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 615 InstrStage<1, [RF0]>, InstrStage<58, [FRF1], 0>, 616 InstrStage<58, [FEX1], 0>, 617 InstrStage<58, [FEX2], 0>, 618 InstrStage<58, [FEX3], 0>, 619 InstrStage<58, [FEX4], 0>, 620 InstrStage<58, [FEX5], 0>, 621 InstrStage<58, [FEX6]>], 622 [73, 7, 7], 623 [NoBypass, FPR_Bypass, FPR_Bypass]>, 624 InstrItinData<FPSqrt , [InstrStage<4, 625 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 626 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 627 IU4_4, IU4_5, IU4_6, IU4_7]>, 628 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 629 InstrStage<1, [RF0]>, InstrStage<68, [FRF1], 0>, 630 InstrStage<68, [FEX1], 0>, 631 InstrStage<68, [FEX2], 0>, 632 InstrStage<68, [FEX3], 0>, 633 InstrStage<68, [FEX4], 0>, 634 InstrStage<68, [FEX5], 0>, 635 InstrStage<68, [FEX6]>], 636 [86, 7], // FIXME: should be [86, 7] for double 637 // and [82, 7] for single. Likewise, 638 // the FEX? cycle count should be 68 639 // for double and 64 for single. 640 [NoBypass, FPR_Bypass]>, 641 InstrItinData<FPFused , [InstrStage<4, 642 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 643 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 644 IU4_4, IU4_5, IU4_6, IU4_7]>, 645 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 646 InstrStage<1, [RF0]>, InstrStage<1, [FRF1]>, 647 InstrStage<1, [FEX1]>, InstrStage<1, [FEX2]>, 648 InstrStage<1, [FEX3]>, InstrStage<1, [FEX4]>, 649 InstrStage<1, [FEX5]>, InstrStage<1, [FEX6]>], 650 [15, 7, 7, 7], 651 [FPR_Bypass, FPR_Bypass, FPR_Bypass, FPR_Bypass]>, 652 InstrItinData<FPRes , [InstrStage<4, 653 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 654 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 655 IU4_4, IU4_5, IU4_6, IU4_7]>, 656 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 657 InstrStage<1, [RF0]>, InstrStage<1, [FRF1]>, 658 InstrStage<1, [FEX1]>, InstrStage<1, [FEX2]>, 659 InstrStage<1, [FEX3]>, InstrStage<1, [FEX4]>, 660 InstrStage<1, [FEX5]>, InstrStage<1, [FEX6]>], 661 [15, 7], 662 [FPR_Bypass, FPR_Bypass]> 663]>; 664