summaryrefslogtreecommitdiff
path: root/gcc/config/m32c/mov.md
diff options
context:
space:
mode:
authordj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2006-06-26 21:10:22 +0000
committerdj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2006-06-26 21:10:22 +0000
commit54536dfe44f9ad18006cd7c9e2e1fd7a63ec8f4c (patch)
treeb6ce301684ee79ed60fcdfb68b5e1526c7ecba3f /gcc/config/m32c/mov.md
parent6f18455e40e3275b29b2a209d1e6c4bf54275f9c (diff)
downloadgcc-54536dfe44f9ad18006cd7c9e2e1fd7a63ec8f4c.tar.gz
2006-06-26 DJ Delorie <dj@redhat.com>
* config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic. 2006-06-26 Naveen H.S <naveenh@kpitcummins.com> Jayant Sonar <jayants@kpitcummins.com> Jaydeep Vipradas <jaydeepv@kpitcummins.com> * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New. (subsi3, subsi3_1, subsi3_2): New. * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New. * config/m32c/mov.md (SI mov peephole): New. * config/m32c/m32.c (m32c_immd_dbl_mov): New. * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@115023 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/m32c/mov.md')
-rw-r--r--gcc/config/m32c/mov.md11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/config/m32c/mov.md b/gcc/config/m32c/mov.md
index 791ac5dcdbd..fde98d3723c 100644
--- a/gcc/config/m32c/mov.md
+++ b/gcc/config/m32c/mov.md
@@ -135,6 +135,17 @@
(match_dup 3))]
"")
+; Peephole to generate SImode mov instructions for storing an
+; immediate double data to a memory location.
+(define_peephole2
+ [(set (match_operand:HI 0 "memory_operand" "")
+ (match_operand 1 "const_int_operand" ""))
+ (set (match_operand:HI 2 "memory_operand" "")
+ (match_operand 3 "const_int_operand" ""))]
+ "TARGET_A24 && m32c_immd_dbl_mov (operands, HImode)"
+ [(set (match_dup 4) (match_dup 5))]
+ ""
+)
; Some PSI moves must be split.
(define_split