This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] arm/vfp.md: Fix PR target/27374.


Hi,

Attached is a patch to fix PR target/27374.

The output templates for case 3 and case 4 are simply wrong.  fmdrr
and fmrrd take three arguments.

Unfortunately, I do not have a testcase that triggers this bug with
the current version of gcc.

Tested on arm-none-eabi.  Committed to mainline and 4.1 as approved by
Paul Brook in private communication.

Kazu Hirata

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.

Index: config/arm/vfp.md
===================================================================
--- config/arm/vfp.md	(revision 113428)
+++ config/arm/vfp.md	(working copy)
@@ -160,9 +160,9 @@ (define_insn "*arm_movdi_vfp"
     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:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]