https://bugs.kde.org/show_bug.cgi?id=368823

            Bug ID: 368823
           Summary: run_a_thread_NORETURN assembly code typo for
                    VGP_arm64_linux target
           Product: valgrind
           Version: 3.11.0
          Platform: Android
                OS: other
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: memcheck
          Assignee: jsew...@acm.org
          Reporter: c...@google.com

When compiled with clang/llvm, llvm assembler reported error in
run_a_thread_NORETURN assembly code. The following diff will fix the problem.

diff --git a/coregrind/m_syswrap/syswrap-linux.c
b/coregrind/m_syswrap/syswrap-linux.c
index f796969..6584c16 100644
--- a/coregrind/m_syswrap/syswrap-linux.c
+++ b/coregrind/m_syswrap/syswrap-linux.c
@@ -269,12 +269,12 @@ static void run_a_thread_NORETURN ( Word tidW )
 #elif defined(VGP_arm64_linux)
       asm volatile (
          "str  %w1, %0\n"     /* set tst->status = VgTs_Empty (32-bit store)
*/
-         "mov  x8,  %2\n"     /* set %r7 = __NR_exit */
-         "ldr  x0,  %3\n"     /* set %r0 = tst->os_state.exitcode */
+         "mov  x8,  %2\n"     /* set %x8 = __NR_exit */
+         "ldr  x0,  %3\n"     /* set %x0 = tst->os_state.exitcode */
          "svc  0x00000000\n"  /* exit(tst->os_state.exitcode) */
          : "=m" (tst->status)
          : "r" (VgTs_Empty), "n" (__NR_exit), "m" (tst->os_state.exitcode)
-         : "r0", "r7"
+         : "x0", "x8"
       );
 #elif defined(VGP_s390x_linux)
       asm volatile (


Reproducible: Always

Steps to Reproduce:
On Android platform, use clang/llvm to build external/valgrind for
aosp_arm64-eng target.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to