📄 setjmp.s
字号:
## arch/ppc64/setjmp.S## Basic setjmp/longjmp implementation# .text .align 4 .section ".opd","aw"setjmp: .quad .setjmp,.TOC.@tocbase,0 .previous .size setjmp,24 .type .setjmp,@function .globl setjmp .globl .setjmp.setjmp: mflr %r11 /* save return address */ mfcr %r12 /* save condition register */ std %r2,0(%r3) /* save TOC pointer (not needed) */ stdu %r1,8(%r3) /* save stack pointer */ stdu %r11,8(%r3) stdu %r12,8(%r3) stdu %r13,8(%r3) /* save caller saved regs */ stdu %r14,8(%r3) stdu %r15,8(%r3) stdu %r16,8(%r3) stdu %r17,8(%r3) stdu %r18,8(%r3) stdu %r19,8(%r3) stdu %r20,8(%r3) stdu %r21,8(%r3) stdu %r22,8(%r3) stdu %r23,8(%r3) stdu %r24,8(%r3) stdu %r25,8(%r3) stdu %r26,8(%r3) stdu %r27,8(%r3) stdu %r28,8(%r3) stdu %r29,8(%r3) stdu %r30,8(%r3) std %r31,8(%r3) li %r3,0 /* indicate success */ blr /* return */ .size .setjmp,.-.setjmp .section ".opd","aw"longjmp: .quad .longjmp,.TOC.@tocbase,0 .previous .size longjmp,24 .type .longjmp,@function .globl longjmp .globl .longjmp.longjmp: ld %r2,0(%r3) /* restore TOC pointer (not needed) */ ldu %r1,8(%r3) /* restore stack */ ldu %r11,8(%r3) ldu %r12,8(%r3) ldu %r13,8(%r3) /* restore caller saved regs */ ldu %r14,8(%r3) ldu %r15,8(%r3) ldu %r16,8(%r3) ldu %r17,8(%r3) ldu %r18,8(%r3) ldu %r19,8(%r3) ldu %r20,8(%r3) ldu %r21,8(%r3) ldu %r22,8(%r3) ldu %r23,8(%r3) ldu %r24,8(%r3) ldu %r25,8(%r3) ldu %r26,8(%r3) ldu %r27,8(%r3) ldu %r28,8(%r3) ldu %r29,8(%r3) ldu %r30,8(%r3) ld %r31,8(%r3) mtlr %r11 /* restore LR */ mtcr %r12 /* restore CR */ mr %r3,%r4 /* get return value */ blr /* return */ .size .longjmp,.-.longjmp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -