summaryrefslogtreecommitdiff
path: root/ldso
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2003-06-15 01:08:45 +0000
committerEric Andersen <andersen@codepoet.org>2003-06-15 01:08:45 +0000
commita8d9ee1f663268a01583923a792d5ede5cd4a0f8 (patch)
tree5147aae4184ca0870065fe5bd9f976dc5fbe138d /ldso
parent5f9e364ca5cd244b4ccd63dd2954108bba1f7853 (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.h17
-rw-r--r--ldso/ldso/powerpc/ld_syscalls.h17
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; \
} \