[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <bd4a9bad394b478f9ee0d9c0981948f8@AcuMS.aculab.com>
Date: Tue, 28 Jun 2022 09:40:40 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Suzuki K Poulose' <suzuki.poulose@....com>,
Nick Desaulniers <ndesaulniers@...gle.com>,
Mathieu Poirier <mathieu.poirier@...aro.org>
CC: Arnd Bergmann <arnd@...nel.org>,
Tao Zhang <quic_taozha@...cinc.com>,
"Mike Leach" <mike.leach@...aro.org>, Leo Yan <leo.yan@...aro.org>,
"Alexander Shishkin" <alexander.shishkin@...ux.intel.com>,
Nathan Chancellor <nathan@...nel.org>,
Tom Rix <trix@...hat.com>,
"coresight@...ts.linaro.org" <coresight@...ts.linaro.org>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"llvm@...ts.linux.dev" <llvm@...ts.linux.dev>
Subject: RE: [PATCH v5] coresight: etm4x: avoid build failure with unrolled
loops
...
> > Regardless of which compiler or compiler options determine whether a
> > loop can or can't be unrolled, which determines whether
> > __builtin_constant_p evaluates to true when passed an expression using a
> > loop induction variable, it is NEVER safe to allow the preprocessor to
> > construct inline asm like:
> > asm volatile (".inst (0x160 + (i * 4))" : "=r"(__val));
> > ^ expected constant expression
Can't you use (IIRC) an "=i" constraint with the C expression
so that the compiler evaluates the expression and passes the
correct constant value to the assembler?
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
Powered by blists - more mailing lists