1 ;; VR5000 pipeline description.
2 ;; Copyright (C) 2004, 2005 Free Software Foundation, Inc.
4 ;; This file is part of GCC.
6 ;; GCC is free software; you can redistribute it and/or modify it
7 ;; under the terms of the GNU General Public License as published
8 ;; by the Free Software Foundation; either version 2, or (at your
9 ;; option) any later version.
11 ;; GCC is distributed in the hope that it will be useful, but WITHOUT
12 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 ;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
14 ;; License for more details.
16 ;; You should have received a copy of the GNU General Public License
17 ;; along with GCC; see the file COPYING. If not, write to the
18 ;; Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
19 ;; MA 02110-1301, USA.
22 ;; This file overrides parts of generic.md. It is derived from the
23 ;; old define_function_unit description.
25 (define_insn_reservation "r5k_load" 2
26 (and (eq_attr "cpu" "r5000")
27 (eq_attr "type" "load,fpload,fpidxload,xfer"))
30 (define_insn_reservation "r5k_imul_si" 5
31 (and (eq_attr "cpu" "r5000")
32 (and (eq_attr "type" "imul,imul3,imadd")
33 (eq_attr "mode" "SI")))
36 (define_insn_reservation "r5k_imul_di" 9
37 (and (eq_attr "cpu" "r5000")
38 (and (eq_attr "type" "imul,imul3,imadd")
39 (eq_attr "mode" "DI")))
42 (define_insn_reservation "r5k_idiv_si" 36
43 (and (eq_attr "cpu" "r5000")
44 (and (eq_attr "type" "idiv")
45 (eq_attr "mode" "SI")))
48 (define_insn_reservation "r5k_idiv_di" 68
49 (and (eq_attr "cpu" "r5000")
50 (and (eq_attr "type" "idiv")
51 (eq_attr "mode" "DI")))
54 (define_insn_reservation "r5k_fmove" 1
55 (and (eq_attr "cpu" "r5000")
56 (eq_attr "type" "fcmp,fabs,fneg,fmove"))
59 (define_insn_reservation "r5k_fmul_single" 4
60 (and (eq_attr "cpu" "r5000")
61 (and (eq_attr "type" "fmul,fmadd")
62 (eq_attr "mode" "SF")))
65 (define_insn_reservation "r5k_fmul_double" 5
66 (and (eq_attr "cpu" "r5000")
67 (and (eq_attr "type" "fmul,fmadd")
68 (eq_attr "mode" "DF")))
71 (define_insn_reservation "r5k_fdiv_single" 21
72 (and (eq_attr "cpu" "r5000")
73 (and (eq_attr "type" "fdiv,frdiv,fsqrt,frsqrt")
74 (eq_attr "mode" "SF")))
77 (define_insn_reservation "r5k_fsqrt_double" 36
78 (and (eq_attr "cpu" "r5000")
79 (and (eq_attr "type" "fsqrt,frsqrt")
80 (eq_attr "mode" "DF")))