From bac2df6bc8223cf2d8d6284b0eb2c7e81b2b8dab Mon Sep 17 00:00:00 2001 From: Huang Qi Date: Thu, 16 Jan 2025 14:51:46 +0800 Subject: [PATCH] risc-v: replace fence.i with __ISB for instruction sync Summary: - Replace direct use of `fence.i` instruction with `__ISB()` macro for instruction synchronization - This change improves portability while maintaining the same functionality Impact: - No functional changes - both `fence.i` and `__ISB()` ensure instruction synchronization on RISC-V - Makes the code more maintainable by using the architecture abstraction layer Signed-off-by: Huang Qi --- libs/libc/machine/risc-v/arch_elf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libs/libc/machine/risc-v/arch_elf.c b/libs/libc/machine/risc-v/arch_elf.c index 98d99a4f1c..c5d071ff6f 100644 --- a/libs/libc/machine/risc-v/arch_elf.c +++ b/libs/libc/machine/risc-v/arch_elf.c @@ -33,6 +33,7 @@ #include #include +#include /**************************************************************************** * Pre-processor Definitions @@ -129,7 +130,7 @@ static void _set_val(uint16_t *addr, uint32_t val) /* NOTE: Ensure relocation before execution */ - asm volatile ("fence.i"); + __ISB(); } static void _add_val(uint16_t *addr, uint32_t val)