clean up uclibc patch/config version handling a bit
[openwrt/staging/chunkeey.git] / toolchain / uClibc / patches-0.9.29 / 160-mips_syscall.patch
1 --- uClibc-0.9.29.orig/libc/sysdeps/linux/mips/syscall.S 2009-02-27 19:26:57.420288905 +0100
2 +++ uClibc-0.9.29/libc/sysdeps/linux/mips/syscall.S 2009-02-27 19:43:18.000000000 +0100
3 @@ -29,6 +29,9 @@
4 .type syscall,@function
5 .ent syscall
6 syscall:
7 +#ifdef __PIC__
8 + SETUP_GP
9 +#endif
10 move v0, a0 /* Load system call number from first arg. */
11 move a0, a1 /* Move the next three args up a register. */
12 move a1, a2
13 @@ -60,6 +63,18 @@
14 #else
15 addiu sp,sp,32
16 #endif
17 + bnez a3, 1f
18 j ra /* Return to caller. */
19 +1:
20 + move a0,v0 /* Pass return val to C function. */
21 +
22 +#ifdef __PIC__
23 + SETUP_GP64(v0, syscall)
24 + PTR_LA t9, __syscall_error
25 + RESTORE_GP64
26 + jr t9
27 +#else
28 + j __syscall_error
29 +#endif
30 .end syscall
31 .size syscall,.-syscall