arm64: use a common .arch preamble for inline assembly
authorSami Tolvanen <samitolvanen@google.com>
Thu, 27 Aug 2020 20:36:08 +0000 (13:36 -0700)
committerCatalin Marinas <catalin.marinas@arm.com>
Fri, 28 Aug 2020 10:15:15 +0000 (11:15 +0100)
commit1764c3edc66880778604f5053fe2dda7b3ddd2c1
treeab91daddfb4512d9c87fdaf77de518769961d795
parentd012a7190fc1fd72ed48911e77ca97ba4521bccd
arm64: use a common .arch preamble for inline assembly

Commit 7c78f67e9bd9 ("arm64: enable tlbi range instructions") breaks
LLVM's integrated assembler, because -Wa,-march is only passed to
external assemblers and therefore, the new instructions are not enabled
when IAS is used.

This change adds a common architecture version preamble, which can be
used in inline assembly blocks that contain instructions that require
a newer architecture version, and uses it to fix __TLBI_0 and __TLBI_1
with ARM64_TLB_RANGE.

Fixes: 7c78f67e9bd9 ("arm64: enable tlbi range instructions")
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Link: https://github.com/ClangBuiltLinux/linux/issues/1106
Link: https://lore.kernel.org/r/20200827203608.1225689-1-samitolvanen@google.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/Makefile
arch/arm64/include/asm/compiler.h
arch/arm64/include/asm/tlbflush.h