- __asm_syscall("r"(r4), "r"(r5), "r"(r6));
-}
-
-#else
-
-static inline long __syscall0(long n)
-{
- return (__syscall)(n);
-}
-
-static inline long __syscall1(long n, long a)
-{
- return (__syscall)(n, a);
+ register long r2 __asm__("$2");
+ __asm__ __volatile__ (
+ "addu $2,$0,%2 ; syscall"
+ : "=&r"(r2), "=r"(r7) : "ir"(n), "0"(r2), "1"(r7),
+ "r"(r4), "r"(r5), "r"(r6)
+ : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13",
+ "$14", "$15", "$24", "$25", "hi", "lo", "memory");
+ if (r7) return -r2;
+ long ret = r2;
+ if (n == SYS_stat64 || n == SYS_fstat64 || n == SYS_lstat64) __stat_fix(b);
+ if (n == SYS_fstatat64) __stat_fix(c);
+ return ret;