$OpenBSD: patch-gcc_config_arm_arm_md,v 1.1.1.1 2005/01/03 15:21:26 espie Exp $
--- gcc/config/arm/arm.md.orig	Tue Mar 30 22:43:44 2004
+++ gcc/config/arm/arm.md	Mon Jan  3 10:17:43 2005
@@ -3948,7 +3948,13 @@
 	(match_operand:DI 1 "general_operand" ""))]
   "TARGET_EITHER"
   "
-  if (TARGET_THUMB)
+  if (TARGET_ARM)
+    {
+      /* Everything except mem = const or mem = mem can be done easily */
+      if (GET_CODE (operands[0]) == MEM)
+        operands[1] = force_reg (DImode, operands[1]);
+    }
+  else /* TARGET_THUMB.... */
     {
       if (!no_new_pseudos)
         {
