diff options
author | Eric Andersen <andersen@codepoet.org> | 2003-06-15 01:08:45 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2003-06-15 01:08:45 +0000 |
commit | a8d9ee1f663268a01583923a792d5ede5cd4a0f8 (patch) | |
tree | 5147aae4184ca0870065fe5bd9f976dc5fbe138d /ldso | |
parent | 5f9e364ca5cd244b4ccd63dd2954108bba1f7853 (diff) |
Implement syscall() for powerpc. Fixup syscall code so
it compiles properly with gcc 3.3.
-Erik
Diffstat (limited to 'ldso')
-rw-r--r-- | ldso/ldso/powerpc/dl-syscalls.h | 17 | ||||
-rw-r--r-- | ldso/ldso/powerpc/ld_syscalls.h | 17 |
2 files changed, 18 insertions, 16 deletions
diff --git a/ldso/ldso/powerpc/dl-syscalls.h b/ldso/ldso/powerpc/dl-syscalls.h index 1539d64ab..3e561d661 100644 --- a/ldso/ldso/powerpc/dl-syscalls.h +++ b/ldso/ldso/powerpc/dl-syscalls.h @@ -32,7 +32,8 @@ #undef __syscall_clobbers #define __syscall_clobbers \ - "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12" + "r9", "r10", "r11", "r12" + //"r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12" #undef _syscall0 #define _syscall0(type,name) \ @@ -49,7 +50,7 @@ type name(void) \ "mfcr %1 " \ : "=&r" (__sc_3), "=&r" (__sc_0) \ : "0" (__sc_3), "1" (__sc_0) \ - : __syscall_clobbers); \ + : "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12" ); \ __sc_ret = __sc_3; \ __sc_err = __sc_0; \ } \ @@ -72,7 +73,7 @@ type name(type1 arg1) \ "mfcr %1 " \ : "=&r" (__sc_3), "=&r" (__sc_0) \ : "0" (__sc_3), "1" (__sc_0) \ - : __syscall_clobbers); \ + : "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12" ); \ __sc_ret = __sc_3; \ __sc_err = __sc_0; \ } \ @@ -98,7 +99,7 @@ type name(type1 arg1, type2 arg2) \ : "=&r" (__sc_3), "=&r" (__sc_0) \ : "0" (__sc_3), "1" (__sc_0), \ "r" (__sc_4) \ - : __syscall_clobbers); \ + : "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12" ); \ __sc_ret = __sc_3; \ __sc_err = __sc_0; \ } \ @@ -127,7 +128,7 @@ type name(type1 arg1, type2 arg2, type3 arg3) \ : "0" (__sc_3), "1" (__sc_0), \ "r" (__sc_4), \ "r" (__sc_5) \ - : __syscall_clobbers); \ + : "r6", "r7", "r8", "r9", "r10", "r11", "r12" ); \ __sc_ret = __sc_3; \ __sc_err = __sc_0; \ } \ @@ -159,7 +160,7 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ "r" (__sc_4), \ "r" (__sc_5), \ "r" (__sc_6) \ - : __syscall_clobbers); \ + : "r7", "r8", "r9", "r10", "r11", "r12" ); \ __sc_ret = __sc_3; \ __sc_err = __sc_0; \ } \ @@ -194,7 +195,7 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ "r" (__sc_5), \ "r" (__sc_6), \ "r" (__sc_7) \ - : __syscall_clobbers); \ + : "r8", "r9", "r10", "r11", "r12" ); \ __sc_ret = __sc_3; \ __sc_err = __sc_0; \ } \ @@ -233,7 +234,7 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6 "r" (__sc_6), \ "r" (__sc_7), \ "r" (__sc_8) \ - : __syscall_clobbers); \ + : "r9", "r10", "r11", "r12" ); \ __sc_ret = __sc_3; \ __sc_err = __sc_0; \ } \ diff --git a/ldso/ldso/powerpc/ld_syscalls.h b/ldso/ldso/powerpc/ld_syscalls.h index 1539d64ab..3e561d661 100644 --- a/ldso/ldso/powerpc/ld_syscalls.h +++ b/ldso/ldso/powerpc/ld_syscalls.h @@ -32,7 +32,8 @@ #undef __syscall_clobbers #define __syscall_clobbers \ - "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12" + "r9", "r10", "r11", "r12" + //"r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12" #undef _syscall0 #define _syscall0(type,name) \ @@ -49,7 +50,7 @@ type name(void) \ "mfcr %1 " \ : "=&r" (__sc_3), "=&r" (__sc_0) \ : "0" (__sc_3), "1" (__sc_0) \ - : __syscall_clobbers); \ + : "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12" ); \ __sc_ret = __sc_3; \ __sc_err = __sc_0; \ } \ @@ -72,7 +73,7 @@ type name(type1 arg1) \ "mfcr %1 " \ : "=&r" (__sc_3), "=&r" (__sc_0) \ : "0" (__sc_3), "1" (__sc_0) \ - : __syscall_clobbers); \ + : "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12" ); \ __sc_ret = __sc_3; \ __sc_err = __sc_0; \ } \ @@ -98,7 +99,7 @@ type name(type1 arg1, type2 arg2) \ : "=&r" (__sc_3), "=&r" (__sc_0) \ : "0" (__sc_3), "1" (__sc_0), \ "r" (__sc_4) \ - : __syscall_clobbers); \ + : "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12" ); \ __sc_ret = __sc_3; \ __sc_err = __sc_0; \ } \ @@ -127,7 +128,7 @@ type name(type1 arg1, type2 arg2, type3 arg3) \ : "0" (__sc_3), "1" (__sc_0), \ "r" (__sc_4), \ "r" (__sc_5) \ - : __syscall_clobbers); \ + : "r6", "r7", "r8", "r9", "r10", "r11", "r12" ); \ __sc_ret = __sc_3; \ __sc_err = __sc_0; \ } \ @@ -159,7 +160,7 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ "r" (__sc_4), \ "r" (__sc_5), \ "r" (__sc_6) \ - : __syscall_clobbers); \ + : "r7", "r8", "r9", "r10", "r11", "r12" ); \ __sc_ret = __sc_3; \ __sc_err = __sc_0; \ } \ @@ -194,7 +195,7 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ "r" (__sc_5), \ "r" (__sc_6), \ "r" (__sc_7) \ - : __syscall_clobbers); \ + : "r8", "r9", "r10", "r11", "r12" ); \ __sc_ret = __sc_3; \ __sc_err = __sc_0; \ } \ @@ -233,7 +234,7 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6 "r" (__sc_6), \ "r" (__sc_7), \ "r" (__sc_8) \ - : __syscall_clobbers); \ + : "r9", "r10", "r11", "r12" ); \ __sc_ret = __sc_3; \ __sc_err = __sc_0; \ } \ |