svn commit: r254449 - head/contrib/binutils/gas/config

Andrew Turner andrew at FreeBSD.org
Sat Aug 17 14:36:32 UTC 2013


Author: andrew
Date: Sat Aug 17 14:36:32 2013
New Revision: 254449
URL: http://svnweb.freebsd.org/changeset/base/254449

Log:
  Silence a warning that is incorrect on ARMv6 and later. In the smull, umull,
  smlal, and umlal the output registers are allowed to be the same as either
  input registers, where in ARMv4 and ARMv5 they could only be the same as the
  last input register.

Modified:
  head/contrib/binutils/gas/config/tc-arm.c

Modified: head/contrib/binutils/gas/config/tc-arm.c
==============================================================================
--- head/contrib/binutils/gas/config/tc-arm.c	Sat Aug 17 14:18:41 2013	(r254448)
+++ head/contrib/binutils/gas/config/tc-arm.c	Sat Aug 17 14:36:32 2013	(r254449)
@@ -7218,10 +7218,11 @@ do_mull (void)
   inst.instruction |= inst.operands[2].reg;
   inst.instruction |= inst.operands[3].reg << 8;
 
-  /* rdhi, rdlo and rm must all be different.  */
+  /* rdhi, rdlo and rm must all be different prior to ARMv6.  */
   if (inst.operands[0].reg == inst.operands[1].reg
-      || inst.operands[0].reg == inst.operands[2].reg
+      || ((inst.operands[0].reg == inst.operands[2].reg
       || inst.operands[1].reg == inst.operands[2].reg)
+      && !ARM_CPU_HAS_FEATURE (selected_cpu, arm_ext_v6)))
     as_tsktsk (_("rdhi, rdlo and rm must all be different"));
 }
 


More information about the svn-src-head mailing list