diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bec4dc97726dfa6d6a24001d31652ebb55709ac4..d10d2ce25df9ba50e257ec37d36e8191f56a941c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2006-05-01  Kazu Hirata  <kazu@codesourcery.com>
+
+	PR target/27374
+	* config/arm/vfp.md (*arm_movdi_vfp): Correct the output
+	templates for case 3 and 4.
+
 2006-05-01  DJ Delorie  <dj@redhat.com>
 
 	* vec.c: Include bconfig.h when appropriate.
diff --git a/gcc/config/arm/vfp.md b/gcc/config/arm/vfp.md
index 3f8b397e1538f7820a5087332af49f9af015d835..2380c83cad9c434e388fd539c013ff0cf0cf1761 100644
--- a/gcc/config/arm/vfp.md
+++ b/gcc/config/arm/vfp.md
@@ -160,9 +160,9 @@
     case 2:
       return output_move_double (operands);
     case 3:
-      return \"fmdrr%?\\t%P0, %1\\t%@ int\";
+      return \"fmdrr%?\\t%P0, %Q1, %R1\\t%@ int\";
     case 4:
-      return \"fmrrd%?\\t%0, %1\\t%@ int\";
+      return \"fmrrd%?\\t%Q0, %R0, %P1\\t%@ int\";
     case 5:
       return \"fcpyd%?\\t%P0, %P1\\t%@ int\";
     case 6: