diff options
author | Matt Turner <mattst88@gmail.com> | 2012-05-31 21:32:01 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2012-05-31 21:32:01 +0000 |
commit | 22e834575d655b4f0d9b6af8d2e908014c570df7 (patch) | |
tree | 78f964082b19fad317f6ae5bb15c6c426f4baac7 /gcc | |
parent | be7a421eefeda2fdee75d67c512ccdabb408e019 (diff) | |
download | gcc-22e834575d655b4f0d9b6af8d2e908014c570df7.zip gcc-22e834575d655b4f0d9b6af8d2e908014c570df7.tar.gz gcc-22e834575d655b4f0d9b6af8d2e908014c570df7.tar.bz2 |
4600.md (r4600_imul_si): Rename from r4600_imul.
gcc/
2012-02-24 Matt Turner <mattst88@gmail.com>
* config/mips/4600.md (r4600_imul_si): Rename from r4600_imul.
(r4600_imul_di): New.
(r4600_idiv_si): Rename from r4600_idiv.
(r4600_idiv_di): New.
From-SVN: r188083
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/mips/4600.md | 24 |
2 files changed, 26 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c4e5132..5202d78 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2012-05-31 Matt Turner <mattst88@gmail.com> + + * config/mips/4600.md (r4600_imul_si): Rename from r4600_imul. + (r4600_imul_di): New. + (r4600_idiv_si): Rename from r4600_idiv. + (r4600_idiv_di): New. + 2012-05-31 Steven Bosscher <steven@gcc.gnu.org> * output.h (__gcc_host_wide_int__): Move to hwint.h. diff --git a/gcc/config/mips/4600.md b/gcc/config/mips/4600.md index c645cbc..fcdbf00 100644 --- a/gcc/config/mips/4600.md +++ b/gcc/config/mips/4600.md @@ -1,5 +1,5 @@ ;; R4600 and R4650 pipeline description. -;; Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. +;; Copyright (C) 2004, 2005, 2007, 2012 Free Software Foundation, Inc. ;; ;; This file is part of GCC. @@ -24,16 +24,30 @@ ;; We handle the R4600 and R4650 in much the same way. The only difference ;; is in the integer multiplication and division costs. -(define_insn_reservation "r4600_imul" 10 +(define_insn_reservation "r4600_imul_si" 10 (and (eq_attr "cpu" "r4600") - (eq_attr "type" "imul,imul3,imadd")) + (eq_attr "type" "imul,imul3,imadd") + (eq_attr "mode" "SI")) "imuldiv*10") -(define_insn_reservation "r4600_idiv" 42 +(define_insn_reservation "r4600_imul_di" 12 (and (eq_attr "cpu" "r4600") - (eq_attr "type" "idiv")) + (eq_attr "type" "imul,imul3,imadd") + (eq_attr "mode" "DI")) + "imuldiv*12") + +(define_insn_reservation "r4600_idiv_si" 42 + (and (eq_attr "cpu" "r4600") + (eq_attr "type" "idiv") + (eq_attr "mode" "SI")) "imuldiv*42") +(define_insn_reservation "r4600_idiv_di" 74 + (and (eq_attr "cpu" "r4600") + (eq_attr "type" "idiv") + (eq_attr "mode" "DI")) + "imuldiv*74") + (define_insn_reservation "r4650_imul" 4 (and (eq_attr "cpu" "r4650") |