]> git.lizzy.rs Git - plan9front.git/blob - sys/src/libc/amd64/setjmp.s
merge
[plan9front.git] / sys / src / libc / amd64 / setjmp.s
1 TEXT    longjmp(SB), $0
2         MOVL    r+8(FP), AX
3         CMPL    AX, $0
4         JNE     ok              /* ansi: "longjmp(0) => longjmp(1)" */
5         MOVL    $1, AX          /* bless their pointed heads */
6 ok:
7         MOVQ    0(RARG), SP     /* restore sp */
8         MOVQ    8(RARG), BX     /* put return pc on the stack */
9         MOVQ    BX, 0(SP)
10         RET
11
12 TEXT    setjmp(SB), $0
13         MOVQ    SP, 0(RARG)     /* store sp */
14         MOVQ    0(SP), BX       /* store return pc */
15         MOVQ    BX, 8(RARG)
16         MOVL    $0, AX          /* return 0 */
17         RET