* sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h (ARGIFY): New.

(internal_syscall1, internal_syscall2, internal_syscall3,
	internal_syscall4, internal_syscall5, internal_syscall6): Use it.
This commit is contained in:
Daniel Jacobowitz 2007-06-07 14:40:24 +00:00
parent 30efab519e
commit ffd3982334
2 changed files with 31 additions and 21 deletions

View File

@ -1,3 +1,9 @@
2007-06-07 Daniel Jacobowitz <dan@codesourcery.com>
* sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h (ARGIFY): New.
(internal_syscall1, internal_syscall2, internal_syscall3,
internal_syscall4, internal_syscall5, internal_syscall6): Use it.
2007-06-06 Daniel Jacobowitz <dan@codesourcery.com> 2007-06-06 Daniel Jacobowitz <dan@codesourcery.com>
* sysdeps/mips/nptl/tls.h (THREAD_GSCOPE_FLAG_UNUSED, * sysdeps/mips/nptl/tls.h (THREAD_GSCOPE_FLAG_UNUSED,

View File

@ -44,6 +44,10 @@
#else /* ! __ASSEMBLER__ */ #else /* ! __ASSEMBLER__ */
/* Convert X to a long long, without losing any bits if it is one
already or warning if it is a 32-bit pointer. */
#define ARGIFY(X) ((long long) (__typeof__ ((X) - (X))) (X))
/* Define a macro which expands into the inline wrapper code for a system /* Define a macro which expands into the inline wrapper code for a system
call. */ call. */
#undef INLINE_SYSCALL #undef INLINE_SYSCALL
@ -102,7 +106,7 @@
\ \
{ \ { \
register long long __v0 asm("$2") ncs_init; \ register long long __v0 asm("$2") ncs_init; \
register long long __a0 asm("$4") = (long long) arg1; \ register long long __a0 asm("$4") = ARGIFY (arg1); \
register long long __a3 asm("$7"); \ register long long __a3 asm("$7"); \
__asm__ volatile ( \ __asm__ volatile ( \
".set\tnoreorder\n\t" \ ".set\tnoreorder\n\t" \
@ -124,8 +128,8 @@
\ \
{ \ { \
register long long __v0 asm("$2") ncs_init; \ register long long __v0 asm("$2") ncs_init; \
register long long __a0 asm("$4") = (long long) arg1; \ register long long __a0 asm("$4") = ARGIFY (arg1); \
register long long __a1 asm("$5") = (long long) arg2; \ register long long __a1 asm("$5") = ARGIFY (arg2); \
register long long __a3 asm("$7"); \ register long long __a3 asm("$7"); \
__asm__ volatile ( \ __asm__ volatile ( \
".set\tnoreorder\n\t" \ ".set\tnoreorder\n\t" \
@ -147,9 +151,9 @@
\ \
{ \ { \
register long long __v0 asm("$2") ncs_init; \ register long long __v0 asm("$2") ncs_init; \
register long long __a0 asm("$4") = (long long) arg1; \ register long long __a0 asm("$4") = ARGIFY (arg1); \
register long long __a1 asm("$5") = (long long) arg2; \ register long long __a1 asm("$5") = ARGIFY (arg2); \
register long long __a2 asm("$6") = (long long) arg3; \ register long long __a2 asm("$6") = ARGIFY (arg3); \
register long long __a3 asm("$7"); \ register long long __a3 asm("$7"); \
__asm__ volatile ( \ __asm__ volatile ( \
".set\tnoreorder\n\t" \ ".set\tnoreorder\n\t" \
@ -171,10 +175,10 @@
\ \
{ \ { \
register long long __v0 asm("$2") ncs_init; \ register long long __v0 asm("$2") ncs_init; \
register long long __a0 asm("$4") = (long long) arg1; \ register long long __a0 asm("$4") = ARGIFY (arg1); \
register long long __a1 asm("$5") = (long long) arg2; \ register long long __a1 asm("$5") = ARGIFY (arg2); \
register long long __a2 asm("$6") = (long long) arg3; \ register long long __a2 asm("$6") = ARGIFY (arg3); \
register long long __a3 asm("$7") = (long long) arg4; \ register long long __a3 asm("$7") = ARGIFY (arg4); \
__asm__ volatile ( \ __asm__ volatile ( \
".set\tnoreorder\n\t" \ ".set\tnoreorder\n\t" \
cs_init \ cs_init \
@ -195,11 +199,11 @@
\ \
{ \ { \
register long long __v0 asm("$2") ncs_init; \ register long long __v0 asm("$2") ncs_init; \
register long long __a0 asm("$4") = (long long) arg1; \ register long long __a0 asm("$4") = ARGIFY (arg1); \
register long long __a1 asm("$5") = (long long) arg2; \ register long long __a1 asm("$5") = ARGIFY (arg2); \
register long long __a2 asm("$6") = (long long) arg3; \ register long long __a2 asm("$6") = ARGIFY (arg3); \
register long long __a3 asm("$7") = (long long) arg4; \ register long long __a3 asm("$7") = ARGIFY (arg4); \
register long long __a4 asm("$8") = (long long) arg5; \ register long long __a4 asm("$8") = ARGIFY (arg5); \
__asm__ volatile ( \ __asm__ volatile ( \
".set\tnoreorder\n\t" \ ".set\tnoreorder\n\t" \
cs_init \ cs_init \
@ -220,12 +224,12 @@
\ \
{ \ { \
register long long __v0 asm("$2") ncs_init; \ register long long __v0 asm("$2") ncs_init; \
register long long __a0 asm("$4") = (long long) arg1; \ register long long __a0 asm("$4") = ARGIFY (arg1); \
register long long __a1 asm("$5") = (long long) arg2; \ register long long __a1 asm("$5") = ARGIFY (arg2); \
register long long __a2 asm("$6") = (long long) arg3; \ register long long __a2 asm("$6") = ARGIFY (arg3); \
register long long __a3 asm("$7") = (long long) arg4; \ register long long __a3 asm("$7") = ARGIFY (arg4); \
register long long __a4 asm("$8") = (long long) arg5; \ register long long __a4 asm("$8") = ARGIFY (arg5); \
register long long __a5 asm("$9") = (long long) arg6; \ register long long __a5 asm("$9") = ARGIFY (arg6); \
__asm__ volatile ( \ __asm__ volatile ( \
".set\tnoreorder\n\t" \ ".set\tnoreorder\n\t" \
cs_init \ cs_init \