DO-NOT-UPSTREAM arm64, LLVMLinux: prfm
Fix for prfm error on AArch64
The following error is generated with the mainline clang compiler
for AArch64:
arch/arm64/include/asm/processor.h:149:15:
error: invalid operand in inline asm: 'prfm pldl1keep, ${0:a}
'
Per comments by Tim Northover on the LLVM Bug database:
"It's rather unclear how it's better than "prfm pstl1keep, [%0]" though.
Not all instructions can make use of any offset, so wouldn't we have to be
conservative and always map it to "[xN]"?
When %a0 is changed to [%x0] it uncovered a GCC bug:
https://bugs.linaro.org/show_bug.cgi?id=635
Changing the "p" to "r" resolves the issue for both clang and GCC.
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
1 file changed