1 ;; VR4300 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 "r4300_load" 2
26 (and (eq_attr "cpu" "r4300")
27 (eq_attr "type" "load,fpload,fpidxload,xfer"))
30 (define_insn_reservation "r4300_imul_si" 5
31 (and (eq_attr "cpu" "r4300")
32 (and (eq_attr "type" "imul,imul3,imadd")
33 (eq_attr "mode" "SI")))
36 (define_insn_reservation "r4300_imul_di" 8
37 (and (eq_attr "cpu" "r4300")
38 (and (eq_attr "type" "imul,imul3,imadd")
39 (eq_attr "mode" "DI")))
42 (define_insn_reservation "r4300_idiv_si" 37
43 (and (eq_attr "cpu" "r4300")
44 (and (eq_attr "type" "idiv")
45 (eq_attr "mode" "SI")))
48 (define_insn_reservation "r4300_idiv_di" 69
49 (and (eq_attr "cpu" "r4300")
50 (and (eq_attr "type" "idiv")
51 (eq_attr "mode" "DI")))
54 (define_insn_reservation "r4300_fmove" 1
55 (and (eq_attr "cpu" "r4300")
56 (eq_attr "type" "fcmp,fabs,fneg,fmove"))
59 (define_insn_reservation "r4300_fadd" 3
60 (and (eq_attr "cpu" "r4300")
61 (eq_attr "type" "fadd"))
64 (define_insn_reservation "r4300_fmul_single" 5
65 (and (eq_attr "cpu" "r4300")
66 (and (eq_attr "type" "fmul,fmadd")
67 (eq_attr "mode" "SF")))
70 (define_insn_reservation "r4300_fmul_double" 8
71 (and (eq_attr "cpu" "r4300")
72 (and (eq_attr "type" "fmul,fmadd")
73 (eq_attr "mode" "DF")))
76 (define_insn_reservation "r4300_fdiv_single" 29
77 (and (eq_attr "cpu" "r4300")
78 (and (eq_attr "type" "fdiv,frdiv,fsqrt,frsqrt")
79 (eq_attr "mode" "SF")))
82 (define_insn_reservation "r4300_fdiv_double" 58
83 (and (eq_attr "cpu" "r4300")
84 (and (eq_attr "type" "fdiv,frdiv,fsqrt,frsqrt")
85 (eq_attr "mode" "DF")))