Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 4 Oct 2013 19:57:47 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject:   svn commit: r256059 - stable/9/contrib/llvm/lib/Target/X86
Message-ID:  <201310041957.r94JvlAW023036@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Fri Oct  4 19:57:47 2013
New Revision: 256059
URL: http://svnweb.freebsd.org/changeset/base/256059

Log:
  MFC r255978:
  
  Pull in r191711 from upstream llvm trunk:
  
    The X86FixupLEAs pass for Intel Atom must not call
    convertToThreeAddress on ADD16rr opcodes, if src1 != src, since that
    would cause convertToThreeAddress to try to create a virtual register.
    This is not permitted after register allocation, which is when the
    X86FixupLEAs pass runs.
  
    This patch fixes PR16785.
  
  Pull in r191715 from upstream llvm trunk:
  
    Forgot to add a break statement.
  
  This should enable building the x11-toolskits/libXaw port with
  CPUTYPE=atom.
  
  Reported by:	Kenta Suzumoto <kentas@hush.com>

Modified:
  stable/9/contrib/llvm/lib/Target/X86/X86FixupLEAs.cpp
Directory Properties:
  stable/9/contrib/llvm/   (props changed)

Modified: stable/9/contrib/llvm/lib/Target/X86/X86FixupLEAs.cpp
==============================================================================
--- stable/9/contrib/llvm/lib/Target/X86/X86FixupLEAs.cpp	Fri Oct  4 19:31:41 2013	(r256058)
+++ stable/9/contrib/llvm/lib/Target/X86/X86FixupLEAs.cpp	Fri Oct  4 19:57:47 2013	(r256059)
@@ -125,6 +125,15 @@ FixupLEAPass::postRAConvertToLEA(Machine
       // which requires isImm() to be true
       return 0;
     }
+    break;
+  case X86::ADD16rr:
+  case X86::ADD16rr_DB:
+    if (MI->getOperand(1).getReg() != MI->getOperand(2).getReg()) {
+      // if src1 != src2, then convertToThreeAddress will
+      // need to create a Virtual register, which we cannot do
+      // after register allocation.
+      return 0;
+    }
   }
   return TII->convertToThreeAddress(MFI, MBBI, 0);
 }



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