diff options
author | John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | 2007-02-28 00:11:14 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2007-02-28 00:11:14 +0000 |
commit | e214de0a0ad583e7d04c9b97a2f17f42598e78e5 (patch) | |
tree | ab4740ff809d364494b0758dbaeafdba4bf091c4 | |
parent | 8ab9333261065ccc8898f515571f0276321e005d (diff) | |
download | gcc-e214de0a0ad583e7d04c9b97a2f17f42598e78e5.zip gcc-e214de0a0ad583e7d04c9b97a2f17f42598e78e5.tar.gz gcc-e214de0a0ad583e7d04c9b97a2f17f42598e78e5.tar.bz2 |
predicates.md (move_src_operand): Allow zero for mode.
* 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.
From-SVN: r122388
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/pa/pa.md | 2 | ||||
-rw-r--r-- | gcc/config/pa/predicates.md | 5 |
3 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dc5a8d1..888ac2e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2007-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + * 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 <ubizjak@gmail.com> PR target/30970 diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index 720bf15..54335c3 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 685a494..ff9ebac 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)); |