diff options
author | segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-05-23 16:36:14 +0000 |
---|---|---|
committer | segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-05-23 16:36:14 +0000 |
commit | 86c149d422c2af292cede60eef3f0c96985c872f (patch) | |
tree | 7a938a4ca036507d5033c698af6c5e27d74a8ef7 /gcc/config/rs6000/e5500.md | |
parent | 18f0a24b677b550b7271d18959ba994a681af6a4 (diff) | |
download | gcc-86c149d422c2af292cede60eef3f0c96985c872f.tar.gz |
rs6000: Make all multiply instructions one type
This uses the attributes "size" and "dot" to specify the differences:
imul3 -> mul size=8
imul2 -> mul size=16
imul -> mul size=32
lmul -> mul size=64
imul_compare -> mul size=32 dot=yes
lmul_compare -> mul size=64 dot=yes
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210867 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/rs6000/e5500.md')
-rw-r--r-- | gcc/config/rs6000/e5500.md | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/config/rs6000/e5500.md b/gcc/config/rs6000/e5500.md index 51645266cb9..b04d0a3b75a 100644 --- a/gcc/config/rs6000/e5500.md +++ b/gcc/config/rs6000/e5500.md @@ -101,12 +101,16 @@ ;; CFX - Multiply. (define_insn_reservation "e5500_multiply" 4 - (and (eq_attr "type" "imul") + (and (eq_attr "type" "mul") + (eq_attr "dot" "no") + (eq_attr "size" "32") (eq_attr "cpu" "ppce5500")) "e5500_decode,e5500_cfx_stage0,e5500_cfx_stage1") (define_insn_reservation "e5500_multiply_i" 5 - (and (eq_attr "type" "imul2,imul3,imul_compare") + (and (eq_attr "type" "mul") + (ior (eq_attr "dot" "yes") + (eq_attr "size" "8,16")) (eq_attr "cpu" "ppce5500")) "e5500_decode,e5500_cfx_stage0,\ e5500_cfx_stage0+e5500_cfx_stage1,e5500_cfx_stage1") |