From d1e76310602bad2a01c3023bbff0634f2380f95a Mon Sep 17 00:00:00 2001
From: Kazu Hirata <kazu@hxi.com>
Date: Wed, 23 Jan 2002 14:24:23 +0000
Subject: [PATCH] h8300.md (*andorhi3): Accept 0x8000 as an operand[3].

	* config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
	operand[3].

From-SVN: r49138
---
 gcc/ChangeLog             | 5 +++++
 gcc/config/h8300/h8300.md | 5 +++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2d32d85660b7..e1180ac75faf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-01-23  Kazu Hirata  <kazu@hxi.com>
+
+	* config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
+	operand[3].
+
 2002-01-23  Jason Merrill  <jason@redhat.com>
 
 	* tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md
index e6229a2b9445..ab05d4966cb7 100644
--- a/gcc/config/h8300/h8300.md
+++ b/gcc/config/h8300/h8300.md
@@ -1061,11 +1061,12 @@
 (define_insn "*andorhi3"
   [(set (match_operand:HI 0 "register_operand" "=r")
 	(ior:HI (and:HI (match_operand:HI 2 "register_operand" "r")
-			(match_operand:HI 3 "p_operand" "P"))
+			(match_operand:HI 3 "const_int_operand" "n"))
 	(match_operand:HI 1 "register_operand" "0")))]
-  ""
+  "exact_log2 (INTVAL (operands[3]) & 0xffff) != -1"
   "*
 {
+  operands[3] = GEN_INT (INTVAL (operands[3]) & 0xffff);
   if (INTVAL (operands[3]) > 128)
     {
       operands[3] = GEN_INT (INTVAL (operands[3]) >> 8);
-- 
GitLab