From: Charlie Jenkins Date: Mon, 31 Mar 2025 18:45:24 +0000 (-0700) Subject: riscv: Add norvc after .option arch in runtime const X-Git-Tag: v6.15-rc1~18^2^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6ee928185aeb0ff085c73ae2ee163d436eba8352;p=thirdparty%2Flinux.git riscv: Add norvc after .option arch in runtime const .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 Signed-off-by: Charlie Jenkins Fixes: a44fb5722199 ("riscv: Add runtime constant support") Closes: https://lore.kernel.org/all/cc8f3525-20b7-445b-877b-2add28a160a2@gmail.com/ Tested-by: Klara Modin Link: https://lore.kernel.org/r/20250331-fix_runtime_const_norvc-v1-1-89bc62687ab8@rivosinc.com Signed-off-by: Alexandre Ghiti --- diff --git a/arch/riscv/include/asm/runtime-const.h b/arch/riscv/include/asm/runtime-const.h index c07d049fdd5d2..451fd76b88115 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" \