summaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authordanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>2002-09-04 22:05:43 +0000
committerdanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>2002-09-04 22:05:43 +0000
commitb6009807db690b551409b23d43adb3ae4195d6ed (patch)
tree03c2dde36475ffebea3bd3b71fdad38c3c98a2ab /gcc/config
parent9125d8bed8c87bea0984841382bd55af13e5c2a7 (diff)
downloadgcc-b6009807db690b551409b23d43adb3ae4195d6ed.tar.gz
* pa.md (setccfp0, setccfp1): New patterns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56814 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/pa/pa.md20
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index 7632beba83c..29fe1c874e6 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -628,6 +628,26 @@
[(set_attr "length" "4")
(set_attr "type" "fpcc")])
+;; The following two 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"
+ [(set (reg:CCFP 0)
+ (const_int 0))]
+ "! TARGET_SOFT_FLOAT"
+ "fcmp,dbl,!= %%fr0,%%fr0"
+ [(set_attr "length" "4")
+ (set_attr "type" "fpcc")])
+
+(define_insn "*setccfp1"
+ [(set (reg:CCFP 0)
+ (const_int 1))]
+ "! TARGET_SOFT_FLOAT"
+ "fcmp,dbl,= %%fr0,%%fr0"
+ [(set_attr "length" "4")
+ (set_attr "type" "fpcc")])
+
;; scc insns.
(define_expand "seq"