diff options
| author | Mike Frysinger <vapier@gentoo.org> | 2006-06-07 12:30:09 +0000 | 
|---|---|---|
| committer | Mike Frysinger <vapier@gentoo.org> | 2006-06-07 12:30:09 +0000 | 
| commit | b08728d5872c59b6830ed74bae57342b473f8757 (patch) | |
| tree | b71af6e2d77074f7f3d0a97c2862528c07005175 /libc | |
| parent | 3414e4ba22701ac68dedb941017ef6be28a56868 (diff) | |
merge syscall fixes from upstream blackfin cvs
Diffstat (limited to 'libc')
| -rw-r--r-- | libc/sysdeps/linux/bfin/bits/syscalls.h | 226 | 
1 files changed, 107 insertions, 119 deletions
diff --git a/libc/sysdeps/linux/bfin/bits/syscalls.h b/libc/sysdeps/linux/bfin/bits/syscalls.h index 5ffaa7a8b..f4c0e60d1 100644 --- a/libc/sysdeps/linux/bfin/bits/syscalls.h +++ b/libc/sysdeps/linux/bfin/bits/syscalls.h @@ -46,147 +46,135 @@ do { \  #define _syscall0(type,name)						\  type name(void) {							\ -  long __res;								\ -  __asm__ __volatile__ (						\ -  "p0 = %1;\n\t"							\ -  "excpt 0;\n\t" 							\ -  "%0=r0;\n\t"								\ -  : "=da" (__res) 							\ -  : "i" (__NR_##name)							\ -  : "CC", "P0");							\ -__syscall_return(type,__res);						\ +	long __res;							\ +	__asm__ __volatile__ (						\ +		"p0 = %1;\n\t"						\ +		"excpt 0;\n\t"						\ +		"%0=r0;\n\t"						\ +		: "=da" (__res)						\ +		: "i" (__NR_##name)					\ +		: "memory","CC","P0");					\ +	__syscall_return(type,__res);					\  }  #define _syscall1(type,name,type1,arg1)					\  type name(type1 arg1) {							\ -  long __res;								\ -  __asm__ __volatile__ (						\ -  "r0=%2;\n\t"								\ -  "p0=%1;\n\t"								\ -  "excpt 0;\n\t" 							\ -  "%0=r0;\n\t"								\ -        : "=da" (__res)							\ -        : "i" (__NR_##name),						\ -	  "a" ((long)(arg1))						\ -	: "CC", "R0", "P0");						\ -__syscall_return(type,__res);						\ +	long __res;							\ +	__asm__ __volatile__ (						\ +		"r0=%2;\n\t"						\ +		"p0=%1;\n\t"						\ +		"excpt 0;\n\t"						\ +		"%0=r0;\n\t"						\ +		: "=da" (__res)						\ +		: "i" (__NR_##name),					\ +		  "rm" ((long)(arg1))					\ +		: "memory","CC","R0","P0");				\ +	__syscall_return(type,__res);					\  }  #define _syscall2(type,name,type1,arg1,type2,arg2)			\  type name(type1 arg1,type2 arg2) {					\ -  long __res;								\ -  __asm__ __volatile__ (						\ -  "r1=%3;\n\t"								\ -  "r0=%2;\n\t"								\ -  "p0=%1;\n\t"								\ -  "excpt 0;\n\t" 							\ -  "%0=r0;\n\t"								\ -        : "=da" (__res)							\ -        : "i" (__NR_##name),						\ -	  "a" ((long)(arg1)),						\ -	  "a" ((long)(arg2))						\ -	: "CC", "R0","R1", "P0");					\ -__syscall_return(type,__res);						\ +	long __res;							\ +	__asm__ __volatile__ (						\ +		"r1=%3;\n\t"						\ +		"r0=%2;\n\t"						\ +		"p0=%1;\n\t"						\ +		"excpt 0;\n\t"						\ +		"%0=r0;\n\t"						\ +		: "=da" (__res)						\ +		: "i" (__NR_##name),					\ +		  "rm" ((long)(arg1)),					\ +		  "rm" ((long)(arg2))					\ +		: "memory","CC","R0","R1","P0");			\ +	__syscall_return(type,__res);					\  } -  #define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3)		\  type name(type1 arg1,type2 arg2,type3 arg3) {				\ -  long __res;								\ -  __asm__ __volatile__ (						\ -  "r2=%4;\n\t"								\ -  "r1=%3;\n\t"								\ -  "r0=%2;\n\t"								\ -  "p0=%1;\n\t"								\ -  "excpt 0;\n\t" 							\ -  "%0=r0;\n\t"								\ -        : "=da" (__res)							\ -        : "i"   (__NR_##name),						\ -	  "a"   ((long)(arg1)),						\ -	  "a"   ((long)(arg2)),						\ -	  "a"   ((long)(arg3))						\ -        : "CC", "R0","R1","R2", "P0");					\ -__syscall_return(type,__res);						\ +	long __res;							\ +	__asm__ __volatile__ (						\ +		"r2=%4;\n\t"						\ +		"r1=%3;\n\t"						\ +		"r0=%2;\n\t"						\ +		"p0=%1;\n\t"						\ +		"excpt 0;\n\t"						\ +		"%0=r0;\n\t"						\ +		: "=da" (__res)						\ +		: "i"   (__NR_##name),					\ +		  "rm"   ((long)(arg1)),				\ +		  "rm"   ((long)(arg2)),				\ +		  "rm"   ((long)(arg3))					\ +		: "memory","CC","R0","R1","R2","P0");			\ +	__syscall_return(type,__res);					\  }  #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4)\  type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) {		\ -  long __res;								\ -  __asm__ __volatile__ (						\ -  "[--sp] = r3;\n\t"							\ -  "r3=%5;\n\t"								\ -  "r2=%4;\n\t"								\ -  "r1=%3;\n\t"								\ -  "r0=%2;\n\t"								\ -  "p0=%1;\n\t"								\ -  "excpt 0;\n\t" 							\ -  "%0=r0;\n\t"								\ -  "r3 = [sp++];\n\t"							\ -  	: "=da" (__res)							\ -  	: "i"  (__NR_##name),						\ -	  "a"  ((long)(arg1)),						\ -	  "a"  ((long)(arg2)),						\ -	  "a"  ((long)(arg3)),						\ -	  "a"  ((long)(arg4))						\ -  	: "CC", "R0","R1","R2","R3", "P0");				\ -__syscall_return(type,__res);						\ +	long __res;							\ +	__asm__ __volatile__ (						\ +		"r3=%5;\n\t"						\ +		"r2=%4;\n\t"						\ +		"r1=%3;\n\t"						\ +		"r0=%2;\n\t"						\ +		"p0=%1;\n\t"						\ +		"excpt 0;\n\t"						\ +		"%0=r0;\n\t"						\ +		: "=da" (__res)						\ +		: "i"  (__NR_##name),					\ +		  "rm"  ((long)(arg1)),					\ +		  "rm"  ((long)(arg2)),					\ +		  "rm"  ((long)(arg3)),					\ +		  "rm"  ((long)(arg4))					\ +		: "memory","CC","R0","R1","R2","R3","P0");		\ +	__syscall_return(type,__res);					\  }  #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5)	\  type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) {	\ -  long __res;								\ -  __asm__ __volatile__ (						\ -  "[--sp] = r4;\n\t"                                                    \ -  "[--sp] = r3;\n\t"                                                    \ -  "r4=%6;\n\t"								\ -  "r3=%5;\n\t"								\ -  "r2=%4;\n\t"								\ -  "r1=%3;\n\t"								\ -  "r0=%2;\n\t"								\ -  "P0=%1;\n\t"								\ -  "excpt 0;\n\t" 							\ -  "%0=r0;\n\t"								\ -  "r3 = [sp++];\n\t" 							\ -  "r4 = [sp++];\n\t"                                                    \ -  	: "=da" (__res)							\ -  	: "i"  (__NR_##name),						\ -	  "rm"  ((long)(arg1)),						\ -	  "rm"  ((long)(arg2)),						\ -	  "rm"  ((long)(arg3)),						\ -	  "rm"  ((long)(arg4)),						\ -	  "rm"  ((long)(arg5))						\ -	: "CC","R0","R1","R2","R3","R4","P0");				\ -__syscall_return(type,__res);						\ +	long __res;							\ +	__asm__ __volatile__ (						\ +		"r4=%6;\n\t"						\ +		"r3=%5;\n\t"						\ +		"r2=%4;\n\t"						\ +		"r1=%3;\n\t"						\ +		"r0=%2;\n\t"						\ +		"P0=%1;\n\t"						\ +		"excpt 0;\n\t"						\ +		"%0=r0;\n\t"						\ +		: "=da" (__res)						\ +		: "i"  (__NR_##name),					\ +		  "rm"  ((long)(arg1)),					\ +		  "rm"  ((long)(arg2)),					\ +		  "rm"  ((long)(arg3)),					\ +		  "rm"  ((long)(arg4)),					\ +		  "rm"  ((long)(arg5))					\ +		: "memory","CC","R0","R1","R2","R3","R4","P0");		\ +	__syscall_return(type,__res);					\  } -#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5,type6,arg6)	\ -type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6) {	\ -  long __res;								\ -  __asm__ __volatile__ (						\ -  "[--sp] = r5;\n\t"                                                    \ -  "[--sp] = r4;\n\t"                                                    \ -  "[--sp] = r3;\n\t"                                                    \ -  "r4=%6;\n\t"								\ -  "r3=%5;\n\t"								\ -  "r2=%4;\n\t"								\ -  "r1=%3;\n\t"								\ -  "r0=%2;\n\t"								\ -  "P0=%1;\n\t"								\ -  "excpt 0;\n\t" 							\ -  "%0=r0;\n\t"								\ -  "r3 = [sp++];\n\t" 							\ -  "r4 = [sp++];\n\t"                                                    \ -  "r5 = [sp++];\n\t"                                                    \ -  	: "=da" (__res)							\ -  	: "i"  (__NR_##name),						\ -	  "rm"  ((long)(arg1)),						\ -	  "rm"  ((long)(arg2)),						\ -	  "rm"  ((long)(arg3)),						\ -	  "rm"  ((long)(arg4)),						\ -	  "rm"  ((long)(arg5)),						\ -	  "rm"  ((long)(arg6))						\ -	: "CC","R0","R1","R2","R3","R4","R5","P0");				\ -__syscall_return(type,__res);						\ +#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5,type6,arg6) \ +type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6) { \ +	long __res;							\ +	__asm__ __volatile__ (						\ +		"r5=%7;\n\t"						\ +		"r4=%6;\n\t"						\ +		"r3=%5;\n\t"						\ +		"r2=%4;\n\t"						\ +		"r1=%3;\n\t"						\ +		"r0=%2;\n\t"						\ +		"P0=%1;\n\t"						\ +		"excpt 0;\n\t"						\ +		"%0=r0;\n\t"						\ +		: "=da" (__res)						\ +		: "i"  (__NR_##name),					\ +		  "rm"  ((long)(arg1)),					\ +		  "rm"  ((long)(arg2)),					\ +		  "rm"  ((long)(arg3)),					\ +		  "rm"  ((long)(arg4)),					\ +		  "rm"  ((long)(arg5)),					\ +		  "rm"  ((long)(arg6))					\ +		: "memory","CC","R0","R1","R2","R3","R4","R5","P0");	\ +	__syscall_return(type,__res);					\  }  #endif /* __ASSEMBLER__ */  | 
