1 ;; Scheduling description for SPARC Cypress. 2 ;; Copyright (C) 2002-2022 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 3, 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 COPYING3. If not see 18 ;; <http://www.gnu.org/licenses/>. 19 20 ;; The Cypress is a pretty simple single-issue processor. 21 22 (define_automaton "cypress_0,cypress_1") 23 24 (define_cpu_unit "cyp_memory, cyp_fpalu" "cypress_0") 25 (define_cpu_unit "cyp_fpmds" "cypress_1") 26 27 (define_insn_reservation "cyp_load" 2 28 (and (eq_attr "cpu" "cypress") 29 (eq_attr "type" "load,sload,fpload")) 30 "cyp_memory, nothing") 31 32 (define_insn_reservation "cyp_fp_alu" 5 33 (and (eq_attr "cpu" "cypress") 34 (eq_attr "type" "fp,fpmove")) 35 "cyp_fpalu, nothing*3") 36 37 (define_insn_reservation "cyp_fp_mult" 7 38 (and (eq_attr "cpu" "cypress") 39 (eq_attr "type" "fpmul")) 40 "cyp_fpmds, nothing*5") 41 42 (define_insn_reservation "cyp_fp_div" 37 43 (and (eq_attr "cpu" "cypress") 44 (eq_attr "type" "fpdivs,fpdivd")) 45 "cyp_fpmds, nothing*35") 46 47 (define_insn_reservation "cyp_fp_sqrt" 63 48 (and (eq_attr "cpu" "cypress") 49 (eq_attr "type" "fpsqrts,fpsqrtd")) 50 "cyp_fpmds, nothing*61") 51