Browse Source

setjmp: optimize x86 longjmp epilogues

master
Alexander Monakov 6 years ago
committed by Rich Felker
parent
commit
59b64ff686
  1. 6
      src/setjmp/i386/longjmp.s
  2. 6
      src/setjmp/x32/longjmp.s
  3. 6
      src/setjmp/x86_64/longjmp.s

6
src/setjmp/i386/longjmp.s

@ -14,7 +14,5 @@ longjmp:
mov 4(%edx),%esi mov 4(%edx),%esi
mov 8(%edx),%edi mov 8(%edx),%edi
mov 12(%edx),%ebp mov 12(%edx),%ebp
mov 16(%edx),%ecx mov 16(%edx),%esp
mov %ecx,%esp jmp *20(%edx)
mov 20(%edx),%ecx
jmp *%ecx

6
src/setjmp/x32/longjmp.s

@ -16,7 +16,5 @@ longjmp:
mov 24(%rdi),%r13 mov 24(%rdi),%r13
mov 32(%rdi),%r14 mov 32(%rdi),%r14
mov 40(%rdi),%r15 mov 40(%rdi),%r15
mov 48(%rdi),%rdx /* this ends up being the stack pointer */ mov 48(%rdi),%rsp
mov %rdx,%rsp jmp *56(%rdi) /* goto saved address without altering rsp */
mov 56(%rdi),%rdx /* this is the instruction pointer */
jmp *%rdx /* goto saved address without altering rsp */

6
src/setjmp/x86_64/longjmp.s

@ -16,7 +16,5 @@ longjmp:
mov 24(%rdi),%r13 mov 24(%rdi),%r13
mov 32(%rdi),%r14 mov 32(%rdi),%r14
mov 40(%rdi),%r15 mov 40(%rdi),%r15
mov 48(%rdi),%rdx /* this ends up being the stack pointer */ mov 48(%rdi),%rsp
mov %rdx,%rsp jmp *56(%rdi) /* goto saved address without altering rsp */
mov 56(%rdi),%rdx /* this is the instruction pointer */
jmp *%rdx /* goto saved address without altering rsp */

Loading…
Cancel
Save