OSDN Git Service

Richard Sandiford writes:
authorMike Frysinger <vapier@gentoo.org>
Wed, 7 Jun 2006 14:30:51 +0000 (14:30 -0000)
committerMike Frysinger <vapier@gentoo.org>
Wed, 7 Jun 2006 14:30:51 +0000 (14:30 -0000)
Until a few months ago, libc/sysdeps/linux/m68k/clone.S defined
__syscall_error itself.  This local definition was removed in
revision 13305:

However, the clone code uses bcc.w to branch to __syscall_error.
This made sense when there was a local definition, because the
label was guaranteed to be in range.  We can't guarantee that
the external definition will be in range though; it depends on
the order that the objects are linked.

This patch adjusts clone.S to use jbcc instead.

libc/sysdeps/linux/m68k/clone.S

index 2735bcb..8ef916e 100644 (file)
@@ -21,11 +21,11 @@ clone:
        movel   4(%sp), %d1             /* no NULL function pointers */
        movel   %d1, %a0
        tstl    %d1
-       beq.w   __syscall_error
+       jbeq    __syscall_error
        movel   8(%sp), %d1             /* no NULL stack pointers */
        movel   %d1, %a1
        tstl    %d1
-       beq.w   __syscall_error
+       jbeq    __syscall_error
 
        /* Allocate space and copy the argument onto the new stack.  */
        movel   16(%sp), -(%a1)
@@ -50,7 +50,7 @@ clone:
 #endif
 
        tstl    %d0
-       bmi.w   __syscall_error
+       jbmi    __syscall_error
        beq.w   thread_start
 
        rts