Blob


1 .text
2 .align 8
4 .globl _libthread_getmcontext
5 _libthread_getmcontext:
6 movq $1, 0*8(%rdi) // rax
7 movq %rbx, 1*8(%rdi)
8 movq %rcx, 2*8(%rdi)
9 movq %rdx, 3*8(%rdi)
10 movq %rsi, 4*8(%rdi)
11 movq %rdi, 5*8(%rdi)
12 movq %rbp, 6*8(%rdi)
13 movq %rsp, 7*8(%rdi)
14 movq %r8, 8*8(%rdi)
15 movq %r9, 9*8(%rdi)
16 movq %r10, 10*8(%rdi)
17 movq %r11, 11*8(%rdi)
18 movq %r12, 12*8(%rdi)
19 movq %r13, 13*8(%rdi)
20 movq %r14, 14*8(%rdi)
21 movq %r15, 15*8(%rdi)
22 movq $0, %rax
23 ret
25 .globl _libthread_setmcontext
26 _libthread_setmcontext:
27 movq 0*8(%rdi), %rax
28 movq 1*8(%rdi), %rbx
29 movq 2*8(%rdi), %rcx
30 movq 3*8(%rdi), %rdx
31 movq 4*8(%rdi), %rsi
32 // %rdi later
33 movq 6*8(%rdi), %rbp
34 movq 7*8(%rdi), %rsp
35 movq 8*8(%rdi), %r8
36 movq 9*8(%rdi), %r9
37 movq 10*8(%rdi), %r10
38 movq 11*8(%rdi), %r11
39 movq 12*8(%rdi), %r12
40 movq 13*8(%rdi), %r13
41 movq 14*8(%rdi), %r14
42 movq 15*8(%rdi), %r15
43 movq 5*8(%rdi), %rdi
44 ret