From c1de3cff1c552c33af99774bd47f4dcc98b51ad7 Mon Sep 17 00:00:00 2001 From: Biancaa Ramesh <87770461+Biancaa-R@users.noreply.github.com> Date: Sun, 9 Nov 2025 00:56:46 +0530 Subject: [PATCH 1/2] Update riscv_reg_impl.h to add warning * Added a warning message incase of force writing a dirty register. * Helps to see which registers are inconsistent. * Can later filter by this message if you suspect cache corruption. Signed-off-by: Biancaa Ramesh <87770461+Biancaa-R@users.noreply.github.com> --- src/target/riscv/riscv_reg_impl.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/target/riscv/riscv_reg_impl.h b/src/target/riscv/riscv_reg_impl.h index a860202529..842feaacfb 100644 --- a/src/target/riscv/riscv_reg_impl.h +++ b/src/target/riscv/riscv_reg_impl.h @@ -27,6 +27,11 @@ static inline bool riscv_reg_impl_is_initialized(const struct reg *reg) assert(reg->arch_info); assert(((riscv_reg_info_t *)reg->arch_info)->target); assert((!reg->exist && !reg->value) || (reg->exist && reg->value)); + if (!(reg->valid || !reg->dirty)) { + LOG_WARNING("riscv_reg_impl_is_initialized: reg cache invalid or dirty (%s)", + reg->name ? reg->name : "unknown"); + return false; + } assert(reg->valid || !reg->dirty); return true; } From 0da63a1e826a3ae2f7b473bee51641ad88ed7a1e Mon Sep 17 00:00:00 2001 From: Biancaa Ramesh Date: Mon, 10 Nov 2025 19:23:26 +0530 Subject: [PATCH 2/2] riscv: Fix warning riscv_reg_impl_is_initialized() Avoid uninitialized register cache warning by adding proper check Signed-off-by: Biancaa Ramesh --- src/target/riscv/riscv_reg_impl.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/target/riscv/riscv_reg_impl.h b/src/target/riscv/riscv_reg_impl.h index 842feaacfb..e4714cb11d 100644 --- a/src/target/riscv/riscv_reg_impl.h +++ b/src/target/riscv/riscv_reg_impl.h @@ -28,10 +28,10 @@ static inline bool riscv_reg_impl_is_initialized(const struct reg *reg) assert(((riscv_reg_info_t *)reg->arch_info)->target); assert((!reg->exist && !reg->value) || (reg->exist && reg->value)); if (!(reg->valid || !reg->dirty)) { - LOG_WARNING("riscv_reg_impl_is_initialized: reg cache invalid or dirty (%s)", - reg->name ? reg->name : "unknown"); - return false; - } + LOG_WARNING("%s: reg cache invalid or dirty (%s)", + __func__, reg->name ? reg->name : "unknown"); + return false; + } assert(reg->valid || !reg->dirty); return true; }