Subject: [PATCH v4] arm64: support __int128 on gcc 5+

From: [email-masked] (Will Deacon)
Date: Tue, 7 Nov 2017 02:13:16 +0000

On Mon, Nov 06, 2017 at 03:59:18PM +0000, Catalin Marinas wrote:
> On Mon, Nov 06, 2017 at 10:31:51AM +0100, Jason A. Donenfeld wrote:
> > Versions of gcc prior to gcc 5 emitted a __multi3 function call when
> > dealing with TI types, resulting in failures when trying to link to
> > libgcc, and more generally, bad performance. However, since gcc 5,
> > the compiler supports actually emitting fast instructions, which means
> > we can at long last enable this option and receive the speedups.
> > 
> > The gcc commit that added proper Aarch64 support is:
> > https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=d1ae7bb994f49316f6f63e6173f2931e837a351d
> > This commit appears to be part of the gcc 5 release.
> > 
> > There are still a few instructions, __ashlti3 and __ashrti3, which
> > require libgcc, which is fine. Rather than linking to libgcc, we
> > simply provide them ourselves, since they're not that complicated.
> > 
> > Signed-off-by: Jason A. Donenfeld <[email-masked]>
> 
> According to Arnd, linux-next (with this patch included) fails to build
> with gcc-7 (config: https://pastebin.com/raw/sgvPe96e).
> 
> Will is managing the upcoming merging window for arm64 but is travelling
> this week. I'll wait for couple of days, he'll probably catch up with
> emails but my suggestion is that we revert the patch and push it back
> again into -next after the 4.15 merging window.

So I pushed a fixup patch on top of for-next/core, but I suggest we
temporarily revert the- DCONFIG_ARCH_SUPPORTS_INT128 option if any other
issues crop up.

Cheers,

Will