On Fri, Mar 29, 2013 at 09:25:13PM +0900, Wada Hiroyuki wrote:
> Hi,
> 
> I applied the following diff to llvm-3.2p1, built firefox-19.0.2 and
> firefox-20.0beta6 by this llvm, and both work fine on i386.
> 
>   http://svnweb.freebsd.org/base?view=revision&revision=246858
> 
> For details:
> 
>   http://marc.info/?t=136147545000001&r=1&w=2

Thanks a lot, this is _very_ helpful. I'll make sure to test this asap.

Landry

> diff -rupN devel/llvm/patches/patch-lib_Target_X86_X86SelectionDAGInfo_cpp 
> mystuff/devel/llvm/patches/patch-lib_Target_X86_X86SelectionDAGInfo_cpp
> --- devel/llvm/patches/patch-lib_Target_X86_X86SelectionDAGInfo_cpp   Thu Jan 
>  1 09:00:00 1970
> +++ mystuff/devel/llvm/patches/patch-lib_Target_X86_X86SelectionDAGInfo_cpp   
> Tue Mar 26 13:00:50 2013
> @@ -0,0 +1,17 @@
> +--- lib/Target/X86/X86SelectionDAGInfo.cpp.orig      Thu Nov  1 17:07:29 2012
> ++++ lib/Target/X86/X86SelectionDAGInfo.cpp   Tue Mar 26 12:55:52 2013
> +@@ -202,6 +202,14 @@ X86SelectionDAGInfo::EmitTargetCodeForMemcpy(Selection
> +       SrcPtrInfo.getAddrSpace() >= 256)
> +     return SDValue();
> + 
> ++  // ESI might be used as a base pointer, in that case we can't simply 
> overwrite
> ++  // the register.  Fall back to generic code.
> ++  const X86RegisterInfo *TRI =
> ++      static_cast<const X86RegisterInfo 
> *>(DAG.getTarget().getRegisterInfo());
> ++  if (TRI->hasBasePointer(DAG.getMachineFunction()) &&
> ++      TRI->getBaseRegister() == X86::ESI)
> ++    return SDValue();
> ++
> +   MVT AVT;
> +   if (Align & 1)
> +     AVT = MVT::i8;
> 
> 
> diff -rupN www/mozilla-firefox/Makefile mystuff/www/mozilla-firefox/Makefile
> --- www/mozilla-firefox/Makefile      Tue Mar 12 04:56:24 2013
> +++ mystuff/www/mozilla-firefox/Makefile      Tue Mar 26 13:12:44 2013
> @@ -30,9 +30,9 @@ MODPY_RUNDEP =      No
>  
>  # necessary glue to build with the correct compiler after fx 17
>  MODULES +=           gcc4 lang/clang
> -MODGCC4_ARCHS =              i386 powerpc
> +MODGCC4_ARCHS =              powerpc
>  MODGCC4_LANGS =              c c++
> -MODCLANG_ARCHS =     amd64
> +MODCLANG_ARCHS =     i386 amd64
>  MODCLANG_LANGS =     c c++
>  
>  USE_GROFF =  Yes
> 

Reply via email to