This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 3/6] aarch64: Tidy syscall error check


On 20 May 2014 21:56, Richard Henderson <rth@twiddle.net> wrote:
> From: Richard Henderson <rth@redhat.com>
>
> Move the error branch from the PSEUDO_RET macro to the PSEUDO macro.
> This is in line with other architectures, and will enable further improvments.
>
>         * sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h (PSEUDO):
>         Branch to .Lsyscall_error on error.  Do not call DOARGS/UNDOARGS.
>         * sysdeps/unix/sysv/linux/aarch64/sysdep.h (PSEUDO): Branch to
>         .Lsyscall_error on error.
>         (PSEUDO_RET): Do not check for error.
>         (SYSCALL_ERROR) [NOT_IN_libc]: Use .Lsyscall_error.
>         (SYSCALL_ERROR_HANDLER) [!NOT_IN_libc]: Branch to __syscall_error.

>      SINGLE_THREAD_P;                                                   \
> -    DOARGS_##args;                                                     \
>      bne .Lpseudo_cancel;                                               \
>      DO_CALL (syscall_name, 0);                                         \
> -    UNDOARGS_##args;                                                   \
>      cmn x0, 4095;                                                      \

If we drop the removal of DOARGS and UNDOARGS and take that cleanup
separately then the remainder of this patch looks OK to me.

/Marcus


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]