Message ID | 20230327164941.20491-20-andy.chiu@sifive.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | riscv: Add vector ISA support | expand |
Am Montag, 27. März 2023, 18:49:39 CEST schrieb Andy Chiu: > Some extensions use .option arch directive to selectively enable certain > extensions in parts of its assembly code. For example, Zbb uses it to > inform assmebler to emit bit manipulation instructions. However, > supporting of this directive only exist on GNU assembler and has not > landed on clang at the moment, making TOOLCHAIN_HAS_ZBB depend on > AS_IS_GNU. > > While it is still under review at https://reviews.llvm.org/D123515, the > upcoming Vector patch also requires this feature in assembler. Thus, > provide Kconfig AS_HAS_OPTION_ARCH to detect such feature. Then > TOOLCHAIN_HAS_XXX will be turned on automatically when the feature land. > > Suggested-by: Nathan Chancellor <nathan@kernel.org> > Signed-off-by: Andy Chiu <andy.chiu@sifive.com> > Reviewed-by: Conor Dooley <conor.dooley@microchip.com> > Reviewed-by: Nathan Chancellor <nathan@kernel.org> Reviewed-by: Heiko Stuebner <heiko.stuebner@vrull.eu> Tested-by: Heiko Stuebner <heiko.stuebner@vrull.eu>
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index d7252ced4ae6..91d5f2731f06 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -245,6 +245,12 @@ config RISCV_DMA_NONCOHERENT config AS_HAS_INSN def_bool $(as-instr,.insn r 51$(comma) 0$(comma) 0$(comma) t0$(comma) t0$(comma) zero) +config AS_HAS_OPTION_ARCH + # https://reviews.llvm.org/D123515 + def_bool y + depends on $(as-instr, .option arch$(comma) +m) + depends on !$(as-instr, .option arch$(comma) -i) + source "arch/riscv/Kconfig.socs" source "arch/riscv/Kconfig.errata" @@ -443,7 +449,7 @@ config TOOLCHAIN_HAS_ZBB depends on !64BIT || $(cc-option,-mabi=lp64 -march=rv64ima_zbb) depends on !32BIT || $(cc-option,-mabi=ilp32 -march=rv32ima_zbb) depends on LLD_VERSION >= 150000 || LD_VERSION >= 23900 - depends on AS_IS_GNU + depends on AS_HAS_OPTION_ARCH config RISCV_ISA_ZBB bool "Zbb extension support for bit manipulation instructions"