Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 17 Aug 2013 14:36:32 +0000 (UTC)
From:      Andrew Turner <andrew@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r254449 - head/contrib/binutils/gas/config
Message-ID:  <201308171436.r7HEaWVx067359@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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"));
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308171436.r7HEaWVx067359>