From f26a978c638bcbc621669dce0ab89e43af42af98 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 26 Oct 2020 21:32:22 -0700
Subject: [PATCH] Define correct gregs for RISCV32

Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>

Updated patch for 6.2.1
Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>

---
 src/debug.c | 26 ++++++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)

diff --git a/src/debug.c b/src/debug.c
index 2da2c5d..1d778fa 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -1116,7 +1116,9 @@ static void *getMcontextEip(ucontext_t *uc) {
     #endif
 #elif defined(__linux__)
     /* Linux */
-    #if defined(__i386__) || ((defined(__X86_64__) || defined(__x86_64__)) && defined(__ILP32__))
+    #if defined(__riscv) && __riscv_xlen == 32
+    return (void*) uc->uc_mcontext.__gregs[REG_PC];
+    #elif defined(__i386__) || ((defined(__X86_64__) || defined(__x86_64__)) && defined(__ILP32__))
     return (void*) uc->uc_mcontext.gregs[14]; /* Linux 32 */
     #elif defined(__X86_64__) || defined(__x86_64__)
     return (void*) uc->uc_mcontext.gregs[16]; /* Linux 64 */
@@ -1298,8 +1300,28 @@ void logRegisters(ucontext_t *uc) {
     #endif
 /* Linux */
 #elif defined(__linux__)
+    /* Linux RISCV32 */
+    #if defined(__riscv) && __riscv_xlen == 32
+    serverLog(LL_WARNING,
+    "\n"
+    "RA:%08lx S0:%08lx S1:%08lx S2:%08lx\n"
+    "SP:%08lx PC:%08lx A0:%08lx A1:%08lx\n"
+    "A2 :%08lx A3:%08lx A4:%08lx",
+        (unsigned long) uc->uc_mcontext.__gregs[REG_RA],
+        (unsigned long) uc->uc_mcontext.__gregs[REG_S0],
+        (unsigned long) uc->uc_mcontext.__gregs[REG_S1],
+        (unsigned long) uc->uc_mcontext.__gregs[REG_S2],
+        (unsigned long) uc->uc_mcontext.__gregs[REG_SP],
+        (unsigned long) uc->uc_mcontext.__gregs[REG_PC],
+        (unsigned long) uc->uc_mcontext.__gregs[REG_A0 + 0],
+        (unsigned long) uc->uc_mcontext.__gregs[REG_A0 + 1],
+        (unsigned long) uc->uc_mcontext.__gregs[REG_A0 + 2],
+        (unsigned long) uc->uc_mcontext.__gregs[REG_A0 + 3],
+        (unsigned long) uc->uc_mcontext.__gregs[REG_A0 + 4]
+    );
+    logStackContent((void**)uc->uc_mcontext.__gregs[REG_SP]);
     /* Linux x86 */
-    #if defined(__i386__) || ((defined(__X86_64__) || defined(__x86_64__)) && defined(__ILP32__))
+    #elif defined(__i386__) || ((defined(__X86_64__) || defined(__x86_64__)) && defined(__ILP32__))
     serverLog(LL_WARNING,
     "\n"
     "EAX:%08lx EBX:%08lx ECX:%08lx EDX:%08lx\n"
