[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