Patchwork [07/28] mn10300: Add attribute enabled.

login
register
mail settings
Submitter Richard Henderson
Date Jan. 10, 2011, 8:31 p.m.
Message ID <1294691517-19580-8-git-send-email-rth@redhat.com>
Download mbox | patch
Permalink /patch/78203/
State New
Headers show

Comments

Richard Henderson - Jan. 10, 2011, 8:31 p.m.
From: Richard Henderson <rth@twiddle.net>

This will allow merging am33 and mn103 patterns for which the
set of alternatives can't be merged via constraint letters.
---
 gcc/config/mn10300/mn10300.md |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)
Jeff Law - Jan. 11, 2011, 2:46 p.m.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 01/10/11 13:31, Richard Henderson wrote:
> From: Richard Henderson <rth@twiddle.net>
> 
> This will allow merging am33 and mn103 patterns for which the
> set of alternatives can't be merged via constraint letters.
OK.
jeff
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJNLG01AAoJEBRtltQi2kC76T4H/RvzdDfXvErG7YkLeeWn9VzD
JTJZ8d11c7O4PjKpqjhsqSlKerz+xYUbXMRyJJhDUR8pnLqo/37tR0mErfCuLmNe
1yfw0VhTporzcONSfcZGaZbSB336yoKEDyo+vouyD+E6VIuKrKQ1462Mh6CZajMG
Q8qA6zQKUCXXph5LroJI0VHYaOMol3h1j9QYr50dNQcrwdIvOeTxEi3UD1jj3w2J
UjJcea/U1ULum4K3srY92MilOa9Db7FkT7761IH1dRTPiZP2Zy/iriiu4myj9dW9
mO+VI3Ib+FX1Ti5WtfowurgoN5DZA5UKHJbOT8o/s3D+Z9EgcakJu+cHr8lLf1Y=
=6qbw
-----END PGP SIGNATURE-----

Patch

diff --git a/gcc/config/mn10300/mn10300.md b/gcc/config/mn10300/mn10300.md
index 3a266960..bfa453f 100644
--- a/gcc/config/mn10300/mn10300.md
+++ b/gcc/config/mn10300/mn10300.md
@@ -46,6 +46,28 @@ 
 (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))
+)
 
 ;; Pipeline description.