3000.md revision 169690
1227825Stheraven;; R3000 and TX39 pipeline description. 2227825Stheraven;; Copyright (C) 2004, 2005 Free Software Foundation, Inc. 3227825Stheraven;; 4227825Stheraven;; This file is part of GCC. 5227825Stheraven 6227825Stheraven;; GCC is free software; you can redistribute it and/or modify it 7227825Stheraven;; under the terms of the GNU General Public License as published 8227825Stheraven;; by the Free Software Foundation; either version 2, or (at your 9227825Stheraven;; option) any later version. 10227825Stheraven 11227825Stheraven;; GCC is distributed in the hope that it will be useful, but WITHOUT 12227825Stheraven;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 13227825Stheraven;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 14227825Stheraven;; License for more details. 15227825Stheraven 16227825Stheraven;; You should have received a copy of the GNU General Public License 17227825Stheraven;; along with GCC; see the file COPYING. If not, write to the 18227825Stheraven;; Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, 19227825Stheraven;; MA 02110-1301, USA. 20227825Stheraven 21227825Stheraven 22227825Stheraven;; This file overrides parts of generic.md. It is derived from the 23227825Stheraven;; old define_function_unit description. 24227825Stheraven 25227825Stheraven(define_insn_reservation "r3k_load" 2 26227825Stheraven (and (eq_attr "cpu" "r3000,r3900") 27227825Stheraven (eq_attr "type" "load,fpload,fpidxload")) 28227825Stheraven "alu") 29227825Stheraven 30227825Stheraven(define_insn_reservation "r3k_imul" 12 31227825Stheraven (and (eq_attr "cpu" "r3000,r3900") 32227825Stheraven (eq_attr "type" "imul,imul3,imadd")) 33227825Stheraven "imuldiv*12") 34227825Stheraven 35227825Stheraven(define_insn_reservation "r3k_idiv" 35 36227825Stheraven (and (eq_attr "cpu" "r3000,r3900") 37227825Stheraven (eq_attr "type" "idiv")) 38227825Stheraven "imuldiv*35") 39227825Stheraven 40227825Stheraven(define_insn_reservation "r3k_fmove" 1 41227825Stheraven (and (eq_attr "cpu" "r3000,r3900") 42227825Stheraven (eq_attr "type" "fabs,fneg,fmove")) 43227825Stheraven "alu") 44227825Stheraven 45227825Stheraven(define_insn_reservation "r3k_fadd" 2 46227825Stheraven (and (eq_attr "cpu" "r3000,r3900") 47227825Stheraven (eq_attr "type" "fcmp,fadd")) 48227825Stheraven "alu") 49227825Stheraven 50227825Stheraven(define_insn_reservation "r3k_fmul_single" 4 51227825Stheraven (and (eq_attr "cpu" "r3000,r3900") 52227825Stheraven (and (eq_attr "type" "fmul,fmadd") 53227825Stheraven (eq_attr "mode" "SF"))) 54227825Stheraven "alu") 55227825Stheraven 56227825Stheraven(define_insn_reservation "r3k_fmul_double" 5 57227825Stheraven (and (eq_attr "cpu" "r3000,r3900") 58227825Stheraven (and (eq_attr "type" "fmul,fmadd") 59227825Stheraven (eq_attr "mode" "DF"))) 60227825Stheraven "alu") 61227825Stheraven 62227825Stheraven(define_insn_reservation "r3k_fdiv_single" 12 63227825Stheraven (and (eq_attr "cpu" "r3000,r3900") 64227825Stheraven (and (eq_attr "type" "fdiv,frdiv") 65227825Stheraven (eq_attr "mode" "SF"))) 66227825Stheraven "alu") 67227825Stheraven 68227825Stheraven(define_insn_reservation "r3k_fdiv_double" 19 69227825Stheraven (and (eq_attr "cpu" "r3000,r3900") 70227825Stheraven (and (eq_attr "type" "fdiv,frdiv") 71227825Stheraven (eq_attr "mode" "DF"))) 72227825Stheraven "alu") 73227825Stheraven