diff options
Diffstat (limited to 'libc/sysdeps/linux/i386/bits/syscalls.h')
-rw-r--r-- | libc/sysdeps/linux/i386/bits/syscalls.h | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/libc/sysdeps/linux/i386/bits/syscalls.h b/libc/sysdeps/linux/i386/bits/syscalls.h index 5e9209386..b0f54dcb0 100644 --- a/libc/sysdeps/linux/i386/bits/syscalls.h +++ b/libc/sysdeps/linux/i386/bits/syscalls.h @@ -30,8 +30,6 @@ }) \ ) -#if 1 /* defined __PIC__ || defined __pic__ */ - /* This code avoids pushing/popping ebx as much as possible. * I think the main reason was that older GCCs had problems * with proper saving/restoring of ebx if "b" constraint was used, @@ -126,56 +124,5 @@ __asm__ ( #define ASMFMT_6(arg1, arg2, arg3, arg4, arg5, arg6) \ , "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5), "g" (arg6) -#else /* !PIC */ - -/* Simpler code which just uses "b" constraint to load ebx. - * Seems to work with gc 4.2.x, and generates slightly smaller, - * but slightly slower code. Example (time syscall): - * - * - 8b 4c 24 04 mov 0x4(%esp),%ecx - * - 87 cb xchg %ecx,%ebx - * + 53 push %ebx - * + 8b 5c 24 08 mov 0x8(%esp),%ebx - * b8 0d 00 00 00 mov $0xd,%eax - * cd 80 int $0x80 - * - 87 cb xchg %ecx,%ebx - * + 5b pop %ebx - * c3 ret - * - * 2 bytes smaller, but uses stack via "push/pop ebx" - */ - -#define LOADARGS_0 -#define LOADARGS_1 -#define LOADARGS_2 -#define LOADARGS_3 -#define LOADARGS_4 -#define LOADARGS_5 -#define LOADARGS_6 "push %%ebp\n\t" "movl %7, %%ebp\n\t" - -#define RESTOREARGS_0 -#define RESTOREARGS_1 -#define RESTOREARGS_2 -#define RESTOREARGS_3 -#define RESTOREARGS_4 -#define RESTOREARGS_5 -#define RESTOREARGS_6 "pop %%ebp\n\t" - -#define ASMFMT_0() -#define ASMFMT_1(arg1) \ - , "b" (arg1) -#define ASMFMT_2(arg1, arg2) \ - , "b" (arg1), "c" (arg2) -#define ASMFMT_3(arg1, arg2, arg3) \ - , "b" (arg1), "c" (arg2), "d" (arg3) -#define ASMFMT_4(arg1, arg2, arg3, arg4) \ - , "b" (arg1), "c" (arg2), "d" (arg3), "S" (arg4) -#define ASMFMT_5(arg1, arg2, arg3, arg4, arg5) \ - , "b" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5) -#define ASMFMT_6(arg1, arg2, arg3, arg4, arg5, arg6) \ - , "b" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5), "m" (arg6) - -#endif /* !PIC */ - #endif /* __ASSEMBLER__ */ #endif /* _BITS_SYSCALLS_H */ |