📄 setjmp.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] r4 * jmp_buf[1] r5 * jmp_buf[2] r6 * jmp_buf[3] r7 * jmp_buf[4] r8 * jmp_buf[5] r9 * jmp_buf[6] r10 * jmp_buf[7] r11(fp) * jmp_buf[8] r13(sp) * jmp_buf[9] r14(lr) *//* * int __setjmp( jmp_buf env ) */ .text .balign 4 .globl Csym(__setjmp) .type Csym(__setjmp), %functionCsym(__setjmp): stmia r0, {r4-r10, fp, sp, lr} mov r0, #0 bx lr/* * void longjmp( jmp_buf env, int rval ) */ .text .balign 4 .globl Csym(longjmp) .type Csym(longjmp), %functionCsym(longjmp): ldmia r0, {r4-r10, fp, sp, lr} movs r0, r1 moveq r0, #1 // if ( rval == 0 ) rval = 1 bx lr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -