[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 06/12] xen/arm64: sysreg: Implement the 32-bit helpers using the 64-bit helpers
Hi, On 27/03/2019 19:15, Andrew Cooper wrote: > On 27/03/2019 18:45, Julien Grall wrote: >> Clang is pickier than GCC for the register size in asm statement. It >> expects the register size to match the value size. >> >> The instructions msr/mrs are expecting a 64-bit register. This means the >> implementation of the 32-bit helpers is not correct. The easiest >> solution is to implement the 32-bit helpers using the 64-bit helpers. >> >> Signed-off-by: Julien Grall <julien.grall@xxxxxxx> > > (I don't have an opinion on how to fix the issue, but) > > Are SYSREGS actually always 64 bits even on arm32, and these helpers > just a shorthand for the lower 32 bits, or is this an > effectively-unnecessary constraint imposed by Clang? This code is Arm64 specific. On Arm64, system registers are always 64-bits, and therefore the instructions msr/mrs require a 64-bit register. So the complain from Clang is valid here. It happens that some of the registers have the top 32-bit RES0 in current architecture. One could argue that this is not very future-proof and we should get rid of {READ, WRITE)_SYSREG32. Unfortunately, the callers are expecting a 32-bit value. I need to investigate all the callers to ensure no one is transforming the value to 64-bit again. I don't really want to block clang support on that, so I have added an action for fixing this later on. Cheers, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |