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 + -
显示快捷键?