modernize coding style in sjlj asm
authorRich Felker <dalias@aerifal.cx>
Fri, 27 May 2011 00:59:02 +0000 (20:59 -0400)
committerRich Felker <dalias@aerifal.cx>
Fri, 27 May 2011 00:59:02 +0000 (20:59 -0400)
src/setjmp/i386/longjmp.s
src/setjmp/i386/setjmp.s
src/setjmp/x86_64/longjmp.s
src/setjmp/x86_64/setjmp.s

index c1a956c..249d7b4 100644 (file)
@@ -4,19 +4,19 @@
 .type longjmp,%function
 _longjmp:
 longjmp:
 .type longjmp,%function
 _longjmp:
 longjmp:
-       movl  4(%esp),%edx
-       movl  8(%esp),%eax
-       testl    %eax,%eax
-       jnz .L0
-       incl     %eax
-.L0:
-       movl   (%edx),%ebx
-       movl  4(%edx),%esi
-       movl  8(%edx),%edi
-       movl 12(%edx),%ebp
-       movl 16(%edx),%ecx
-       movl     %ecx,%esp
-       movl 20(%edx),%ecx
+       mov  4(%esp),%edx
+       mov  8(%esp),%eax
+       test    %eax,%eax
+       jnz 1f
+       inc     %eax
+1:
+       mov   (%edx),%ebx
+       mov  4(%edx),%esi
+       mov  8(%edx),%edi
+       mov 12(%edx),%ebp
+       mov 16(%edx),%ecx
+       mov     %ecx,%esp
+       mov 20(%edx),%ecx
        jmp *%ecx
 .size _longjmp,.-_longjmp
 .size longjmp,.-longjmp
        jmp *%ecx
 .size _longjmp,.-_longjmp
 .size longjmp,.-longjmp
index 6c078b1..89e614f 100644 (file)
@@ -7,16 +7,16 @@
 __setjmp:
 _setjmp:
 setjmp:
 __setjmp:
 _setjmp:
 setjmp:
-       movl 4(%esp), %eax
-       movl    %ebx, (%eax)
-       movl    %esi, 4(%eax)
-       movl    %edi, 8(%eax)
-       movl    %ebp, 12(%eax)
-       leal 4(%esp), %ecx
-       movl    %ecx, 16(%eax)
-       movl  (%esp), %ecx
-       movl    %ecx, 20(%eax)
-       xorl    %eax, %eax
+       mov 4(%esp), %eax
+       mov    %ebx, (%eax)
+       mov    %esi, 4(%eax)
+       mov    %edi, 8(%eax)
+       mov    %ebp, 12(%eax)
+       lea 4(%esp), %ecx
+       mov    %ecx, 16(%eax)
+       mov  (%esp), %ecx
+       mov    %ecx, 20(%eax)
+       xor    %eax, %eax
        ret
 .size __setjmp,.-__setjmp
 .size _setjmp,.-_setjmp
        ret
 .size __setjmp,.-__setjmp
 .size _setjmp,.-_setjmp
index c63b0c9..dd89351 100644 (file)
@@ -7,18 +7,18 @@ _longjmp:
 longjmp:
        mov %rsi,%rax           /* val will be longjmp return */
        test %rax,%rax
 longjmp:
        mov %rsi,%rax           /* val will be longjmp return */
        test %rax,%rax
-       jnz .L0
+       jnz 1f
        inc %rax                /* if val==0, val=1 per longjmp semantics */
        inc %rax                /* if val==0, val=1 per longjmp semantics */
-.L0:
-       movq (%rdi),%rbx        /* rdi is the jmp_buf, restore regs from it */
-       movq 8(%rdi),%rbp
-       movq 16(%rdi),%r12
-       movq 24(%rdi),%r13
-       movq 32(%rdi),%r14
-       movq 40(%rdi),%r15
-       movq 48(%rdi),%rdx      /* this ends up being the stack pointer */
+1:
+       mov (%rdi),%rbx         /* rdi is the jmp_buf, restore regs from it */
+       mov 8(%rdi),%rbp
+       mov 16(%rdi),%r12
+       mov 24(%rdi),%r13
+       mov 32(%rdi),%r14
+       mov 40(%rdi),%r15
+       mov 48(%rdi),%rdx       /* this ends up being the stack pointer */
        mov %rdx,%rsp
        mov %rdx,%rsp
-       movq 56(%rdi),%rdx      /* this is the instruction pointer */
+       mov 56(%rdi),%rdx       /* this is the instruction pointer */
        jmp *%rdx               /* goto saved address without altering rsp */
 .size _longjmp,.-_longjmp
 .size longjmp,.-longjmp
        jmp *%rdx               /* goto saved address without altering rsp */
 .size _longjmp,.-_longjmp
 .size longjmp,.-longjmp
index 8f29fa8..faecd35 100644 (file)
@@ -14,9 +14,9 @@ setjmp:
        mov %r13,24(%rdi)
        mov %r14,32(%rdi)
        mov %r15,40(%rdi)
        mov %r13,24(%rdi)
        mov %r14,32(%rdi)
        mov %r15,40(%rdi)
-       leaq 8(%rsp),%rdx       /* this is our rsp WITHOUT current ret addr */
+       lea 8(%rsp),%rdx        /* this is our rsp WITHOUT current ret addr */
        mov %rdx,48(%rdi)
        mov %rdx,48(%rdi)
-       movq (%rsp),%rdx        /* save return addr ptr for new rip */
+       mov (%rsp),%rdx         /* save return addr ptr for new rip */
        mov %rdx,56(%rdi)
        xor %rax,%rax           /* always return 0 */
        ret
        mov %rdx,56(%rdi)
        xor %rax,%rax           /* always return 0 */
        ret