1;; Scheduling description for SPARC Cypress.
2;;   Copyright (C) 2002 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
7;; it under the terms of the GNU General Public License as published by
8;; the Free Software Foundation; either version 2, or (at your option)
9;; any later version.
10;;
11;; GCC is distributed in the hope that it will be useful,
12;; but WITHOUT ANY WARRANTY; without even the implied warranty of
13;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14;; GNU General Public 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
18;; the Free Software Foundation, 51 Franklin Street, Fifth Floor,
19;; Boston, MA 02110-1301, USA.
20
21;; The Cypress is a pretty simple single-issue processor.
22
23(define_automaton "cypress_0,cypress_1")
24
25(define_cpu_unit "cyp_memory, cyp_fpalu" "cypress_0")
26(define_cpu_unit "cyp_fpmds" "cypress_1")
27
28(define_insn_reservation "cyp_load" 2
29  (and (eq_attr "cpu" "cypress")
30    (eq_attr "type" "load,sload,fpload"))
31  "cyp_memory, nothing")
32
33(define_insn_reservation "cyp_fp_alu" 5
34  (and (eq_attr "cpu" "cypress")
35    (eq_attr "type" "fp,fpmove"))
36  "cyp_fpalu, nothing*3")
37
38(define_insn_reservation "cyp_fp_mult" 7
39  (and (eq_attr "cpu" "cypress")
40    (eq_attr "type" "fpmul"))
41  "cyp_fpmds, nothing*5")
42
43(define_insn_reservation "cyp_fp_div" 37
44  (and (eq_attr "cpu" "cypress")
45    (eq_attr "type" "fpdivs,fpdivd"))
46  "cyp_fpmds, nothing*35")
47
48(define_insn_reservation "cyp_fp_sqrt" 63
49  (and (eq_attr "cpu" "cypress")
50    (eq_attr "type" "fpsqrts,fpsqrtd"))
51  "cyp_fpmds, nothing*61")
52