[PATCH FOR-NEXT] riscv: Add norvc after .option arch in runtime const

Klara Modin klarasmodin at gmail.com
Mon Mar 31 12:39:50 PDT 2025


On 2025-03-31 20:45, Charlie Jenkins wrote:
> .option arch clobbers .option norvc. Prevent gas from emitting
> compressed instructions in the runtime const alternative blocks by
> setting .option norvc after .option arch. This issue starts appearing on
> gcc 15, which adds zca to the march.
> 
> Reported by: Klara Modin <klarasmodin at gmail.com>
> 
> Signed-off-by: Charlie Jenkins <charlie at rivosinc.com>
> Fixes: a44fb5722199 ("riscv: Add runtime constant support")
> Closes: https://lore.kernel.org/all/cc8f3525-20b7-445b-877b-2add28a160a2@gmail.com/
> ---
>   arch/riscv/include/asm/runtime-const.h | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/arch/riscv/include/asm/runtime-const.h b/arch/riscv/include/asm/runtime-const.h
> index c07d049fdd5d2999c57d8a90e7363829c5462368..451fd76b881152919f22de8f5c56b51171acbf3c 100644
> --- a/arch/riscv/include/asm/runtime-const.h
> +++ b/arch/riscv/include/asm/runtime-const.h
> @@ -56,6 +56,7 @@
>   #define RISCV_RUNTIME_CONST_64_ZBA				\
>   	".option push\n\t"					\
>   	".option arch,+zba\n\t"					\
> +	".option norvc\n\t"					\
>   	"slli	%[__tmp],%[__tmp],32\n\t"			\
>   	"add.uw %[__ret],%[__ret],%[__tmp]\n\t"			\
>   	"nop\n\t"						\
> @@ -65,6 +66,7 @@
>   #define RISCV_RUNTIME_CONST_64_ZBKB				\
>   	".option push\n\t"					\
>   	".option arch,+zbkb\n\t"				\
> +	".option norvc\n\t"					\
>   	"pack	%[__ret],%[__ret],%[__tmp]\n\t"			\
>   	"nop\n\t"						\
>   	"nop\n\t"						\
> 
> ---
> base-commit: b2117b630c48be69d2782ed79fefe35dcd192ce6
> change-id: 20250331-fix_runtime_const_norvc-407af1f24541

Thanks!

Tested-by: Klara Modin <klarasmodin at gmail.com>



More information about the linux-riscv mailing list