From d8e78641be63a2f304fb6f53e2c9ba081779f729 Mon Sep 17 00:00:00 2001 From: danglin Date: Wed, 28 Feb 2007 00:11:14 +0000 Subject: [PATCH] * pa/predicates.md (move_src_operand): Allow zero for mode. * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode move pattern. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122388 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/config/pa/pa.md | 2 +- gcc/config/pa/predicates.md | 5 ++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dc5a8d14d623..888ac2e61941 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2007-02-27 John David Anglin + + * pa/predicates.md (move_src_operand): Allow zero for mode. + * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode + move pattern. + 2007-02-27 Uros Bizjak PR target/30970 diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index 720bf1501223..54335c347160 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -4343,7 +4343,7 @@ [(set (match_operand:DF 0 "move_dest_operand" "=!*r,*r,*r,*r,*r,Q,f,f,T") (match_operand:DF 1 "move_src_operand" - "!*r,J,N,K,RQ,*rM,fM,RT,f"))] + "!*r,J,N,K,RQ,*rG,fG,RT,f"))] "(register_operand (operands[0], DFmode) || reg_or_0_operand (operands[1], DFmode)) && !TARGET_SOFT_FLOAT && TARGET_64BIT" diff --git a/gcc/config/pa/predicates.md b/gcc/config/pa/predicates.md index 685a4941991f..ff9ebacf1c90 100644 --- a/gcc/config/pa/predicates.md +++ b/gcc/config/pa/predicates.md @@ -207,11 +207,14 @@ ;; instruction. (define_predicate "move_src_operand" - (match_code "subreg,reg,const_int,mem") + (match_code "subreg,reg,const_int,const_double,mem") { if (register_operand (op, mode)) return 1; + if (op == CONST0_RTX (mode)) + return 1; + if (GET_CODE (op) == CONST_INT) return cint_ok_for_move (INTVAL (op)); -- 2.47.3