diff gcc/config/h8300/predicates.md @ 63:b7f97abdc517 gcc-4.6-20100522

update gcc from gcc-4.5.0 to gcc-4.6
author ryoma <e075725@ie.u-ryukyu.ac.jp>
date Mon, 24 May 2010 12:47:05 +0900
parents a06113de4d67
children f6334be47118
line wrap: on
line diff
--- a/gcc/config/h8300/predicates.md	Fri Feb 12 23:41:23 2010 +0900
+++ b/gcc/config/h8300/predicates.md	Mon May 24 12:47:05 2010 +0900
@@ -326,7 +326,7 @@
 {
   /* We can accept any nonimmediate operand, except that MEM operands must
      be limited to those that use addresses valid for the 'U' constraint.  */
-  if (!nonimmediate_operand (op, mode))
+  if (!nonimmediate_operand (op, mode) && !OK_FOR_U (op))
     return 0;
 
   /* H8SX accepts pretty much anything here.  */
@@ -356,6 +356,17 @@
 	  && OK_FOR_U (op));
 })
 
+;; Return nonzero if OP is indirect register or constant memory
+;; suitable for bit manipulation insns.
+
+(define_predicate "bit_register_indirect_operand"
+  (match_code "mem")
+{
+  return (GET_CODE (op) == MEM
+          && (GET_CODE (XEXP (op, 0)) == REG
+              || GET_CODE (XEXP (op, 0)) == CONST_INT));
+})
+
 ;; Return nonzero if X is a stack pointer.
 
 (define_predicate "stack_pointer_operand"