Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / gcc / config / mips / generic.md
blobf5641a9844326a2997ab9787434a0ca9ca57fc68
1 ;; Generic DFA-based pipeline description for MIPS targets
2 ;;   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
3 ;;
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")
28   "alu")
30 (define_insn_reservation "generic_load" 3
31   (eq_attr "type" "load,fpload,fpidxload")
32   "alu")
34 (define_insn_reservation "generic_store" 1
35   (eq_attr "type" "store,fpstore,fpidxstore")
36   "alu")
38 (define_insn_reservation "generic_xfer" 2
39   (eq_attr "type" "xfer")
40   "alu")
42 (define_insn_reservation "generic_branch" 1
43   (eq_attr "type" "branch,jump,call")
44   "alu")
46 (define_insn_reservation "generic_hilo" 1
47   (eq_attr "type" "mfhilo,mthilo")
48   "imuldiv*3")
50 (define_insn_reservation "generic_imul" 17
51   (eq_attr "type" "imul,imul3,imadd")
52   "imuldiv*17")
54 (define_insn_reservation "generic_idiv" 38
55   (eq_attr "type" "idiv")
56   "imuldiv*38")
58 (define_insn_reservation "generic_fcvt" 1
59   (eq_attr "type" "fcvt")
60   "alu")
62 (define_insn_reservation "generic_fmove" 2
63   (eq_attr "type" "fabs,fneg,fmove")
64   "alu")
66 (define_insn_reservation "generic_fcmp" 3
67   (eq_attr "type" "fcmp")
68   "alu")
70 (define_insn_reservation "generic_fadd" 4
71   (eq_attr "type" "fadd")
72   "alu")
74 (define_insn_reservation "generic_fmul_single" 7
75   (and (eq_attr "type" "fmul,fmadd")
76        (eq_attr "mode" "SF"))
77   "alu")
79 (define_insn_reservation "generic_fmul_double" 8
80   (and (eq_attr "type" "fmul,fmadd")
81        (eq_attr "mode" "DF"))
82   "alu")
84 (define_insn_reservation "generic_fdiv_single" 23
85   (and (eq_attr "type" "fdiv,frdiv")
86        (eq_attr "mode" "SF"))
87   "alu")
89 (define_insn_reservation "generic_fdiv_double" 36
90   (and (eq_attr "type" "fdiv,frdiv")
91        (eq_attr "mode" "DF"))
92   "alu")
94 (define_insn_reservation "generic_fsqrt_single" 54
95   (and (eq_attr "type" "fsqrt,frsqrt")
96        (eq_attr "mode" "SF"))
97   "alu")
99 (define_insn_reservation "generic_fsqrt_double" 112
100   (and (eq_attr "type" "fsqrt,frsqrt")
101        (eq_attr "mode" "DF"))
102   "alu")
104 (define_insn_reservation "generic_frecip_fsqrt_step" 5
105   (eq_attr "type" "frdiv1,frdiv2,frsqrt1,frsqrt2")
106   "alu")