⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setjmp.s

📁 T-kernel 的extension源代码
💻 S
字号:
/* *---------------------------------------------------------------------- *    T-Kernel / Standard Extension * *    Copyright (C) 2006 by Ken Sakamura. All rights reserved. *    T-Kernel / Standard Extension is distributed  *      under the T-License for T-Kernel / Standard Extension. *---------------------------------------------------------------------- * *    Version:   1.00.00 *    Released by T-Engine Forum(http://www.t-engine.org) at 2006/8/11. * *---------------------------------------------------------------------- *//* *	setjmp.S (libtkse) * *	setjmp/longjmp */#include <machine.h>/* *	typedef	int	jmp_buf[10] * *	Registers to be saved in jmp_buf *	jmp_buf[0]	pr *	jmp_buf[1]	gbr *	jmp_buf[2]	r15 *	jmp_buf[3]	r14 *	jmp_buf[4]	r13 *	jmp_buf[5]	r12 *	jmp_buf[6]	r11 *	jmp_buf[7]	r10 *	jmp_buf[8]	r9 *	jmp_buf[9]	r8 * *	jmp_buf[11]	fr14 *	jmp_buf[12]	fr13 *	jmp_buf[13]	fr12 *//* * int __setjmp( jmp_buf env ) */	.text	.align	2	.globl	Csym(__setjmp)	.type	Csym(__setjmp), @functionCsym(__setjmp):	add	#10*4, r4	mov.l	r8,  @-r4	// r8  -> env[9]	mov.l	r9,  @-r4	// r9  -> env[8]	mov.l	r10, @-r4	// r10 -> env[7]	mov.l	r11, @-r4	// r11 -> env[6]	mov.l	r12, @-r4	// r12 -> env[5]	mov.l	r13, @-r4	// r13 -> env[4]	mov.l	r14, @-r4	// r14 -> env[3]	mov.l	r15, @-r4	// r15 -> env[2]	stc.l	gbr, @-r4	// gbr -> env[1]	sts.l	pr,  @-r4	// pr  -> env[0]	rts	mov	#0, r0/* * void longjmp( jmp_buf env, int rval ) */	.text	.align	2	.globl	Csym(longjmp)	.type	Csym(longjmp), @functionCsym(longjmp):	tst	r5, r5		// if ( rval == 0 ) rval = 1	bf/s	l1:	mov	r5, r0	mov	#1, r0  l1:	lds.l	@r4+, pr	// env[0] -> pr	ldc.l	@r4+, gbr	// env[1] -> gbr	mov.l	@r4+, r15	// env[2] -> r15	mov.l	@r4+, r14	// env[3] -> r14	mov.l	@r4+, r13	// env[4] -> r13	mov.l	@r4+, r12	// env[5] -> r12	mov.l	@r4+, r11	// env[6] -> r11	mov.l	@r4+, r10	// env[7] -> r10	mov.l	@r4+, r9	// env[8] -> r9	mov.l	@r4+, r8	// env[9] -> r8	rts	nop

⌨️ 快捷键说明

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