]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
* sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h (ARGIFY): New.
authorDaniel Jacobowitz <dan@codesourcery.com>
Thu, 7 Jun 2007 14:40:24 +0000 (14:40 +0000)
committerDaniel Jacobowitz <dan@codesourcery.com>
Thu, 7 Jun 2007 14:40:24 +0000 (14:40 +0000)
(internal_syscall1, internal_syscall2, internal_syscall3,
internal_syscall4, internal_syscall5, internal_syscall6): Use it.

ChangeLog.mips
sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h

index a99e165372c984a4af0150aa01ecb153a233e69e..346237f346241c75f5eec407efdfe35f2155d849 100644 (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>
 
        * sysdeps/mips/nptl/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
index d2635987f4131c14c63b5f8e5757f869c4f6645e..b15d280266d7ed7029af4c617511c2273737cc95 100644 (file)
 
 #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
    call.  */
 #undef INLINE_SYSCALL
                                                                        \
        {                                                               \
        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");                              \
        __asm__ volatile (                                              \
        ".set\tnoreorder\n\t"                                           \
                                                                        \
        {                                                               \
        register long long __v0 asm("$2") ncs_init;                     \
-       register long long __a0 asm("$4") = (long long) arg1;           \
-       register long long __a1 asm("$5") = (long long) arg2;           \
+       register long long __a0 asm("$4") = ARGIFY (arg1);              \
+       register long long __a1 asm("$5") = ARGIFY (arg2);              \
        register long long __a3 asm("$7");                              \
        __asm__ volatile (                                              \
        ".set\tnoreorder\n\t"                                           \
                                                                        \
        {                                                               \
        register long long __v0 asm("$2") ncs_init;                     \
-       register long long __a0 asm("$4") = (long long) arg1;           \
-       register long long __a1 asm("$5") = (long long) arg2;           \
-       register long long __a2 asm("$6") = (long long) arg3;           \
+       register long long __a0 asm("$4") = ARGIFY (arg1);              \
+       register long long __a1 asm("$5") = ARGIFY (arg2);              \
+       register long long __a2 asm("$6") = ARGIFY (arg3);              \
        register long long __a3 asm("$7");                              \
        __asm__ volatile (                                              \
        ".set\tnoreorder\n\t"                                           \
                                                                        \
        {                                                               \
        register long long __v0 asm("$2") ncs_init;                     \
-       register long long __a0 asm("$4") = (long long) arg1;           \
-       register long long __a1 asm("$5") = (long long) arg2;           \
-       register long long __a2 asm("$6") = (long long) arg3;           \
-       register long long __a3 asm("$7") = (long long) arg4;           \
+       register long long __a0 asm("$4") = ARGIFY (arg1);              \
+       register long long __a1 asm("$5") = ARGIFY (arg2);              \
+       register long long __a2 asm("$6") = ARGIFY (arg3);              \
+       register long long __a3 asm("$7") = ARGIFY (arg4);              \
        __asm__ volatile (                                              \
        ".set\tnoreorder\n\t"                                           \
        cs_init                                                         \
                                                                        \
        {                                                               \
        register long long __v0 asm("$2") ncs_init;                     \
-       register long long __a0 asm("$4") = (long long) arg1;           \
-       register long long __a1 asm("$5") = (long long) arg2;           \
-       register long long __a2 asm("$6") = (long long) arg3;           \
-       register long long __a3 asm("$7") = (long long) arg4;           \
-       register long long __a4 asm("$8") = (long long) arg5;           \
+       register long long __a0 asm("$4") = ARGIFY (arg1);              \
+       register long long __a1 asm("$5") = ARGIFY (arg2);              \
+       register long long __a2 asm("$6") = ARGIFY (arg3);              \
+       register long long __a3 asm("$7") = ARGIFY (arg4);              \
+       register long long __a4 asm("$8") = ARGIFY (arg5);              \
        __asm__ volatile (                                              \
        ".set\tnoreorder\n\t"                                           \
        cs_init                                                         \
                                                                        \
        {                                                               \
        register long long __v0 asm("$2") ncs_init;                     \
-       register long long __a0 asm("$4") = (long long) arg1;           \
-       register long long __a1 asm("$5") = (long long) arg2;           \
-       register long long __a2 asm("$6") = (long long) arg3;           \
-       register long long __a3 asm("$7") = (long long) arg4;           \
-       register long long __a4 asm("$8") = (long long) arg5;           \
-       register long long __a5 asm("$9") = (long long) arg6;           \
+       register long long __a0 asm("$4") = ARGIFY (arg1);              \
+       register long long __a1 asm("$5") = ARGIFY (arg2);              \
+       register long long __a2 asm("$6") = ARGIFY (arg3);              \
+       register long long __a3 asm("$7") = ARGIFY (arg4);              \
+       register long long __a4 asm("$8") = ARGIFY (arg5);              \
+       register long long __a5 asm("$9") = ARGIFY (arg6);              \
        __asm__ volatile (                                              \
        ".set\tnoreorder\n\t"                                           \
        cs_init                                                         \