[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ff158583-4e25-a5e6-5131-359423037e4f@csgroup.eu>
Date: Tue, 20 Oct 2020 09:44:33 +0200
From: Christophe Leroy <christophe.leroy@...roup.eu>
To: Segher Boessenkool <segher@...nel.crashing.org>
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
Le 19/10/2020 à 22:24, Segher Boessenkool a écrit :
> On Mon, Oct 19, 2020 at 12:12:48PM +0000, Christophe Leroy wrote:
>> In several places, inline assembly uses the "%Un" modifier
>> to enable the use of instruction with pre-update addressing,
>
> Calling this "pre-update" is misleading: the register is not updated
> before the address is generated (or the memory access done!), and the
> addressing is exactly the same as the "non-u" insn would use. It is
> called an "update form" instruction, because (at the same time as doing
> the memory access, logically anyway) it writes back the address used to
> the base register.
>
>> 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 :)
>
> 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.
Christophe
Powered by blists - more mailing lists