From c8c53b2ea49142f4e764520e0af71c0d48bbf00a Mon Sep 17 00:00:00 2001 From: Feiyang Chen Date: Tue, 3 Jan 2023 11:17:29 +0800 Subject: [PATCH] valgrind: Sync LoongArch with glibc 2.36 --- coregrind/vgdb-invoker-ptrace.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/coregrind/vgdb-invoker-ptrace.c b/coregrind/vgdb-invoker-ptrace.c index 7865c53..d930589 100644 --- a/coregrind/vgdb-invoker-ptrace.c +++ b/coregrind/vgdb-invoker-ptrace.c @@ -759,11 +759,7 @@ void restore_and_detach (pid_t pid) } DEBUG(1, "setregs restore registers pid %d\n", pid_of_save_regs); -#if defined(VGP_loongarch64_linux) - if (!setregs(pid_of_save_regs, &user_save.gpr, sizeof(user_save.gpr))) { -#else if (!setregs(pid_of_save_regs, &user_save.regs, sizeof(user_save.regs))) { -#endif ERROR(errno, "setregs restore registers pid %d after cont\n", pid_of_save_regs); } @@ -845,11 +841,7 @@ Bool invoker_invoke_gdbserver (pid_t pid) return False; } -#if defined(VGP_loongarch64_linux) - if (!getregs(pid, &user_mod.gpr, sizeof(user_mod.gpr))) { -#else if (!getregs(pid, &user_mod.regs, sizeof(user_mod.regs))) { -#endif detach_from_all_threads(pid); return False; } @@ -885,7 +877,7 @@ Bool invoker_invoke_gdbserver (pid_t pid) #elif defined(VGA_mips64) sp = user_mod.regs[29]; #elif defined(VGA_loongarch64) - sp = user_mod.gpr[3]; + sp = user_mod.regs[3]; #else I_die_here : (sp) architecture missing in vgdb-invoker-ptrace.c #endif @@ -1084,10 +1076,10 @@ Bool invoker_invoke_gdbserver (pid_t pid) user_mod.regs[25] = shared64->invoke_gdbserver; #elif defined(VGA_loongarch64) /* put check arg in register a0 */ - user_mod.gpr[4] = check; + user_mod.regs[4] = check; /* put NULL return address in ra */ - user_mod.gpr[1] = bad_return; - user_mod.pc = shared64->invoke_gdbserver; + user_mod.regs[1] = bad_return; + user_mod.csr_era = shared64->invoke_gdbserver; #else I_die_here: architecture missing in vgdb-invoker-ptrace.c #endif @@ -1096,11 +1088,7 @@ Bool invoker_invoke_gdbserver (pid_t pid) assert(0); } -#if defined(VGP_loongarch64_linux) - if (!setregs(pid, &user_mod.gpr, sizeof(user_mod.gpr))) { -#else if (!setregs(pid, &user_mod.regs, sizeof(user_mod.regs))) { -#endif detach_from_all_threads(pid); return False; } -- 2.33.0