[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] xen/arm64: sysreg.h: Fix MISRA C 2012 Rule 20.7 violation
Hi Jan, On 28/07/2022 15:17, Jan Beulich wrote: On 28.07.2022 15:49, Xenia Ragiadakou wrote:--- a/xen/arch/arm/include/asm/arm64/sysregs.h +++ b/xen/arch/arm/include/asm/arm64/sysregs.h @@ -461,7 +461,7 @@ /* Access to system registers */#define WRITE_SYSREG64(v, name) do { \- uint64_t _r = v; \ + uint64_t _r = (v); \ asm volatile("msr "__stringify(name)", %0" : : "r" (_r)); \Out of curiosity - why is the intermediate variable necessary? Can't v be used directly in the asm(), possibly with a suitable modifier added to %0 such that it'll always be x<N> (and not w<N>) which is used as the operand to "msr"? It should be possible to use %x0. However, We may need to use (uint64_t)(v).Linux seems to be use it, but IIRC they are not supported GCC versions as old as ours. So we would want to check when %x0 was introduced. Cheers, -- Julien Grall
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |