ASoC: pcm512x: Scrub my work address from the driver
[sfrench/cifs-2.6.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), %rbx
7         /* load pointer to first operation */
8         mov     %rbx, %rsp
9         add     $0x10, %rsp
10 again:
11         /* load length of additional data */
12         mov     0x0(%rsp), %rax
13
14         /* if(length == 0) : end of list */
15         /* write possible 0 to header */
16         mov     %rax, 8(%rbx)
17         cmp     $0, %rax
18         jz      done
19
20         /* save current pointer */
21         mov     %rsp, 8(%rbx)
22
23         /* skip additional data */
24         add     %rax, %rsp
25
26         /* load syscall-# */
27         pop     %rax
28
29         /* load syscall params */
30         pop     %rdi
31         pop     %rsi
32         pop     %rdx
33         pop     %r10
34         pop     %r8
35         pop     %r9
36
37         /* execute syscall */
38         syscall
39
40         /* check return value */
41         pop     %rcx
42         cmp     %rcx, %rax
43         je      again
44
45 done:
46         /* save return value */
47         mov     %rax, (%rbx)
48
49         /* stop */
50         int3