提交 1c497005 编写于 作者: R Rich Felker

remove long-obsolete clang workarounds from mips* syscall_arch.h files

at one point, clang reportedly failed to support the asm register
constraints needed for inline syscalls. versions of clang that old
have much bigger problems that preclude using them to compile musl
libc.
上级 4073f03a
......@@ -20,8 +20,6 @@ static inline void __stat_fix(long p)
}
#endif
#ifndef __clang__
static inline long __syscall0(long n)
{
register long r7 __asm__("$7");
......@@ -105,45 +103,6 @@ static inline long __syscall4(long n, long a, long b, long c, long d)
return ret;
}
#else
static inline long __syscall0(long n)
{
return (__syscall)(n);
}
static inline long __syscall1(long n, long a)
{
return (__syscall)(n, a);
}
static inline long __syscall2(long n, long a, long b)
{
long r2 = (__syscall)(n, a, b);
if (r2 > -4096UL) return r2;
if (n == SYS_stat64 || n == SYS_fstat64 || n == SYS_lstat64) __stat_fix(b);
return r2;
}
static inline long __syscall3(long n, long a, long b, long c)
{
long r2 = (__syscall)(n, a, b, c);
if (r2 > -4096UL) return r2;
if (n == SYS_stat64 || n == SYS_fstat64 || n == SYS_lstat64) __stat_fix(b);
return r2;
}
static inline long __syscall4(long n, long a, long b, long c, long d)
{
long r2 = (__syscall)(n, a, b, c, d);
if (r2 > -4096UL) return r2;
if (n == SYS_stat64 || n == SYS_fstat64 || n == SYS_lstat64) __stat_fix(b);
if (n == SYS_fstatat) __stat_fix(c);
return r2;
}
#endif
static inline long __syscall5(long n, long a, long b, long c, long d, long e)
{
long r2 = (__syscall)(n, a, b, c, d, e);
......
......@@ -49,8 +49,6 @@ static void __stat_fix(struct kernel_stat *kst, struct stat *st)
st->st_blocks = kst->st_blocks;
}
#ifndef __clang__
static inline long __syscall0(long n)
{
register long r7 __asm__("$7");
......@@ -176,79 +174,6 @@ static inline long __syscall4(long n, long a, long b, long c, long d)
return ret;
}
#else
static inline long __syscall0(long n)
{
return (__syscall)(n);
}
static inline long __syscall1(long n, long a)
{
return (__syscall)(n, a);
}
static inline long __syscall2(long n, long a, long b)
{
long r2;
long old_b = b;
struct kernel_stat kst;
if (n == SYS_stat || n == SYS_fstat || n == SYS_lstat)
b = (long) &kst;
r2 = (__syscall)(n, a, b);
if (r2 > -4096UL) return r2;
if (n == SYS_stat || n == SYS_fstat || n == SYS_lstat)
__stat_fix(&kst, (struct stat *)old_b);
return r2;
}
static inline long __syscall3(long n, long a, long b, long c)
{
long r2;
long old_b = b;
struct kernel_stat kst;
if (n == SYS_stat || n == SYS_fstat || n == SYS_lstat)
b = (long) &kst;
r2 = (__syscall)(n, a, b, c);
if (r2 > -4096UL) return r2;
if (n == SYS_stat || n == SYS_fstat || n == SYS_lstat)
__stat_fix(&kst, (struct stat *)old_b);
return r2;
}
static inline long __syscall4(long n, long a, long b, long c, long d)
{
long r2;
long old_b = b;
long old_c = c;
struct kernel_stat kst;
if (n == SYS_stat || n == SYS_fstat || n == SYS_lstat)
b = (long) &kst;
if (n == SYS_newfstatat)
c = (long) &kst;
r2 = (__syscall)(n, a, b, c, d);
if (r2 > -4096UL) return r2;
if (n == SYS_stat || n == SYS_fstat || n == SYS_lstat)
__stat_fix(&kst, (struct stat *)old_b);
if (n == SYS_newfstatat)
__stat_fix(&kst, (struct stat *)old_c);
return r2;
}
#endif
static inline long __syscall5(long n, long a, long b, long c, long d, long e)
{
long r2;
......
......@@ -18,8 +18,6 @@ static inline void __stat_fix(long p)
}
#endif
#ifndef __clang__
static inline long __syscall0(long n)
{
register long r7 __asm__("$7");
......@@ -103,45 +101,6 @@ static inline long __syscall4(long n, long a, long b, long c, long d)
return ret;
}
#else
static inline long __syscall0(long n)
{
return (__syscall)(n);
}
static inline long __syscall1(long n, long a)
{
return (__syscall)(n, a);
}
static inline long __syscall2(long n, long a, long b)
{
long r2 = (__syscall)(n, a, b);
if (r2 > -4096UL) return r2;
if (n == SYS_stat || n == SYS_fstat || n == SYS_lstat) __stat_fix(b);
return r2;
}
static inline long __syscall3(long n, long a, long b, long c)
{
long r2 = (__syscall)(n, a, b, c);
if (r2 > -4096UL) return r2;
if (n == SYS_stat || n == SYS_fstat || n == SYS_lstat) __stat_fix(b);
return r2;
}
static inline long __syscall4(long n, long a, long b, long c, long d)
{
long r2 = (__syscall)(n, a, b, c, d);
if (r2 > -4096UL) return r2;
if (n == SYS_stat || n == SYS_fstat || n == SYS_lstat) __stat_fix(b);
if (n == SYS_fstatat) __stat_fix(c);
return r2;
}
#endif
static inline long __syscall5(long n, long a, long b, long c, long d, long e)
{
long r2 = (__syscall)(n, a, b, c, d, e);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册