aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-09-11 18:58:21 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-09-11 18:58:21 -0400
commitebe9f727648ca753e81fe3778895b95713e2b7ef (patch)
tree61c55965004780ba1cebb47bedbe36bcfb3ec03f
parentd5f274087565b02a4f56ed90daf7bb0d5b6d5634 (diff)
downloadgcc-ebe9f727648ca753e81fe3778895b95713e2b7ef.zip
gcc-ebe9f727648ca753e81fe3778895b95713e2b7ef.tar.gz
gcc-ebe9f727648ca753e81fe3778895b95713e2b7ef.tar.bz2
Added DLB/DSTB peepholes for HFmode.
Corrected mnemonics for HImode DSTB peephole. From-SVN: r10314
-rw-r--r--gcc/config/1750a/1750a.md20
1 files changed, 19 insertions, 1 deletions
diff --git a/gcc/config/1750a/1750a.md b/gcc/config/1750a/1750a.md
index 02e6469..bcfc64e 100644
--- a/gcc/config/1750a/1750a.md
+++ b/gcc/config/1750a/1750a.md
@@ -1295,6 +1295,15 @@
&& INTVAL(operands[2]) <= 255"
"dlb r%1,%2")
+(define_peephole
+ [(set (match_operand:HF 0 "register_operand" "=r")
+ (mem:HF (plus:QI (match_operand:QI 1 "register_operand" "x")
+ (match_operand:QI 2 "immediate_operand" "L"))))
+ ]
+ "REGNO(operands[0]) == 0 && REGNO(operands[1]) >= 12
+ && INTVAL(operands[2]) <= 255"
+ "dlb r%1,%2")
+
;; Store Base
(define_peephole
[(set (mem:QI (plus:QI (match_operand:QI 0 "register_operand" "x")
@@ -1313,7 +1322,16 @@
]
"REGNO(operands[2]) == 0 && REGNO(operands[0]) >= 12
&& INTVAL(operands[1]) <= 255"
- "stb r%0,%1")
+ "dstb r%0,%1")
+
+(define_peephole
+ [(set (mem:HF (plus:QI (match_operand:QI 0 "register_operand" "x")
+ (match_operand:QI 1 "immediate_operand" "L")))
+ (match_operand:HF 2 "register_operand" "r"))
+ ]
+ "REGNO(operands[2]) == 0 && REGNO(operands[0]) >= 12
+ && INTVAL(operands[1]) <= 255"
+ "dstb r%0,%1")
;; Eliminate the redundant load in a store/load sequence
(define_peephole