1 ;; Generic DFA-based pipeline description for MIPS targets
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 is derived from the old define_function_unit description.
23 ;; Each reservation can be overridden on a processor-by-processor basis.
25 (define_insn_reservation "generic_alu" 1
26 (eq_attr "type" "unknown,prefetch,prefetchx,condmove,const,arith,
27 shift,slt,clz,trap,multi,nop")
30 (define_insn_reservation "generic_load" 3
31 (eq_attr "type" "load,fpload,fpidxload")
34 (define_insn_reservation "generic_store" 1
35 (eq_attr "type" "store,fpstore,fpidxstore")
38 (define_insn_reservation "generic_xfer" 2
39 (eq_attr "type" "xfer")
42 (define_insn_reservation "generic_branch" 1
43 (eq_attr "type" "branch,jump,call")
46 (define_insn_reservation "generic_hilo" 1
47 (eq_attr "type" "mfhilo,mthilo")
50 (define_insn_reservation "generic_imul" 17
51 (eq_attr "type" "imul,imul3,imadd")
54 (define_insn_reservation "generic_idiv" 38
55 (eq_attr "type" "idiv")
58 (define_insn_reservation "generic_fcvt" 1
59 (eq_attr "type" "fcvt")
62 (define_insn_reservation "generic_fmove" 2
63 (eq_attr "type" "fabs,fneg,fmove")
66 (define_insn_reservation "generic_fcmp" 3
67 (eq_attr "type" "fcmp")
70 (define_insn_reservation "generic_fadd" 4
71 (eq_attr "type" "fadd")
74 (define_insn_reservation "generic_fmul_single" 7
75 (and (eq_attr "type" "fmul,fmadd")
76 (eq_attr "mode" "SF"))
79 (define_insn_reservation "generic_fmul_double" 8
80 (and (eq_attr "type" "fmul,fmadd")
81 (eq_attr "mode" "DF"))
84 (define_insn_reservation "generic_fdiv_single" 23
85 (and (eq_attr "type" "fdiv,frdiv")
86 (eq_attr "mode" "SF"))
89 (define_insn_reservation "generic_fdiv_double" 36
90 (and (eq_attr "type" "fdiv,frdiv")
91 (eq_attr "mode" "DF"))
94 (define_insn_reservation "generic_fsqrt_single" 54
95 (and (eq_attr "type" "fsqrt,frsqrt")
96 (eq_attr "mode" "SF"))
99 (define_insn_reservation "generic_fsqrt_double" 112
100 (and (eq_attr "type" "fsqrt,frsqrt")
101 (eq_attr "mode" "DF"))
104 (define_insn_reservation "generic_frecip_fsqrt_step" 5
105 (eq_attr "type" "frdiv1,frdiv2,frsqrt1,frsqrt2")