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 // 17 def IU0to3_0 : FuncUnit; // Fetch unit 1 to 4 slot 1 18 def IU0to3_1 : FuncUnit; // Fetch unit 1 to 4 slot 2 19 def IU0to3_2 : FuncUnit; // Fetch unit 1 to 4 slot 3 20 def IU0to3_3 : FuncUnit; // Fetch unit 1 to 4 slot 4 21 def IU4_0 : FuncUnit; // Instruction buffer slot 1 22 def IU4_1 : FuncUnit; // Instruction buffer slot 2 23 def IU4_2 : FuncUnit; // Instruction buffer slot 3 24 def IU4_3 : FuncUnit; // Instruction buffer slot 4 25 def IU4_4 : FuncUnit; // Instruction buffer slot 5 26 def IU4_5 : FuncUnit; // Instruction buffer slot 6 27 def IU4_6 : FuncUnit; // Instruction buffer slot 7 28 def IU4_7 : FuncUnit; // Instruction buffer slot 8 29 def IU5 : FuncUnit; // Dependency resolution 30 def IU6 : FuncUnit; // Instruction issue 31 def RF0 : FuncUnit; 32 def XRF1 : FuncUnit; 33 def XEX1 : FuncUnit; // Execution stage 1 for the XU pipeline 34 def XEX2 : FuncUnit; // Execution stage 2 for the XU pipeline 35 def XEX3 : FuncUnit; // Execution stage 3 for the XU pipeline 36 def XEX4 : FuncUnit; // Execution stage 4 for the XU pipeline 37 def XEX5 : FuncUnit; // Execution stage 5 for the XU pipeline 38 def XEX6 : FuncUnit; // Execution stage 6 for the XU pipeline 39 def FRF1 : FuncUnit; 40 def FEX1 : FuncUnit; // Execution stage 1 for the FU pipeline 41 def FEX2 : FuncUnit; // Execution stage 2 for the FU pipeline 42 def FEX3 : FuncUnit; // Execution stage 3 for the FU pipeline 43 def FEX4 : FuncUnit; // Execution stage 4 for the FU pipeline 44 def FEX5 : FuncUnit; // Execution stage 5 for the FU pipeline 45 def FEX6 : FuncUnit; // Execution stage 6 for the FU pipeline 46 47 def 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 57 def 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<IntGeneral , [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<IntCompare , [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 [CR_Bypass, GPR_Bypass, GPR_Bypass]>, 85 InstrItinData<IntDivW , [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<38, [XEX6]>], 94 [53, 7, 7], 95 [NoBypass, GPR_Bypass, GPR_Bypass]>, 96 InstrItinData<IntMFFS , [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<1, [XEX6]>], 105 [10, 7, 7], 106 [GPR_Bypass, GPR_Bypass, GPR_Bypass]>, 107 InstrItinData<IntMTFSB0 , [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<IntMulHW , [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 [14, 7, 7], 128 [GPR_Bypass, GPR_Bypass, GPR_Bypass]>, 129 InstrItinData<IntMulHWU , [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<IntMulLI , [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 [15, 7, 7], 150 [GPR_Bypass, GPR_Bypass, GPR_Bypass]>, 151 InstrItinData<IntRotate , [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 [10, 7, 7], 161 [GPR_Bypass, GPR_Bypass, GPR_Bypass]>, 162 InstrItinData<IntShift , [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<IntTrapW , [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]>, 184 InstrItinData<BrB , [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 [15, 7, 7], 194 [NoBypass, GPR_Bypass]>, 195 InstrItinData<BrCR , [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 [CR_Bypass, CR_Bypass, CR_Bypass]>, 206 InstrItinData<BrMCR , [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 [CR_Bypass, CR_Bypass, CR_Bypass]>, 217 InstrItinData<BrMCRX , [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 [10, 7, 7], 227 [CR_Bypass, GPR_Bypass, GPR_Bypass]>, 228 InstrItinData<LdStDCBA , [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 [13, 11], 238 [NoBypass, GPR_Bypass]>, 239 InstrItinData<LdStDCBF , [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 [13, 11], 249 [NoBypass, GPR_Bypass]>, 250 InstrItinData<LdStDCBI , [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 [13, 11], 260 [NoBypass, GPR_Bypass]>, 261 InstrItinData<LdStLoad , [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 [14, 7], 271 [GPR_Bypass, GPR_Bypass]>, 272 InstrItinData<LdStStore , [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, 7], 282 [GPR_Bypass, GPR_Bypass]>, 283 InstrItinData<LdStICBI , [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 [14, 7], 293 [NoBypass, GPR_Bypass]>, 294 InstrItinData<LdStUX , [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, 7], 304 [NoBypass, FPR_Bypass, FPR_Bypass]>, 305 InstrItinData<LdStLFD , [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 [14, 7, 7], 315 [FPR_Bypass, GPR_Bypass, GPR_Bypass]>, 316 InstrItinData<LdStLFDU , [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, 7], 326 [FPR_Bypass, GPR_Bypass, GPR_Bypass]>, 327 InstrItinData<LdStLHA , [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], 337 [NoBypass, GPR_Bypass]>, 338 InstrItinData<LdStLMW , [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], 348 [NoBypass, GPR_Bypass]>, 349 InstrItinData<LdStLWARX , [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<13, [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 [26, 7], 359 [NoBypass, GPR_Bypass]>, 360 InstrItinData<LdStSTD , [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 [13, 7], 370 [GPR_Bypass, GPR_Bypass]>, 371 InstrItinData<LdStSTDCX , [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<13, [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 [26, 7], 381 [NoBypass, GPR_Bypass]>, 382 InstrItinData<LdStSTD , [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<1, [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 [13, 7], 392 [GPR_Bypass, GPR_Bypass]>, 393 InstrItinData<LdStSTDCX , [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<13, [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 [26, 7], 403 [NoBypass, GPR_Bypass]>, 404 InstrItinData<LdStSTWCX , [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<LdStSync , [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<1, [IU6]>, 420 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 421 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 422 InstrStage<1, [XEX3]>, InstrStage<12, [XEX4]>, 423 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>]>, 424 InstrItinData<SprISYNC , [InstrStage<4, 425 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 426 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 427 IU4_4, IU4_5, IU4_6, IU4_7]>, 428 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 429 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 430 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 431 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 432 InstrStage<1, [XEX5]>, InstrStage<14, [XEX6]>]>, 433 InstrItinData<SprMFSR , [InstrStage<4, 434 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 435 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 436 IU4_4, IU4_5, IU4_6, IU4_7]>, 437 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 438 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 439 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 440 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 441 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 442 [15, 7], 443 [GPR_Bypass, NoBypass]>, 444 InstrItinData<SprMTMSR , [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 [NoBypass, GPR_Bypass]>, 455 InstrItinData<SprMTSR , [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<SprTLBSYNC , [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<14, [XEX6]>]>, 475 InstrItinData<SprMFCR , [InstrStage<4, 476 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 477 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 478 IU4_4, IU4_5, IU4_6, IU4_7]>, 479 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 480 InstrStage<1, [RF0]>, InstrStage<1, [XRF1]>, 481 InstrStage<1, [XEX1]>, InstrStage<1, [XEX2]>, 482 InstrStage<1, [XEX3]>, InstrStage<1, [XEX4]>, 483 InstrStage<1, [XEX5]>, InstrStage<1, [XEX6]>], 484 [10, 7], 485 [GPR_Bypass, CR_Bypass]>, 486 InstrItinData<SprMFMSR , [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 [15, 7], 496 [GPR_Bypass, NoBypass]>, 497 InstrItinData<SprMFSPR , [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 [NoBypass, GPR_Bypass]>, 508 InstrItinData<SprMFTB , [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<14, [XEX6]>], 517 [29, 7], 518 [NoBypass, GPR_Bypass]>, 519 InstrItinData<SprMTSPR , [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<1, [XEX6]>], 528 [15, 7], 529 [NoBypass, GPR_Bypass]>, 530 InstrItinData<SprMTSRIN , [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<14, [XEX6]>], 539 [29, 7], 540 [NoBypass, GPR_Bypass]>, 541 InstrItinData<SprRFI , [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<SprSC , [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<FPGeneral , [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, [FRF1]>, 569 InstrStage<1, [FEX1]>, InstrStage<1, [FEX2]>, 570 InstrStage<1, [FEX3]>, InstrStage<1, [FEX4]>, 571 InstrStage<1, [FEX5]>, InstrStage<1, [FEX6]>], 572 [15, 7, 7], 573 [FPR_Bypass, FPR_Bypass, FPR_Bypass]>, 574 InstrItinData<FPCompare , [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 [13, 7, 7], 584 [CR_Bypass, FPR_Bypass, FPR_Bypass]>, 585 InstrItinData<FPDivD , [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<71, [FRF1], 0>, 591 InstrStage<71, [FEX1], 0>, 592 InstrStage<71, [FEX2], 0>, 593 InstrStage<71, [FEX3], 0>, 594 InstrStage<71, [FEX4], 0>, 595 InstrStage<71, [FEX5], 0>, 596 InstrStage<71, [FEX6]>], 597 [86, 7, 7], 598 [NoBypass, FPR_Bypass, FPR_Bypass]>, 599 InstrItinData<FPDivS , [InstrStage<4, 600 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 601 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 602 IU4_4, IU4_5, IU4_6, IU4_7]>, 603 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 604 InstrStage<1, [RF0]>, InstrStage<58, [FRF1], 0>, 605 InstrStage<58, [FEX1], 0>, 606 InstrStage<58, [FEX2], 0>, 607 InstrStage<58, [FEX3], 0>, 608 InstrStage<58, [FEX4], 0>, 609 InstrStage<58, [FEX5], 0>, 610 InstrStage<58, [FEX6]>], 611 [73, 7, 7], 612 [NoBypass, FPR_Bypass, FPR_Bypass]>, 613 InstrItinData<FPSqrt , [InstrStage<4, 614 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 615 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 616 IU4_4, IU4_5, IU4_6, IU4_7]>, 617 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 618 InstrStage<1, [RF0]>, InstrStage<68, [FRF1], 0>, 619 InstrStage<68, [FEX1], 0>, 620 InstrStage<68, [FEX2], 0>, 621 InstrStage<68, [FEX3], 0>, 622 InstrStage<68, [FEX4], 0>, 623 InstrStage<68, [FEX5], 0>, 624 InstrStage<68, [FEX6]>], 625 [86, 7], // FIXME: should be [86, 7] for double 626 // and [82, 7] for single. Likewise, 627 // the FEX? cycle count should be 68 628 // for double and 64 for single. 629 [NoBypass, FPR_Bypass]>, 630 InstrItinData<FPFused , [InstrStage<4, 631 [IU0to3_0, IU0to3_1, IU0to3_2, IU0to3_3]>, 632 InstrStage<1, [IU4_0, IU4_1, IU4_2, IU4_3, 633 IU4_4, IU4_5, IU4_6, IU4_7]>, 634 InstrStage<1, [IU5]>, InstrStage<1, [IU6]>, 635 InstrStage<1, [RF0]>, InstrStage<1, [FRF1]>, 636 InstrStage<1, [FEX1]>, InstrStage<1, [FEX2]>, 637 InstrStage<1, [FEX3]>, InstrStage<1, [FEX4]>, 638 InstrStage<1, [FEX5]>, InstrStage<1, [FEX6]>], 639 [15, 7, 7, 7], 640 [FPR_Bypass, FPR_Bypass, FPR_Bypass, FPR_Bypass]>, 641 InstrItinData<FPRes , [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], 651 [FPR_Bypass, FPR_Bypass]> 652 ]>; 653