X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fsetjmp%2Fx86_64%2Flongjmp.s;h=1b2661c3e5a948a0d957ca84ebf17043b3993ed5;hb=c5f4b2dfea320356f69445dc1adf8f73596a3c36;hp=bb88afa16ccd90005f7348b2391e4638f99334c9;hpb=59b64ff686cef2a87e9552658b2c8d2531f87176;p=musl diff --git a/src/setjmp/x86_64/longjmp.s b/src/setjmp/x86_64/longjmp.s index bb88afa1..1b2661c3 100644 --- a/src/setjmp/x86_64/longjmp.s +++ b/src/setjmp/x86_64/longjmp.s @@ -5,11 +5,9 @@ .type longjmp,@function _longjmp: longjmp: - mov %esi,%eax /* val will be longjmp return */ - test %esi,%esi - jnz 1f - inc %eax /* if val==0, val=1 per longjmp semantics */ -1: + xor %eax,%eax + cmp $1,%esi /* CF = val ? 0 : 1 */ + adc %esi,%eax /* eax = val + !val */ mov (%rdi),%rbx /* rdi is the jmp_buf, restore regs from it */ mov 8(%rdi),%rbp mov 16(%rdi),%r12