1;; Scheduling description for SPARClet. 2;; Copyright (C) 2002-2021 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 SPARClet is a single-issue processor. 21 22(define_automaton "sparclet") 23 24(define_cpu_unit "sl_load0,sl_load1,sl_load2,sl_load3" "sparclet") 25(define_cpu_unit "sl_store,sl_imul" "sparclet") 26 27(define_reservation "sl_load_any" "(sl_load0 | sl_load1 | sl_load2 | sl_load3)") 28(define_reservation "sl_load_all" "(sl_load0 + sl_load1 + sl_load2 + sl_load3)") 29 30(define_insn_reservation "sl_ld" 3 31 (and (eq_attr "cpu" "tsc701") 32 (eq_attr "type" "load,sload")) 33 "sl_load_any, sl_load_any, sl_load_any") 34 35(define_insn_reservation "sl_st" 3 36 (and (eq_attr "cpu" "tsc701") 37 (eq_attr "type" "store")) 38 "(sl_store+sl_load_all)*3") 39 40(define_insn_reservation "sl_imul" 5 41 (and (eq_attr "cpu" "tsc701") 42 (eq_attr "type" "imul")) 43 "sl_imul*5") 44