longjmp.s

来自「mips架构的bootloader,99左右的版本 但源代码现在没人更新了」· S 代码 · 共 58 行

S
58
字号
/************************************************************* * File: lib/longjmp.s * Purpose: Part of C runtime library * Author: Phil Bunce (pjb@carmel.com) * Revision History: *	970304	Start of revision history */#include <setjmp.h>#include <mips.h>/** setjmp(buffer) save context */	.globl	setjmp	.ent setjmpsetjmp:	sw	s0,JB_S0*4(a0)	sw	s1,JB_S1*4(a0)	sw	s2,JB_S2*4(a0)	sw	s3,JB_S3*4(a0)	sw	s4,JB_S4*4(a0)	sw	s5,JB_S5*4(a0)	sw	s6,JB_S6*4(a0)	sw	s7,JB_S7*4(a0)	sw	fp,JB_FP*4(a0)	sw	sp,JB_SP*4(a0)	sw	ra,JB_RA*4(a0)	li	v0,0	j	ra	.end setjmp/** longjmp(buffer,value) restore context */	.globl	longjmp	.ent longjmplongjmp:	lw	s0,JB_S0*4(a0)	lw	s1,JB_S1*4(a0)	lw	s2,JB_S2*4(a0)	lw	s3,JB_S3*4(a0)	lw	s4,JB_S4*4(a0)	lw	s5,JB_S5*4(a0)	lw	s6,JB_S6*4(a0)	lw	s7,JB_S7*4(a0)	lw	fp,JB_FP*4(a0)	lw	ra,JB_RA*4(a0)	lw	sp,JB_SP*4(a0)	move	v0,a1	jr	ra	.end longjmp/** _getSp() returns the current value of the stack pointer */	.globl _getSp	.ent _getSp_getSp:	move	v0,sp	j	ra	.end _getSp

⌨️ 快捷键说明

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