aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2011-01-12 09:53:50 -0800
committerRichard Henderson <rth@gcc.gnu.org>2011-01-12 09:53:50 -0800
commitf3d9d2e0600f84dec5608464c93f4f6f68649ee5 (patch)
treef7f2aa424227f2018f4e545d47d8d400069d7a84 /gcc
parentd84760c980076e1be72867dfcdc4cd1c92db2ff5 (diff)
downloadgcc-f3d9d2e0600f84dec5608464c93f4f6f68649ee5.zip
gcc-f3d9d2e0600f84dec5608464c93f4f6f68649ee5.tar.gz
gcc-f3d9d2e0600f84dec5608464c93f4f6f68649ee5.tar.bz2
mn10300: Add clzsi2.
From-SVN: r168723
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/mn10300/mn10300.md24
2 files changed, 27 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8255b41..690b114 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2011-01-12 Richard Henderson <rth@redhat.com>
+ * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
+ (clzsi2, *bsch): New patterns.
+
* config/mn10300/mn10300.md (INT): New mode iterator.
(*mov<INT>_clr): New pattern, and peep2 to generate it.
diff --git a/gcc/config/mn10300/mn10300.md b/gcc/config/mn10300/mn10300.md
index ecabaf9..8ae52c9 100644
--- a/gcc/config/mn10300/mn10300.md
+++ b/gcc/config/mn10300/mn10300.md
@@ -36,6 +36,8 @@
(UNSPEC_GOTOFF 3)
(UNSPEC_PLT 4)
(UNSPEC_GOTSYM_OFF 5)
+
+ (UNSPEC_BSCH 7)
])
(include "predicates.md")
@@ -2353,6 +2355,28 @@
)
;; ----------------------------------------------------------------------
+;; MISCELANEOUS
+;; ----------------------------------------------------------------------
+
+(define_expand "clzsi2"
+ [(parallel [(set (match_operand:SI 0 "register_operand" "")
+ (unspec:SI [(match_operand:SI 1 "register_operand" "")
+ (const_int 0)] UNSPEC_BSCH))
+ (clobber (reg:CC CC_REG))])]
+ "TARGET_AM33"
+)
+
+(define_insn "*bsch"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (unspec:SI [(match_operand:SI 1 "register_operand" "r")
+ (match_operand:SI 2 "nonmemory_operand" "0")]
+ UNSPEC_BSCH))
+ (clobber (reg:CC CC_REG))]
+ "TARGET_AM33"
+ "bsch %1,%0"
+)
+
+;; ----------------------------------------------------------------------
;; FP INSTRUCTIONS
;; ----------------------------------------------------------------------