svn commit: r271029 - in head/contrib/llvm: lib/Target/ARM patches

Sean Bruno sbruno at FreeBSD.org
Wed Sep 3 15:32:39 UTC 2014


Author: sbruno
Date: Wed Sep  3 15:32:38 2014
New Revision: 271029
URL: http://svnweb.freebsd.org/changeset/base/271029

Log:
  Do not direct commit to contrib/llvm.  Make the change a patch file instead.
  Reverts 271025 but still functionally patches it.  Original intent is still
  the same.  Pointed out by rdivacky.
  
  MFV:  Only emit movw on ARMv6T2
  
  Building for the FreeBSD default target ARMv6 was emitting movw ASM on certain
  test cases (found building qmake4/5 for ARM).  Don't do that, moreover, the AS
  in base doesn't understand this instruction for this target.  One would need
  to use --integrated-as to get this to build if desired.
  
  http://llvm.org/viewvc/llvm-project?view=revision&revision=216989
  
  Submitted by:	ian
  Reviewed by:	dim
  Obtained from:	llvm.org
  MFC after:	2 days
  Relnotes:	yes

Added:
  head/contrib/llvm/patches/patch-r271024-llvm-r216989-fix-movm-armv6.diff
Modified:
  head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td

Modified: head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td
==============================================================================
--- head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td	Wed Sep  3 15:08:33 2014	(r271028)
+++ head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td	Wed Sep  3 15:32:38 2014	(r271029)
@@ -3248,8 +3248,7 @@ def : ARMPat<(ARMaddc GPR:$src, imm0_655
 def : ARMPat<(ARMadde GPR:$src, so_imm_not:$imm, CPSR),
              (SBCri   GPR:$src, so_imm_not:$imm)>;
 def : ARMPat<(ARMadde GPR:$src, imm0_65535_neg:$imm, CPSR),
-             (SBCrr   GPR:$src, (MOVi16 (imm_not_XFORM imm:$imm)))>,
-             Requires<[IsARM, HasV6T2]>;
+             (SBCrr   GPR:$src, (MOVi16 (imm_not_XFORM imm:$imm)))>;
 
 // Note: These are implemented in C++ code, because they have to generate
 // ADD/SUBrs instructions, which use a complex pattern that a xform function

Added: head/contrib/llvm/patches/patch-r271024-llvm-r216989-fix-movm-armv6.diff
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/contrib/llvm/patches/patch-r271024-llvm-r216989-fix-movm-armv6.diff	Wed Sep  3 15:32:38 2014	(r271029)
@@ -0,0 +1,14 @@
+Index: lib/Target/ARM/ARMInstrInfo.td
+===================================================================
+--- lib/Target/ARM/ARMInstrInfo.td	(revision 271024)
++++ lib/Target/ARM/ARMInstrInfo.td	(revision 271026)
+@@ -3248,7 +3248,8 @@
+ def : ARMPat<(ARMadde GPR:$src, so_imm_not:$imm, CPSR),
+              (SBCri   GPR:$src, so_imm_not:$imm)>;
+ def : ARMPat<(ARMadde GPR:$src, imm0_65535_neg:$imm, CPSR),
+-             (SBCrr   GPR:$src, (MOVi16 (imm_not_XFORM imm:$imm)))>;
++             (SBCrr   GPR:$src, (MOVi16 (imm_not_XFORM imm:$imm)))>,
++             Requires<[IsARM, HasV6T2]>;
+ 
+ // Note: These are implemented in C++ code, because they have to generate
+ // ADD/SUBrs instructions, which use a complex pattern that a xform function


More information about the svn-src-all mailing list