setjmp.s

来自「klibc精简化的c程序库」· S 代码 · 共 103 行

S
103
字号
## arch/arm/setjmp.S## setjmp/longjmp for the ARM architecture##ifndef	__thumb__## "Pure ARM" version## The jmp_buf is assumed to contain the following, in order:#		r4#		r5#		r6#		r7#		r8#		r9#		r10#		fp#		sp#		lr#	.text	.balign 4	.globl setjmp	.type setjmp, #functionsetjmp:	stmia	r0, {r4, r5, r6, r7, r8, r9, r10, fp, sp, lr}	mov	r0, #0	mov	pc, lr	.size setjmp,.-setjmp	.text	.balign 4	.globl longjmp	.type longjmp, #functionlongjmp:	ldmia	r0, {r4, r5, r6, r7, r8, r9, r10, fp, sp, lr}	mov	r0, r1	mov	pc, lr	.size longjmp,.-longjmp#else /* __thumb__ */## Thumb version## The jmp_buf is assumed to contain the following, in order:#		lr#		r4#		r5#		r6#		r7#		r8#		r9#		r10#		fp#		sp#	.text	.balign 4	.globl setjmp	.type setjmp, #function	.thumb_funcsetjmp:	mov	r3, lr	stmia	r0!, {r3, r4, r5, r6, r7}	mov	r3, r8	mov	r4, r9	mov	r5, r10	mov	r6, fp	mov	r7, sp	stmia	r0!, {r3, r4, r5, r6, r7}	mov	r0, #0	mov	pc, lr	.size setjmp,.-setjmp	.text	.balign 4	.globl longjmp	.type longjmp, #function	.thumb_funclongjmp:	mov	r2, r0	add	r0, #5*4	ldmia	r0!, {r3, r4, r5, r6, r7}	mov	r8, r3	mov	r9, r4	mov	r10, r5	mov	fp, r6	mov	sp, r7	ldmia	r2!, {r3, r4, r5, r6, r7}	mov	r0, r1	bne	1f	mov	r0, #11:	mov	pc, r3	.size longjmp,.-longjmp#endif /* __thumb__ */

⌨️ 快捷键说明

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