diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-11-30 18:21:37 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-11-30 18:21:37 -0500 |
commit | 287f13ffddd880630093402bb388011df5a9acb6 (patch) | |
tree | 382c860af8ea948979958a73f3fa46e22512d9e4 | |
parent | 5c30aff8752c02cd4fb2b8a74f2e810c3cc6b224 (diff) | |
download | gcc-287f13ffddd880630093402bb388011df5a9acb6.zip gcc-287f13ffddd880630093402bb388011df5a9acb6.tar.gz gcc-287f13ffddd880630093402bb388011df5a9acb6.tar.bz2 |
(extendsidi2): Use lwa_operand predicate.
(sign_extend load with update): New PowerPC64 pattern.
From-SVN: r8587
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 0db9e1d..5343d3c 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -422,7 +422,7 @@ (define_insn "" [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r") - (sign_extend:DI (match_operand:SI 1 "reg_or_mem_operand" "m,r")))] + (sign_extend:DI (match_operand:SI 1 "lwa_operand" "m,r")))] "TARGET_POWERPC64" "@ lwa%U1%X1 %0,%1 @@ -4285,6 +4285,17 @@ [(set_attr "type" "load")]) (define_insn "" + [(set (match_operand:DI 3 "gpc_reg_operand" "=r") + (sign_extend:DI + (mem:SI (plus:DI (match_operand:DI 1 "gpc_reg_operand" "0") + (match_operand:DI 2 "gpc_reg_operand" "r"))))) + (set (match_operand:DI 0 "gpc_reg_operand" "=b") + (plus:DI (match_dup 1) (match_dup 2)))] + "TARGET_POWERPC64" + "lwaux %3,%0,%2" + [(set_attr "type" "load")]) + +(define_insn "" [(set (mem:DI (plus:DI (match_operand:DI 1 "gpc_reg_operand" "0,0") (match_operand:DI 2 "reg_or_short_operand" "r,I"))) (match_operand:DI 3 "gpc_reg_operand" "r,r")) |