On Thu, Oct 01, 2020 at 09:22:32AM +0200, Thomas Huth wrote: > Clang complains here: > > arm/pmu.c:201:16: error: value size does not match register size specified by > the constraint and modifier [-Werror,-Wasm-operand-widths] > : [pmcr] "r" (pmcr) > ^ > arm/pmu.c:194:18: note: use constraint modifier "w" > " msr pmcr_el0, %[pmcr]\n" > ^~~~~~~ > %w[pmcr] > arm/pmu.c:200:17: error: value size does not match register size specified by > the constraint and modifier [-Werror,-Wasm-operand-widths] > : [loop] "+r" (loop) > ^ > arm/pmu.c:196:11: note: use constraint modifier "w" > "1: subs %[loop], %[loop], #1\n" > ^~~~~~~ > %w[loop] > arm/pmu.c:200:17: error: value size does not match register size specified by > the constraint and modifier [-Werror,-Wasm-operand-widths] > : [loop] "+r" (loop) > ^ > arm/pmu.c:196:20: note: use constraint modifier "w" > "1: subs %[loop], %[loop], #1\n" > ^~~~~~~ > %w[loop] > arm/pmu.c:284:35: error: value size does not match register size specified > by the constraint and modifier [-Werror,-Wasm-operand-widths] > : [addr] "r" (addr), [pmcr] "r" (pmcr), [loop] "r" (loop) > ^ > arm/pmu.c:274:28: note: use constraint modifier "w" > " msr pmcr_el0, %[pmcr]\n" > ^~~~~~~ > %w[pmcr] > arm/pmu.c:284:54: error: value size does not match register size specified > by the constraint and modifier [-Werror,-Wasm-operand-widths] > : [addr] "r" (addr), [pmcr] "r" (pmcr), [loop] "r" (loop) > ^ > arm/pmu.c:276:23: note: use constraint modifier "w" > " mov x10, %[loop]\n" > ^~~~~~~ > %w[loop] > > pmcr should be 64-bit since it is a sysreg, but for loop we can use the > "w" modifier. > > Suggested-by: Drew Jones <drjones@xxxxxxxxxx> > Signed-off-by: Thomas Huth <thuth@xxxxxxxxxx> > --- > arm/pmu.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > Reviewed-by: Andrew Jones <drjones@xxxxxxxxxx> Tested-by: Andrew Jones <drjones@xxxxxxxxxx>