[v2,1/9] aarch64: Remove DOARGS/UNDOARGS macros

Message ID 1400890309-16710-2-git-send-email-rth@twiddle.net
State Committed
Headers

Commit Message

Richard Henderson May 24, 2014, 12:11 a.m. UTC
  From: Richard Henderson <rth@redhat.com>

While they do something for AArch32, they're useless for AArch64.
---
 .../unix/sysv/linux/aarch64/nptl/sysdep-cancel.h   |  3 ---
 sysdeps/unix/sysv/linux/aarch64/sysdep.h           | 24 ++--------------------
 2 files changed, 2 insertions(+), 25 deletions(-)
  

Comments

Marcus Shawcroft May 24, 2014, 8:21 a.m. UTC | #1
On 24 May 2014 01:11, Richard Henderson <rth@twiddle.net> wrote:
> From: Richard Henderson <rth@redhat.com>
>
> While they do something for AArch32, they're useless for AArch64.
> ---
>  .../unix/sysv/linux/aarch64/nptl/sysdep-cancel.h   |  3 ---
>  sysdeps/unix/sysv/linux/aarch64/sysdep.h           | 24 ++--------------------
>  2 files changed, 2 insertions(+), 25 deletions(-)

>  /* Linux takes system call args in registers:
> -       syscall number  in the SVC instruction
> +       syscall number  x8

Clearly the comment is wrong and needs updating, but it is not related
to the rest of this patch.

Ok, but two commits please.


/Marcus
  

Patch

diff --git a/sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h b/sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
index 24fae7b..957bb99 100644
--- a/sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
+++ b/sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
@@ -38,10 +38,8 @@ 
     .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel;	\
   ENTRY (name);								\
     SINGLE_THREAD_P;							\
-    DOARGS_##args;							\
     bne .Lpseudo_cancel;						\
     DO_CALL (syscall_name, 0);						\
-    UNDOARGS_##args;							\
     cmn x0, 4095;							\
     PSEUDO_RET;								\
   .Lpseudo_cancel:							\
@@ -60,7 +58,6 @@ 
     ldr x30, [sp], 16;							\
     cfi_adjust_cfa_offset (-16);					\
     cfi_restore (x30);							\
-    UNDOARGS_##args;							\
     cmn x0, 4095;
 
 # define DOCARGS_0							\
diff --git a/sysdeps/unix/sysv/linux/aarch64/sysdep.h b/sysdeps/unix/sysv/linux/aarch64/sysdep.h
index 8397ad3..cffd008 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sysdep.h
@@ -148,7 +148,7 @@  __local_syscall_error:						\
 # endif
 
 /* Linux takes system call args in registers:
-	syscall number	in the SVC instruction
+	syscall number	x8
 	arg 1		x0
 	arg 2		x1
 	arg 3		x2
@@ -172,28 +172,8 @@  __local_syscall_error:						\
 
 # undef	DO_CALL
 # define DO_CALL(syscall_name, args)		\
-    DOARGS_##args				\
     mov x8, SYS_ify (syscall_name);		\
-    svc 0;					\
-    UNDOARGS_##args
-
-# define DOARGS_0 /* nothing */
-# define DOARGS_1 /* nothing */
-# define DOARGS_2 /* nothing */
-# define DOARGS_3 /* nothing */
-# define DOARGS_4 /* nothing */
-# define DOARGS_5 /* nothing */
-# define DOARGS_6 /* nothing */
-# define DOARGS_7 /* nothing */
-
-# define UNDOARGS_0 /* nothing */
-# define UNDOARGS_1 /* nothing */
-# define UNDOARGS_2 /* nothing */
-# define UNDOARGS_3 /* nothing */
-# define UNDOARGS_4 /* nothing */
-# define UNDOARGS_5 /* nothing */
-# define UNDOARGS_6 /* nothing */
-# define UNDOARGS_7 /* nothing */
+    svc 0
 
 #else /* not __ASSEMBLER__ */