source: trunk/toolchain/uClibc/patches/160-mips_syscall.patch @ 14689

Last change on this file since 14689 was 14689, checked in by cyrus, 8 years ago

Upstream fix for syscall() not setting errno on errors on MIPS

File size: 760 bytes
  • libc/sysdeps/linux/mips/syscall.S

    old new  
    2929.type   syscall,@function 
    3030.ent    syscall 
    3131syscall: 
     32#ifdef __PIC__ 
     33        SETUP_GP 
     34#endif 
    3235        move    v0, a0          /* Load system call number from first arg.  */ 
    3336        move    a0, a1          /* Move the next three args up a register.  */ 
    3437        move    a1, a2 
     
    6063#else 
    6164        addiu   sp,sp,32 
    6265#endif 
     66        bnez    a3, 1f 
    6367        j ra                    /* Return to caller.  */ 
     681: 
     69        move    a0,v0           /* Pass return val to C function. */ 
     70 
     71#ifdef __PIC__ 
     72        SETUP_GP64(v0, syscall) 
     73        PTR_LA  t9, __syscall_error 
     74        RESTORE_GP64 
     75        jr      t9 
     76#else 
     77        j       __syscall_error 
     78#endif 
    6479.end    syscall 
    6580.size   syscall,.-syscall 
Note: See TracBrowser for help on using the repository browser.