diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a50a6ac32cb8ca13aa39b02685f3a7f696a59874..6a33b1f64c5fdd7b7e5c423f996b5f3722a9beb9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2010-04-12  Kaushik Phatak<kaushik.phatak@kpitcummins.com>
+
+	* config/h8300/predicate.md (bit_operand): Allow immediate values that
+	satisfy 'U' constraint.
+
 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
 	* configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx
diff --git a/gcc/config/h8300/predicates.md b/gcc/config/h8300/predicates.md
index 2f5a60a09e76e05a55a9940ebead8b8d081e3319..ea6c071acdde48d107daca7626b8ea4abe37d738 100644
--- a/gcc/config/h8300/predicates.md
+++ b/gcc/config/h8300/predicates.md
@@ -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.  */