SH: makecontext: exit (0) if uc_link is the null pointer.
authorThomas Schwinge <thomas@codesourcery.com>
Tue, 17 Jul 2012 08:06:06 +0000 (10:06 +0200)
committerThomas Schwinge <thomas@codesourcery.com>
Tue, 17 Jul 2012 08:06:06 +0000 (10:06 +0200)
ChangeLog
sysdeps/unix/sysv/linux/sh/makecontext.S

index 9c2930f..751b596 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2012-07-17  Thomas Schwinge  <thomas@codesourcery.com>
 
+       * sysdeps/unix/sysv/linux/sh/makecontext.S (.Lexitcode): Preserve
+       zero value for regular exit case.
+
        * sysdeps/unix/sysv/linux/x86_64/__start_context.S
        (__start_context): Preserve zero value for regular exit case.
 
index a04bc9f..73fca8b 100644 (file)
@@ -128,6 +128,7 @@ ENTRY(__makecontext)
        cfi_restore (pr)
        /* If this returns (which can happen if the syscall fails) we'll exit
           the program with the return error value (-1).  */
+       mov     r0, r4
 
 2:
        mov.l   .Lexit, r1
@@ -135,7 +136,7 @@ ENTRY(__makecontext)
        add     r12, r1
 #endif
        jsr     @r1
-        mov    r0, r4
+        nop
        /* The 'exit' call should never return.  In case it does cause the
           process to terminate.  */
        ABORT_INSTRUCTION_ASM