?? longjmp.s
字號:
/* $OpenBSD: setjmp.S,v 1.3 1999/03/22 02:40:12 rahnds Exp $ *//* kernel version of this file, does not have signal goop *//* int setjmp(jmp_buf env) */#include <machine/asm.h>#define JMP_r1 0x04#define JMP_r14 0x08#define JMP_r15 0x0c#define JMP_r16 0x10#define JMP_r17 0x14#define JMP_r18 0x18#define JMP_r19 0x1c#define JMP_r20 0x20#define JMP_r21 0x24#define JMP_r22 0x28#define JMP_r23 0x2c#define JMP_r24 0x30#define JMP_r25 0x34#define JMP_r26 0x38#define JMP_r27 0x3c#define JMP_r28 0x40#define JMP_r29 0x44#define JMP_r30 0x48#define JMP_r31 0x4c#define JMP_lr 0x50#define JMP_cr 0x54#define JMP_ctr 0x58#define JMP_xer 0x5c#define JMP_sig 0x60 /* WARNING! If size of jmpbuf changes change go_return_jump as well! */ .globl setjmpsetjmp: stw 31, JMP_r31(3) /* r1, r14-r30 */ stw 1, JMP_r1 (3) stw 14, JMP_r14(3) stw 15, JMP_r15(3) stw 16, JMP_r16(3) stw 17, JMP_r17(3) stw 18, JMP_r18(3) stw 19, JMP_r19(3) stw 20, JMP_r20(3) stw 21, JMP_r21(3) stw 22, JMP_r22(3) stw 23, JMP_r23(3) stw 24, JMP_r24(3) stw 25, JMP_r25(3) stw 26, JMP_r26(3) stw 27, JMP_r27(3) stw 28, JMP_r28(3) stw 29, JMP_r29(3) stw 30, JMP_r30(3) /* cr, lr, ctr, xer */ mfcr 0 stw 0, JMP_cr(3) mflr 0 stw 0, JMP_lr(3) mfctr 0 stw 0, JMP_ctr(3) mfxer 0 stw 0, JMP_xer(3) /* f14-f31, fpscr */ li 3, 0 blr .globl longjmplongjmp: lwz 31, JMP_r31(3) /* r1, r14-r30 */ lwz 1, JMP_r1 (3) lwz 14, JMP_r14(3) lwz 15, JMP_r15(3) lwz 16, JMP_r16(3) lwz 17, JMP_r17(3) lwz 18, JMP_r18(3) lwz 19, JMP_r19(3) lwz 20, JMP_r20(3) lwz 21, JMP_r21(3) lwz 22, JMP_r22(3) lwz 23, JMP_r23(3) lwz 24, JMP_r24(3) lwz 25, JMP_r25(3) lwz 26, JMP_r26(3) lwz 27, JMP_r27(3) lwz 28, JMP_r28(3) lwz 29, JMP_r29(3) lwz 30, JMP_r30(3) /* cr, lr, ctr, xer */ lwz 0, JMP_cr(3) mtcr 0 lwz 0, JMP_lr(3) mtlr 0 lwz 0, JMP_ctr(3) mtctr 0 lwz 0, JMP_xer(3) mtxer 0 /* f14-f31, fpscr */ mr 3, 4 blr
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -