[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20201020115116.GY2672@gate.crashing.org>
Date: Tue, 20 Oct 2020 06:51:16 -0500
From: Segher Boessenkool <segher@...nel.crashing.org>
To: Christophe Leroy <christophe.leroy@...roup.eu>
Cc: Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Paul Mackerras <paulus@...ba.org>,
Michael Ellerman <mpe@...erman.id.au>,
linuxppc-dev@...ts.ozlabs.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 3/3] powerpc: Fix pre-update addressing in inline assembly
On Tue, Oct 20, 2020 at 09:44:33AM +0200, Christophe Leroy wrote:
> Le 19/10/2020 à 22:24, Segher Boessenkool a écrit :
> >>but the associated "<>" constraint is missing.
> >
> >But that is just fine. Pointless, sure, but not a bug.
>
> Most of those are from prehistoric code. So at some point in time it was
> effective. Then one day GCC changed it's way and they became pointless. So,
> not a software bug, but still a regression at some point.
>
> >>Use UPD_CONSTR macro everywhere %Un modifier is used.
> >
> >Eww. My poor stomach.
>
> There are not that many :)
Heh, your pain threshold is much higher than mine I guess :-)
> >Have you verified that update form is *correct* in all these, and that
> >we even *want* this there?
>
> I can't see anything that would militate against it, do you ?
>
> I guess if the elders have put %Us there, it was wanted.
On old CPUs, update form load/stores actually executed faster than a
"normal" memory access and an addi (or plain add). But on more recent
stuff it mostly saves code size. Which is nice of course, and can speed
up your code a bit, in theory at least.
It is quite hard to trigger the compiler to generate update form insns
in asm, sigh. So testing will probably not show anything either way.
Oh well :-)
Segher
Powered by blists - more mailing lists