|  | .text | 
|  | .align 8 | 
|  |  | 
|  | .globl libthread_getmcontext | 
|  | libthread_getmcontext: | 
|  | movq	$1, 0*8(%rdi)  // rax | 
|  | movq	%rbx, 1*8(%rdi) | 
|  | movq	%rcx, 2*8(%rdi) | 
|  | movq	%rdx, 3*8(%rdi) | 
|  | movq	%rsi, 4*8(%rdi) | 
|  | movq	%rdi, 5*8(%rdi) | 
|  | movq	%rbp, 6*8(%rdi) | 
|  | movq	%rsp, 7*8(%rdi) | 
|  | movq	%r8, 8*8(%rdi) | 
|  | movq	%r9, 9*8(%rdi) | 
|  | movq	%r10, 10*8(%rdi) | 
|  | movq	%r11, 11*8(%rdi) | 
|  | movq	%r12, 12*8(%rdi) | 
|  | movq	%r13, 13*8(%rdi) | 
|  | movq	%r14, 14*8(%rdi) | 
|  | movq	%r15, 15*8(%rdi) | 
|  | movq	$0, %rax | 
|  | ret | 
|  |  | 
|  | .globl libthread_setmcontext | 
|  | libthread_setmcontext: | 
|  | movq	0*8(%rdi), %rax | 
|  | movq	1*8(%rdi), %rbx | 
|  | movq	2*8(%rdi), %rcx | 
|  | movq	3*8(%rdi), %rdx | 
|  | movq	4*8(%rdi), %rsi | 
|  | // %rdi later | 
|  | movq	6*8(%rdi), %rbp | 
|  | movq	7*8(%rdi), %rsp | 
|  | movq	8*8(%rdi), %r8 | 
|  | movq	9*8(%rdi), %r9 | 
|  | movq	10*8(%rdi), %r10 | 
|  | movq	11*8(%rdi), %r11 | 
|  | movq	12*8(%rdi), %r12 | 
|  | movq	13*8(%rdi), %r13 | 
|  | movq	14*8(%rdi), %r14 | 
|  | movq	15*8(%rdi), %r15 | 
|  | movq	5*8(%rdi), %rdi | 
|  | ret |