diff gcc/config/h8300/h8300.md @ 67:f6334be47118

update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
date Tue, 22 Mar 2011 17:18:12 +0900
parents b7f97abdc517
children 04ced10e8804
line wrap: on
line diff
--- a/gcc/config/h8300/h8300.md	Tue May 25 18:58:51 2010 +0900
+++ b/gcc/config/h8300/h8300.md	Tue Mar 22 17:18:12 2011 +0900
@@ -1779,8 +1779,17 @@
 	(and:QI (match_dup 1)
 		(match_dup 2)))]
 {
-  operands[0] = adjust_address (operands[0], QImode, 1);
-  operands[1] = adjust_address (operands[1], QImode, 1);
+  if (abs (INTVAL (operands[2])) > 0xFF)
+    {
+      operands[0] = adjust_address (operands[0], QImode, 0);
+      operands[1] = adjust_address (operands[1], QImode, 0);
+      operands[2] = GEN_INT ((INTVAL (operands[2])) >> 8);
+    }
+  else
+    {
+      operands[0] = adjust_address (operands[0], QImode, 1);
+      operands[1] = adjust_address (operands[1], QImode, 1);
+    }
 })
 
 (define_insn "bclrhi_msx"
@@ -1910,8 +1919,17 @@
 	(ior:QI (match_dup 1)
 		(match_dup 2)))]
 {
-  operands[0] = adjust_address (operands[0], QImode, 1);
-  operands[1] = adjust_address (operands[1], QImode, 1);
+  if (abs (INTVAL (operands[2])) > 0xFF)
+    {
+      operands[0] = adjust_address (operands[0], QImode, 0);
+      operands[1] = adjust_address (operands[1], QImode, 0);
+      operands[2] = GEN_INT ((INTVAL (operands[2])) >> 8);
+    }
+  else
+    {
+      operands[0] = adjust_address (operands[0], QImode, 1);
+      operands[1] = adjust_address (operands[1], QImode, 1);
+    }
 })
 
 (define_insn "bsethi_msx"
@@ -1976,8 +1994,17 @@
 	(xor:QI (match_dup 1)
 		(match_dup 2)))]
 {
-  operands[0] = adjust_address (operands[0], QImode, 1);
-  operands[1] = adjust_address (operands[1], QImode, 1);
+  if (abs (INTVAL (operands[2])) > 0xFF)
+    {
+      operands[0] = adjust_address (operands[0], QImode, 0);
+      operands[1] = adjust_address (operands[1], QImode, 0);
+      operands[2] = GEN_INT ((INTVAL (operands[2])) >> 8);
+    }
+  else
+    {
+      operands[0] = adjust_address (operands[0], QImode, 1);
+      operands[1] = adjust_address (operands[1], QImode, 1);
+    }
 })
 
 (define_insn "bnothi_msx"