OSDN Git Service

* config/mmix/mmix.md ("*cmpcc_folded"): In condition, gate
authorhp <hp@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 25 Sep 2007 02:01:24 +0000 (02:01 +0000)
committerhp <hp@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 25 Sep 2007 02:01:24 +0000 (02:01 +0000)
with REG_P tests before REGNO access.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128743 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/mmix/mmix.md

index d21eb1e..b46d937 100644 (file)
@@ -1,3 +1,8 @@
+2007-09-25  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * config/mmix/mmix.md ("*cmpcc_folded"): In condition, gate
+       with REG_P tests before REGNO access.
+
 2007-09-24  DJ Delorie  <dj@redhat.com>
 
        PR target/31482
 2007-09-24  DJ Delorie  <dj@redhat.com>
 
        PR target/31482
index 44ab566..aa878af 100644 (file)
@@ -481,7 +481,8 @@ DIVU %1,%1,%2\;GET %0,:rR\;NEGU %2,0,%0\;CSNN %0,$255,%2")
         (const_int 0)))]
   ;; FIXME: Can we test equivalence any other way?
   ;; FIXME: Can we fold any other way?
         (const_int 0)))]
   ;; FIXME: Can we test equivalence any other way?
   ;; FIXME: Can we fold any other way?
-  "REGNO (operands[1]) == REGNO (operands[0])"
+  "REG_P (operands[0]) && REG_P (operands[1])
+   && REGNO (operands[1]) == REGNO (operands[0])"
   "%% folded: cmp %0,%1,0")
 
 (define_insn "*cmpcc"
   "%% folded: cmp %0,%1,0")
 
 (define_insn "*cmpcc"