um: Remove dead code from x86_64 syscall stub
[firefly-linux-kernel-4.4.55.git] / arch / x86 / um / stub_64.S
1 #include <as-layout.h>
2
3 .section .__syscall_stub, "ax"
4         .globl batch_syscall_stub
5 batch_syscall_stub:
6         mov     $(STUB_DATA >> 32), %rbx
7         sal     $32, %rbx
8         mov     $(STUB_DATA & 0xffffffff), %rax
9         or      %rax, %rbx
10         /* load pointer to first operation */
11         mov     %rbx, %rsp
12         add     $0x10, %rsp
13 again:
14         /* load length of additional data */
15         mov     0x0(%rsp), %rax
16
17         /* if(length == 0) : end of list */
18         /* write possible 0 to header */
19         mov     %rax, 8(%rbx)
20         cmp     $0, %rax
21         jz      done
22
23         /* save current pointer */
24         mov     %rsp, 8(%rbx)
25
26         /* skip additional data */
27         add     %rax, %rsp
28
29         /* load syscall-# */
30         pop     %rax
31
32         /* load syscall params */
33         pop     %rdi
34         pop     %rsi
35         pop     %rdx
36         pop     %r10
37         pop     %r8
38         pop     %r9
39
40         /* execute syscall */
41         syscall
42
43         /* check return value */
44         pop     %rcx
45         cmp     %rcx, %rax
46         je      again
47
48 done:
49         /* save return value */
50         mov     %rax, (%rbx)
51
52         /* stop */
53         int3