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 /gcc/config | |
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
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/pa/pa.md | 2 | ||||
-rw-r--r-- | gcc/config/pa/predicates.md | 5 |
2 files changed, 5 insertions, 2 deletions
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)); |