OSDN Git Service

6ae56490965c117bac6f1e13f63400da1b12e1bb
[pf3gnuchains/gcc-fork.git] / gcc / config / mips / generic.md
1 ;; Generic DFA-based pipeline description for MIPS targets
2 ;;   Copyright (C) 2004 Free Software Foundation, Inc.
3 ;;
4 ;; This file is part of GCC.
5
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.
10
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.
15
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, 59 Temple Place - Suite 330, Boston,
19 ;; MA 02111-1307, USA.
20
21
22 ;; This file is derived from the old define_function_unit description.
23 ;; Each reservation can be overridden on a processor-by-processor basis.
24
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")
29
30 (define_insn_reservation "generic_load" 3
31   (eq_attr "type" "load,fpload,fpidxload")
32   "alu")
33
34 (define_insn_reservation "generic_store" 1
35   (eq_attr "type" "store,fpstore,fpidxstore")
36   "alu")
37
38 (define_insn_reservation "generic_xfer" 2
39   (eq_attr "type" "xfer")
40   "alu")
41
42 (define_insn_reservation "generic_branch" 1
43   (eq_attr "type" "branch,jump,call")
44   "alu")
45
46 (define_insn_reservation "generic_hilo" 1
47   (eq_attr "type" "mfhilo,mthilo")
48   "imuldiv*3")
49
50 (define_insn_reservation "generic_imul" 17
51   (eq_attr "type" "imul,imadd")
52   "imuldiv*17")
53
54 (define_insn_reservation "generic_idiv" 38
55   (eq_attr "type" "idiv")
56   "imuldiv*38")
57
58 (define_insn_reservation "generic_fcvt" 1
59   (eq_attr "type" "fcvt")
60   "alu")
61
62 (define_insn_reservation "generic_fmove" 2
63   (eq_attr "type" "fabs,fneg,fmove")
64   "alu")
65
66 (define_insn_reservation "generic_fcmp" 3
67   (eq_attr "type" "fcmp")
68   "alu")
69
70 (define_insn_reservation "generic_fadd" 4
71   (eq_attr "type" "fadd")
72   "alu")
73
74 (define_insn_reservation "generic_fmul_single" 7
75   (and (eq_attr "type" "fmul,fmadd")
76        (eq_attr "mode" "SF"))
77   "alu")
78
79 (define_insn_reservation "generic_fmul_double" 8
80   (and (eq_attr "type" "fmul,fmadd")
81        (eq_attr "mode" "DF"))
82   "alu")
83
84 (define_insn_reservation "generic_fdiv_single" 23
85   (and (eq_attr "type" "fdiv,frdiv")
86        (eq_attr "mode" "SF"))
87   "alu")
88
89 (define_insn_reservation "generic_fdiv_double" 36
90   (and (eq_attr "type" "fdiv,frdiv")
91        (eq_attr "mode" "DF"))
92   "alu")
93
94 (define_insn_reservation "generic_fsqrt_single" 54
95   (and (eq_attr "type" "fsqrt,frsqrt")
96        (eq_attr "mode" "SF"))
97   "alu")
98
99 (define_insn_reservation "generic_fsqrt_double" 112
100   (and (eq_attr "type" "fsqrt,frsqrt")
101        (eq_attr "mode" "DF"))
102   "alu")