gcc: add llvm-gcc and llvm from trunk (does not successfully compile a target yet...
[openwrt-10.03/.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