diff --git a/LibOS/glibc-2.19/syscalldb.h b/LibOS/glibc-2.19/syscalldb.h index 14daf8e4..7d6d4a92 100644 --- a/LibOS/glibc-2.19/syscalldb.h +++ b/LibOS/glibc-2.19/syscalldb.h @@ -5,12 +5,17 @@ .weak syscalldb .type syscalldb, @function -# define SYSCALLDB \ - pushq %rbx; \ - movq syscalldb@GOTPCREL(%rip), %rbx; \ - call *%rbx; \ - popq %rbx; - +# if defined(PSEUDO) && defined(SYSCALL_NAME) && defined(SYSCALL_SYMBOL) +# define SYSCALLDB \ + subq $128, %rsp; \ + movq syscalldb@GOTPCREL(%rip), %rcx; \ + call *%rcx; \ + addq $128, %rsp +# else +# define SYSCALLDB \ + movq syscalldb@GOTPCREL(%rip), %rcx; \ + call *%rcx +# endif #else /* !__ASSEMBLER__ */ asm (