setjmp.s

来自「linux 内核源代码」· S 代码 · 共 55 行

S
55
字号
## arch/x86_64/setjmp.S## setjmp/longjmp for the x86-64 architecture### The jmp_buf is assumed to contain the following, in order:#	%rbx#	%rsp (post-return)#	%rbp#	%r12#	%r13#	%r14#	%r15#	<return address>#	.text	.align 4	.globl setjmp	.type setjmp, @functionsetjmp:	pop  %rsi			# Return address, and adjust the stack	xorl %eax,%eax			# Return value	movq %rbx,(%rdi)	movq %rsp,8(%rdi)		# Post-return %rsp!	push %rsi			# Make the call/return stack happy	movq %rbp,16(%rdi)	movq %r12,24(%rdi)	movq %r13,32(%rdi)	movq %r14,40(%rdi)	movq %r15,48(%rdi)	movq %rsi,56(%rdi)		# Return address	ret	.size setjmp,.-setjmp	.text	.align 4	.globl longjmp	.type longjmp, @functionlongjmp:	movl %esi,%eax			# Return value (int)	movq (%rdi),%rbx	movq 8(%rdi),%rsp	movq 16(%rdi),%rbp	movq 24(%rdi),%r12	movq 32(%rdi),%r13	movq 40(%rdi),%r14	movq 48(%rdi),%r15	jmp *56(%rdi)	.size longjmp,.-longjmp

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?