diff options
author | danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-04-20 17:18:03 +0000 |
---|---|---|
committer | danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-04-20 17:18:03 +0000 |
commit | 819b6b3a39198c51b8e3199d11a097aaa322d1e6 (patch) | |
tree | 8e1f0c3bde297f8da203b6c82596d2aecaa2eb83 /gcc/config/pa | |
parent | b30903faa888e2604db087926612c5a7cec6b695 (diff) | |
download | gcc-819b6b3a39198c51b8e3199d11a097aaa322d1e6.tar.gz |
PR/8705
* pa.md (movccfp): New expander.
(setccfp0, setccfp1): Rename to movccfp0 and movccfp1, respectively.
Reverse fcmp conditions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65858 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/pa')
-rw-r--r-- | gcc/config/pa/pa.md | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index 0f50c8ff71d..523b971fd19 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -625,23 +625,37 @@ [(set_attr "length" "4") (set_attr "type" "fpcc")]) -;; The following two patterns are optimization placeholders. In almost +;; Provide a means to emit the movccfp0 and movccfp1 optimization +;; placeholders. This is necessary in rare situations when a +;; placeholder is re-emitted (see PR 8705). + +(define_expand "movccfp" + [(set (reg:CCFP 0) + (match_operand 0 "const_int_operand" ""))] + "! TARGET_SOFT_FLOAT" + " +{ + if ((unsigned HOST_WIDE_INT) INTVAL (operands[0]) > 1) + FAIL; +}") + +;; The following patterns are optimization placeholders. In almost ;; all cases, the user of the condition code will be simplified and the ;; original condition code setting insn should be eliminated. -(define_insn "*setccfp0" +(define_insn "*movccfp0" [(set (reg:CCFP 0) (const_int 0))] "! TARGET_SOFT_FLOAT" - "fcmp,dbl,!= %%fr0,%%fr0" + "fcmp,dbl,= %%fr0,%%fr0" [(set_attr "length" "4") (set_attr "type" "fpcc")]) -(define_insn "*setccfp1" +(define_insn "*movccfp1" [(set (reg:CCFP 0) (const_int 1))] "! TARGET_SOFT_FLOAT" - "fcmp,dbl,= %%fr0,%%fr0" + "fcmp,dbl,!= %%fr0,%%fr0" [(set_attr "length" "4") (set_attr "type" "fpcc")]) |