1;; Pipeline descriptions of Andes NDS32 cpu for GNU compiler 2;; Copyright (C) 2012-2021 Free Software Foundation, Inc. 3;; Contributed by Andes Technology Corporation. 4;; 5;; This file is part of GCC. 6;; 7;; GCC is free software; you can redistribute it and/or modify it 8;; under the terms of the GNU General Public License as published 9;; by the Free Software Foundation; either version 3, or (at your 10;; option) any later version. 11;; 12;; GCC is distributed in the hope that it will be useful, but WITHOUT 13;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 14;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 15;; License for more details. 16;; 17;; You should have received a copy of the GNU General Public License 18;; along with GCC; see the file COPYING3. If not see 19;; <http://www.gnu.org/licenses/>. 20 21;; ------------------------------------------------------------------------ 22;; Define Graywolf pipeline settings. 23;; ------------------------------------------------------------------------ 24 25(define_automaton "nds32_graywolf_machine") 26 27(define_cpu_unit "gw_ii_0" "nds32_graywolf_machine") 28(define_cpu_unit "gw_ii_1" "nds32_graywolf_machine") 29(define_cpu_unit "gw_ex_p0" "nds32_graywolf_machine") 30(define_cpu_unit "gw_mm_p0" "nds32_graywolf_machine") 31(define_cpu_unit "gw_wb_p0" "nds32_graywolf_machine") 32(define_cpu_unit "gw_ex_p1" "nds32_graywolf_machine") 33(define_cpu_unit "gw_mm_p1" "nds32_graywolf_machine") 34(define_cpu_unit "gw_wb_p1" "nds32_graywolf_machine") 35(define_cpu_unit "gw_iq_p2" "nds32_graywolf_machine") 36(define_cpu_unit "gw_rf_p2" "nds32_graywolf_machine") 37(define_cpu_unit "gw_e1_p2" "nds32_graywolf_machine") 38(define_cpu_unit "gw_e2_p2" "nds32_graywolf_machine") 39(define_cpu_unit "gw_e3_p2" "nds32_graywolf_machine") 40(define_cpu_unit "gw_e4_p2" "nds32_graywolf_machine") 41 42(define_reservation "gw_ii" "gw_ii_0 | gw_ii_1") 43(define_reservation "gw_ex" "gw_ex_p0 | gw_ex_p1") 44(define_reservation "gw_mm" "gw_mm_p0 | gw_mm_p1") 45(define_reservation "gw_wb" "gw_wb_p0 | gw_wb_p1") 46 47(define_reservation "gw_ii_all" "gw_ii_0 + gw_ii_1") 48 49(define_insn_reservation "nds_gw_unknown" 1 50 (and (eq_attr "type" "unknown") 51 (eq_attr "pipeline_model" "graywolf")) 52 "gw_ii, gw_ex, gw_mm, gw_wb") 53 54(define_insn_reservation "nds_gw_misc" 1 55 (and (eq_attr "type" "misc") 56 (eq_attr "pipeline_model" "graywolf")) 57 "gw_ii, gw_ex, gw_mm, gw_wb") 58 59(define_insn_reservation "nds_gw_mmu" 1 60 (and (eq_attr "type" "mmu") 61 (eq_attr "pipeline_model" "graywolf")) 62 "gw_ii, gw_ex, gw_mm, gw_wb") 63 64(define_insn_reservation "nds_gw_alu" 1 65 (and (and (eq_attr "type" "alu") 66 (match_test "!nds32::movd44_insn_p (insn)")) 67 (eq_attr "pipeline_model" "graywolf")) 68 "gw_ii, gw_ex, gw_mm, gw_wb") 69 70(define_insn_reservation "nds_gw_movd44" 1 71 (and (and (eq_attr "type" "alu") 72 (match_test "nds32::movd44_insn_p (insn)")) 73 (eq_attr "pipeline_model" "graywolf")) 74 "gw_ii_1, gw_ex, gw_mm, gw_wb") 75 76(define_insn_reservation "nds_gw_alu_shift" 1 77 (and (eq_attr "type" "alu_shift") 78 (eq_attr "pipeline_model" "graywolf")) 79 "gw_ii, gw_ex*2, gw_mm, gw_wb") 80 81(define_insn_reservation "nds_gw_pbsad" 1 82 (and (eq_attr "type" "pbsad") 83 (eq_attr "pipeline_model" "graywolf")) 84 "gw_ii, gw_ex*3, gw_mm, gw_wb") 85 86(define_insn_reservation "nds_gw_pbsada" 1 87 (and (eq_attr "type" "pbsada") 88 (eq_attr "pipeline_model" "graywolf")) 89 "gw_ii, gw_ex*3, gw_mm, gw_wb") 90 91(define_insn_reservation "nds_gw_load" 1 92 (and (and (eq_attr "type" "load") 93 (match_test "!nds32::post_update_insn_p (insn)")) 94 (eq_attr "pipeline_model" "graywolf")) 95 "gw_ii_1, gw_ex_p1, gw_mm_p1, gw_wb_p1") 96 97(define_insn_reservation "nds_gw_load_2w" 1 98 (and (and (eq_attr "type" "load") 99 (match_test "nds32::post_update_insn_p (insn)")) 100 (eq_attr "pipeline_model" "graywolf")) 101 "gw_ii_all, gw_ex_p1, gw_mm_p1, gw_wb_p1") 102 103(define_insn_reservation "nds_gw_store" 1 104 (and (and (eq_attr "type" "store") 105 (match_test "!nds32::store_offset_reg_p (insn)")) 106 (eq_attr "pipeline_model" "graywolf")) 107 "gw_ii_1, gw_ex_p1, gw_mm_p1, gw_wb_p1") 108 109(define_insn_reservation "nds_gw_store_3r" 1 110 (and (and (eq_attr "type" "store") 111 (match_test "nds32::store_offset_reg_p (insn)")) 112 (eq_attr "pipeline_model" "graywolf")) 113 "gw_ii_all, gw_ex_p1, gw_mm_p1, gw_wb_p1") 114 115(define_insn_reservation "nds_gw_load_multiple_1" 1 116 (and (and (eq_attr "type" "load_multiple") 117 (eq_attr "combo" "1")) 118 (eq_attr "pipeline_model" "graywolf")) 119 "gw_ii_1, gw_ex_p1, gw_mm_p1, gw_wb_p1") 120 121(define_insn_reservation "nds_gw_load_multiple_2" 1 122 (and (and (eq_attr "type" "load_multiple") 123 (eq_attr "combo" "2")) 124 (eq_attr "pipeline_model" "graywolf")) 125 "gw_ii_1, gw_ex_p1*2, gw_mm_p1, gw_wb_p1") 126 127(define_insn_reservation "nds_gw_load_multiple_3" 1 128 (and (and (eq_attr "type" "load_multiple") 129 (eq_attr "combo" "3")) 130 (eq_attr "pipeline_model" "graywolf")) 131 "gw_ii_1, gw_ex_p1*3, gw_mm_p1, gw_wb_p1") 132 133(define_insn_reservation "nds_gw_load_multiple_4" 1 134 (and (and (eq_attr "type" "load_multiple") 135 (eq_attr "combo" "4")) 136 (eq_attr "pipeline_model" "graywolf")) 137 "gw_ii_1, gw_ex_p1*4, gw_mm_p1, gw_wb_p1") 138 139(define_insn_reservation "nds_gw_load_multiple_5" 1 140 (and (and (eq_attr "type" "load_multiple") 141 (eq_attr "combo" "5")) 142 (eq_attr "pipeline_model" "graywolf")) 143 "gw_ii_1, gw_ex_p1*4, gw_mm_p1, gw_wb_p1") 144 145(define_insn_reservation "nds_gw_load_multiple_6" 1 146 (and (and (eq_attr "type" "load_multiple") 147 (eq_attr "combo" "6")) 148 (eq_attr "pipeline_model" "graywolf")) 149 "gw_ii_1, gw_ex_p1*4, gw_mm_p1, gw_wb_p1") 150 151(define_insn_reservation "nds_gw_load_multiple_7" 1 152 (and (and (eq_attr "type" "load_multiple") 153 (eq_attr "combo" "7")) 154 (eq_attr "pipeline_model" "graywolf")) 155 "gw_ii_1, gw_ex_p1*4, gw_mm_p1, gw_wb_p1") 156 157(define_insn_reservation "nds_gw_load_multiple_8" 1 158 (and (and (eq_attr "type" "load_multiple") 159 (eq_attr "combo" "8")) 160 (eq_attr "pipeline_model" "graywolf")) 161 "gw_ii_1, gw_ex_p1*4, gw_mm_p1, gw_wb_p1") 162 163(define_insn_reservation "nds_gw_load_multiple_12" 1 164 (and (and (eq_attr "type" "load_multiple") 165 (eq_attr "combo" "12")) 166 (eq_attr "pipeline_model" "graywolf")) 167 "gw_ii_1, gw_ex_p1*4, gw_mm_p1, gw_wb_p1") 168 169(define_insn_reservation "nds_gw_store_multiple_1" 1 170 (and (and (eq_attr "type" "store_multiple") 171 (eq_attr "combo" "1")) 172 (eq_attr "pipeline_model" "graywolf")) 173 "gw_ii_1, gw_ex_p1, gw_mm_p1, gw_wb_p1") 174 175(define_insn_reservation "nds_gw_store_multiple_2" 1 176 (and (and (eq_attr "type" "store_multiple") 177 (eq_attr "combo" "2")) 178 (eq_attr "pipeline_model" "graywolf")) 179 "gw_ii_1, gw_ex_p1*2, gw_mm_p1, gw_wb_p1") 180 181(define_insn_reservation "nds_gw_store_multiple_3" 1 182 (and (and (eq_attr "type" "store_multiple") 183 (eq_attr "combo" "3")) 184 (eq_attr "pipeline_model" "graywolf")) 185 "gw_ii_1, gw_ex_p1*3, gw_mm_p1, gw_wb_p1") 186 187(define_insn_reservation "nds_gw_store_multiple_4" 1 188 (and (and (eq_attr "type" "store_multiple") 189 (eq_attr "combo" "4")) 190 (eq_attr "pipeline_model" "graywolf")) 191 "gw_ii_1, gw_ex_p1*4, gw_mm_p1, gw_wb_p1") 192 193(define_insn_reservation "nds_gw_store_multiple_5" 1 194 (and (and (eq_attr "type" "store_multiple") 195 (eq_attr "combo" "5")) 196 (eq_attr "pipeline_model" "graywolf")) 197 "gw_ii_1, gw_ex_p1*4, gw_mm_p1, gw_wb_p1") 198 199(define_insn_reservation "nds_gw_store_multiple_6" 1 200 (and (and (eq_attr "type" "store_multiple") 201 (eq_attr "combo" "6")) 202 (eq_attr "pipeline_model" "graywolf")) 203 "gw_ii_1, gw_ex_p1*4, gw_mm_p1, gw_wb_p1") 204 205(define_insn_reservation "nds_gw_store_multiple_7" 1 206 (and (and (eq_attr "type" "store_multiple") 207 (eq_attr "combo" "7")) 208 (eq_attr "pipeline_model" "graywolf")) 209 "gw_ii_1, gw_ex_p1*4, gw_mm_p1, gw_wb_p1") 210 211(define_insn_reservation "nds_gw_store_multiple_8" 1 212 (and (and (eq_attr "type" "store_multiple") 213 (eq_attr "combo" "8")) 214 (eq_attr "pipeline_model" "graywolf")) 215 "gw_ii_1, gw_ex_p1*4, gw_mm_p1, gw_wb_p1") 216 217(define_insn_reservation "nds_gw_store_multiple_12" 1 218 (and (and (eq_attr "type" "store_multiple") 219 (eq_attr "combo" "12")) 220 (eq_attr "pipeline_model" "graywolf")) 221 "gw_ii_1, gw_ex_p1*4, gw_mm_p1, gw_wb_p1") 222 223(define_insn_reservation "nds_gw_mul_fast1" 1 224 (and (match_test "nds32_mul_config == MUL_TYPE_FAST_1") 225 (and (eq_attr "type" "mul") 226 (eq_attr "pipeline_model" "graywolf"))) 227 "gw_ii_0, gw_ex_p0, gw_mm_p0, gw_wb_p0") 228 229(define_insn_reservation "nds_gw_mul_fast2" 1 230 (and (match_test "nds32_mul_config == MUL_TYPE_FAST_2") 231 (and (eq_attr "type" "mul") 232 (eq_attr "pipeline_model" "graywolf"))) 233 "gw_ii_0, gw_ex_p0*2, gw_mm_p0, gw_wb_p0") 234 235(define_insn_reservation "nds_gw_mul_slow" 1 236 (and (match_test "nds32_mul_config == MUL_TYPE_SLOW") 237 (and (eq_attr "type" "mul") 238 (eq_attr "pipeline_model" "graywolf"))) 239 "gw_ii_0, gw_ex_p0*4, gw_mm_p0, gw_wb_p0") 240 241(define_insn_reservation "nds_gw_mac_fast1" 1 242 (and (match_test "nds32_mul_config == MUL_TYPE_FAST_1") 243 (and (eq_attr "type" "mac") 244 (eq_attr "pipeline_model" "graywolf"))) 245 "gw_ii_all, gw_ex_p0, gw_mm_p0, gw_wb_p0") 246 247(define_insn_reservation "nds_gw_mac_fast2" 1 248 (and (match_test "nds32_mul_config == MUL_TYPE_FAST_2") 249 (and (eq_attr "type" "mac") 250 (eq_attr "pipeline_model" "graywolf"))) 251 "gw_ii_all, gw_ex_p0*2, gw_mm_p0, gw_wb_p0") 252 253(define_insn_reservation "nds_gw_mac_slow" 1 254 (and (match_test "nds32_mul_config == MUL_TYPE_SLOW") 255 (and (eq_attr "type" "mac") 256 (eq_attr "pipeline_model" "graywolf"))) 257 "gw_ii_all, gw_ex_p0*4, gw_mm_p0, gw_wb_p0") 258 259(define_insn_reservation "nds_gw_div" 1 260 (and (and (eq_attr "type" "div") 261 (match_test "!nds32::divmod_p (insn)")) 262 (eq_attr "pipeline_model" "graywolf")) 263 "gw_ii_0, gw_ex_p0*4, gw_mm_p0, gw_wb_p0") 264 265(define_insn_reservation "nds_gw_div_2w" 1 266 (and (and (eq_attr "type" "div") 267 (match_test "nds32::divmod_p (insn)")) 268 (eq_attr "pipeline_model" "graywolf")) 269 "gw_ii_all, gw_ex_p0*4, gw_mm_p0, gw_wb_p0") 270 271(define_insn_reservation "nds_gw_branch" 1 272 (and (eq_attr "type" "branch") 273 (eq_attr "pipeline_model" "graywolf")) 274 "gw_ii_0, gw_ex_p0, gw_mm_p0, gw_wb_p0") 275 276(define_insn_reservation "nds_gw_dsp_alu" 1 277 (and (eq_attr "type" "dalu") 278 (eq_attr "pipeline_model" "graywolf")) 279 "gw_ii, gw_ex, gw_mm, gw_wb") 280 281(define_insn_reservation "nds_gw_dsp_alu64" 1 282 (and (eq_attr "type" "dalu64") 283 (eq_attr "pipeline_model" "graywolf")) 284 "gw_ii_all, gw_ex_p0, gw_mm_p0, gw_wb_p0") 285 286(define_insn_reservation "nds_gw_dsp_alu_round" 1 287 (and (eq_attr "type" "daluround") 288 (eq_attr "pipeline_model" "graywolf")) 289 "gw_ii_0, gw_ex_p0, gw_mm_p0, gw_wb_p0") 290 291(define_insn_reservation "nds_gw_dsp_cmp" 1 292 (and (eq_attr "type" "dcmp") 293 (eq_attr "pipeline_model" "graywolf")) 294 "gw_ii_0, gw_ex_p0, gw_mm_p0, gw_wb_p0") 295 296(define_insn_reservation "nds_gw_dsp_clip" 1 297 (and (eq_attr "type" "dclip") 298 (eq_attr "pipeline_model" "graywolf")) 299 "gw_ii_0, gw_ex_p0, gw_mm_p0, gw_wb_p0") 300 301(define_insn_reservation "nds_gw_dsp_mul" 1 302 (and (eq_attr "type" "dmul") 303 (eq_attr "pipeline_model" "graywolf")) 304 "gw_ii_0, gw_ex_p0, gw_mm_p0, gw_wb_p0") 305 306(define_insn_reservation "nds_gw_dsp_mac" 1 307 (and (eq_attr "type" "dmac") 308 (eq_attr "pipeline_model" "graywolf")) 309 "gw_ii_all, gw_ex_p0, gw_mm_p0, gw_wb_p0") 310 311(define_insn_reservation "nds_gw_dsp_insb" 1 312 (and (eq_attr "type" "dinsb") 313 (eq_attr "pipeline_model" "graywolf")) 314 "gw_ii_0, gw_ex_p0, gw_mm_p0, gw_wb_p0") 315 316(define_insn_reservation "nds_gw_dsp_pack" 1 317 (and (eq_attr "type" "dpack") 318 (eq_attr "pipeline_model" "graywolf")) 319 "gw_ii_0, gw_ex_p0, gw_mm_p0, gw_wb_p0") 320 321(define_insn_reservation "nds_gw_dsp_bpick" 1 322 (and (eq_attr "type" "dbpick") 323 (eq_attr "pipeline_model" "graywolf")) 324 "gw_ii_0, gw_ex_p0, gw_mm_p0, gw_wb_p0") 325 326(define_insn_reservation "nds_gw_dsp_wext" 1 327 (and (eq_attr "type" "dwext") 328 (eq_attr "pipeline_model" "graywolf")) 329 "gw_ii_all, gw_ex_p0, gw_mm_p0, gw_wb_p0") 330 331(define_insn_reservation "nds_gw_fpu_alu" 4 332 (and (eq_attr "type" "falu") 333 (eq_attr "pipeline_model" "graywolf")) 334 "gw_ii, gw_iq_p2, gw_rf_p2, gw_e1_p2, gw_e2_p2, gw_e3_p2, gw_e4_p2") 335 336(define_insn_reservation "nds_gw_fpu_muls" 4 337 (and (eq_attr "type" "fmuls") 338 (eq_attr "pipeline_model" "graywolf")) 339 "gw_ii, gw_iq_p2, gw_rf_p2, gw_e1_p2, gw_e2_p2, gw_e3_p2, gw_e4_p2") 340 341(define_insn_reservation "nds_gw_fpu_muld" 4 342 (and (eq_attr "type" "fmuld") 343 (eq_attr "pipeline_model" "graywolf")) 344 "gw_ii, gw_iq_p2, gw_rf_p2, gw_e1_p2, gw_e2_p2*2, gw_e3_p2, gw_e4_p2") 345 346(define_insn_reservation "nds_gw_fpu_macs" 4 347 (and (eq_attr "type" "fmacs") 348 (eq_attr "pipeline_model" "graywolf")) 349 "gw_ii, gw_iq_p2, gw_rf_p2, gw_e1_p2, gw_e2_p2*3, gw_e3_p2, gw_e4_p2") 350 351(define_insn_reservation "nds_gw_fpu_macd" 4 352 (and (eq_attr "type" "fmacd") 353 (eq_attr "pipeline_model" "graywolf")) 354 "gw_ii, gw_iq_p2, gw_rf_p2, gw_e1_p2, gw_e2_p2*4, gw_e3_p2, gw_e4_p2") 355 356(define_insn_reservation "nds_gw_fpu_divs" 4 357 (and (ior (eq_attr "type" "fdivs") 358 (eq_attr "type" "fsqrts")) 359 (eq_attr "pipeline_model" "graywolf")) 360 "gw_ii, gw_iq_p2, gw_rf_p2, gw_e1_p2, gw_e2_p2*14, gw_e3_p2, gw_e4_p2") 361 362(define_insn_reservation "nds_gw_fpu_divd" 4 363 (and (ior (eq_attr "type" "fdivd") 364 (eq_attr "type" "fsqrtd")) 365 (eq_attr "pipeline_model" "graywolf")) 366 "gw_ii, gw_iq_p2, gw_rf_p2, gw_e1_p2, gw_e2_p2*28, gw_e3_p2, gw_e4_p2") 367 368(define_insn_reservation "nds_gw_fpu_fast_alu" 2 369 (and (ior (eq_attr "type" "fcmp") 370 (ior (eq_attr "type" "fabs") 371 (ior (eq_attr "type" "fcpy") 372 (eq_attr "type" "fcmov")))) 373 (eq_attr "pipeline_model" "graywolf")) 374 "gw_ii, gw_iq_p2, gw_rf_p2, gw_e1_p2, gw_e2_p2, gw_e3_p2, gw_e4_p2") 375 376(define_insn_reservation "nds_gw_fpu_fmtsr" 1 377 (and (eq_attr "type" "fmtsr") 378 (eq_attr "pipeline_model" "graywolf")) 379 "gw_ii, gw_iq_p2, gw_rf_p2, gw_e1_p2, gw_e2_p2, gw_e3_p2, gw_e4_p2") 380 381(define_insn_reservation "nds_gw_fpu_fmtdr" 1 382 (and (eq_attr "type" "fmtdr") 383 (eq_attr "pipeline_model" "graywolf")) 384 "gw_ii, gw_ii+gw_iq_p2, gw_iq_p2+gw_rf_p2, gw_rf_p2+gw_e1_p2, gw_e1_p2+gw_e2_p2, gw_e2_p2+gw_e3_p2, gw_e3_p2+gw_e4_p2, gw_e4_p2") 385 386(define_insn_reservation "nds_gw_fpu_fmfsr" 1 387 (and (eq_attr "type" "fmfsr") 388 (eq_attr "pipeline_model" "graywolf")) 389 "gw_ii, gw_iq_p2, gw_rf_p2, gw_e1_p2, gw_e2_p2, gw_e3_p2, gw_e4_p2") 390 391(define_insn_reservation "nds_gw_fpu_fmfdr" 1 392 (and (eq_attr "type" "fmfdr") 393 (eq_attr "pipeline_model" "graywolf")) 394 "gw_ii, gw_ii+gw_iq_p2, gw_iq_p2+gw_rf_p2, gw_rf_p2+gw_e1_p2, gw_e1_p2+gw_e2_p2, gw_e2_p2+gw_e3_p2, gw_e3_p2+gw_e4_p2, gw_e4_p2") 395 396(define_insn_reservation "nds_gw_fpu_load" 3 397 (and (eq_attr "type" "fload") 398 (eq_attr "pipeline_model" "graywolf")) 399 "gw_ii, gw_iq_p2, gw_rf_p2, gw_e1_p2, gw_e2_p2, gw_e3_p2, gw_e4_p2") 400 401(define_insn_reservation "nds_gw_fpu_store" 1 402 (and (eq_attr "type" "fstore") 403 (eq_attr "pipeline_model" "graywolf")) 404 "gw_ii, gw_iq_p2, gw_rf_p2, gw_e1_p2, gw_e2_p2, gw_e3_p2, gw_e4_p2") 405 406;; FPU_ADDR_OUT -> FPU_ADDR_IN 407;; Main pipeline rules don't need this because those default latency is 1. 408(define_bypass 1 409 "nds_gw_fpu_load, nds_gw_fpu_store" 410 "nds_gw_fpu_load, nds_gw_fpu_store" 411 "nds32_gw_ex_to_ex_p" 412) 413 414;; LD, MUL, MAC, DIV, DALU64, DMUL, DMAC, DALUROUND, DBPICK, DWEXT 415;; -> ALU, ALU_SHIFT_Rb, PBSAD, PBSADA_RaRb, MOVD44, MUL, MAC_RaRb, DIV, ADDR_IN, BR, MMU, 416;; DALU, DALUROUND, DMUL, DMAC_RaRb, DPACK, DINSB, DCMP, DCLIP, WEXT_O, BPICK_RaRb 417(define_bypass 2 418 "nds_gw_load, nds_gw_load_2w,\ 419 nds_gw_mul_fast1, nds_gw_mul_fast2, nds_gw_mul_slow,\ 420 nds_gw_mac_fast1, nds_gw_mac_fast2, nds_gw_mac_slow,\ 421 nds_gw_div, nds_gw_div_2w,\ 422 nds_gw_dsp_alu64, nds_gw_dsp_mul, nds_gw_dsp_mac,\ 423 nds_gw_dsp_alu_round, nds_gw_dsp_bpick, nds_gw_dsp_wext" 424 "nds_gw_alu, nds_gw_movd44, nds_gw_alu_shift,\ 425 nds_gw_pbsad, nds_gw_pbsada,\ 426 nds_gw_mul_fast1, nds_gw_mul_fast2, nds_gw_mul_slow,\ 427 nds_gw_mac_fast1, nds_gw_mac_fast2, nds_gw_mac_slow,\ 428 nds_gw_branch,\ 429 nds_gw_div, nds_gw_div_2w,\ 430 nds_gw_load, nds_gw_load_2w, nds_gw_store, nds_gw_store_3r,\ 431 nds_gw_load_multiple_1,nds_gw_load_multiple_2, nds_gw_load_multiple_3,\ 432 nds_gw_load_multiple_4,nds_gw_load_multiple_5, nds_gw_load_multiple_6,\ 433 nds_gw_load_multiple_7,nds_gw_load_multiple_8, nds_gw_load_multiple_12,\ 434 nds_gw_store_multiple_1,nds_gw_store_multiple_2, nds_gw_store_multiple_3,\ 435 nds_gw_store_multiple_4,nds_gw_store_multiple_5, nds_gw_store_multiple_6,\ 436 nds_gw_store_multiple_7,nds_gw_store_multiple_8, nds_gw_store_multiple_12,\ 437 nds_gw_mmu,\ 438 nds_gw_dsp_alu, nds_gw_dsp_alu_round,\ 439 nds_gw_dsp_mul, nds_gw_dsp_mac, nds_gw_dsp_pack,\ 440 nds_gw_dsp_insb, nds_gw_dsp_cmp, nds_gw_dsp_clip,\ 441 nds_gw_dsp_wext, nds_gw_dsp_bpick" 442 "nds32_gw_mm_to_ex_p" 443) 444 445;; LMW(N, N) 446;; -> ALU, ALU_SHIFT_Rb, PBSAD, PBSADA_RaRb, MOVD44, MUL, MAC_RaRb, DIV, ADDR_IN, BR, MMU 447;; DALU, DALUROUND, DMUL, DMAC_RaRb, DPACK, DINSB, DCMP, DCLIP, WEXT_O, BPICK_RaRb 448(define_bypass 2 449 "nds_gw_load_multiple_1,nds_gw_load_multiple_2, nds_gw_load_multiple_3,\ 450 nds_gw_load_multiple_4,nds_gw_load_multiple_5, nds_gw_load_multiple_6,\ 451 nds_gw_load_multiple_7,nds_gw_load_multiple_8, nds_gw_load_multiple_12" 452 "nds_gw_alu, nds_gw_movd44, nds_gw_alu_shift,\ 453 nds_gw_pbsad, nds_gw_pbsada,\ 454 nds_gw_mul_fast1, nds_gw_mul_fast2, nds_gw_mul_slow,\ 455 nds_gw_mac_fast1, nds_gw_mac_fast2, nds_gw_mac_slow,\ 456 nds_gw_branch,\ 457 nds_gw_div, nds_gw_div_2w,\ 458 nds_gw_load, nds_gw_load_2w, nds_gw_store, nds_gw_store_3r,\ 459 nds_gw_load_multiple_1,nds_gw_load_multiple_2, nds_gw_load_multiple_3,\ 460 nds_gw_load_multiple_4,nds_gw_load_multiple_5, nds_gw_load_multiple_6,\ 461 nds_gw_load_multiple_7,nds_gw_load_multiple_8, nds_gw_load_multiple_12,\ 462 nds_gw_store_multiple_1,nds_gw_store_multiple_2, nds_gw_store_multiple_3,\ 463 nds_gw_store_multiple_4,nds_gw_store_multiple_5, nds_gw_store_multiple_6,\ 464 nds_gw_store_multiple_7,nds_gw_store_multiple_8, nds_gw_store_multiple_12,\ 465 nds_gw_mmu,\ 466 nds_gw_dsp_alu, nds_gw_dsp_alu_round,\ 467 nds_gw_dsp_mul, nds_gw_dsp_mac, nds_gw_dsp_pack,\ 468 nds_gw_dsp_insb, nds_gw_dsp_cmp, nds_gw_dsp_clip,\ 469 nds_gw_dsp_wext, nds_gw_dsp_bpick" 470 "nds32_gw_last_load_to_ex_p" 471) 472