OSDN Git Service

mn10300: Add attribute enabled.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 11 Jan 2011 18:26:16 +0000 (18:26 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 11 Jan 2011 18:26:16 +0000 (18:26 +0000)
This will allow merging am33 and mn103 patterns for which the
set of alternatives can't be merged via constraint letters.

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

gcc/ChangeLog
gcc/config/mn10300/mn10300.md

index ddcb3bc..8d5fb42 100644 (file)
@@ -1,5 +1,8 @@
 2011-01-11  Richard Henderson  <rth@redhat.com>
 
+       * config/mn10300/mn10300.md (isa): New attribute.
+       (enabled): New attribute.
+
        * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
        (abssf2, negsf2): Define only for hardware fp.
        (sqrtsf2): Reformat.
index 3a26696..bfa453f 100644 (file)
 (define_attr "cpu" "mn10300,am33,am33_2,am34"
   (const (symbol_ref "(enum attr_cpu) mn10300_tune_cpu")))
 
+;; Used to control the "enabled" attribute on a per-instruction basis.
+(define_attr "isa" "base,am33,am33_2,am34"
+  (const_string "base"))
+
+(define_attr "enabled" ""
+  (cond [(eq_attr "isa" "base")
+         (const_int 1)
+
+         (and (eq_attr "isa" "am33")
+             (ne (symbol_ref "TARGET_AM33") (const_int 0)))
+         (const_int 1)
+
+         (and (eq_attr "isa" "am33_2")
+             (ne (symbol_ref "TARGET_AM33_2") (const_int 0)))
+         (const_int 1)
+        
+         (and (eq_attr "isa" "am34")
+             (ne (symbol_ref "TARGET_AM34") (const_int 0)))
+         (const_int 1)
+       ]
+       (const_int 0))
+)
 \f
 ;; Pipeline description.