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 8(%edx),%edi
mov 12(%edx),%ebp
mov 16(%edx),%ecx
mov %ecx,%esp
mov 20(%edx),%ecx
jmp *%ecx
mov 16(%edx),%esp
jmp *20(%edx)

6
src/setjmp/x32/longjmp.s

@ -16,7 +16,5 @@ longjmp:
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 56(%rdi),%rdx /* this is the instruction pointer */
jmp *%rdx /* goto saved address without altering rsp */
mov 48(%rdi),%rsp
jmp *56(%rdi) /* goto saved address without altering rsp */

6
src/setjmp/x86_64/longjmp.s

@ -16,7 +16,5 @@ longjmp:
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 56(%rdi),%rdx /* this is the instruction pointer */
jmp *%rdx /* goto saved address without altering rsp */
mov 48(%rdi),%rsp
jmp *56(%rdi) /* goto saved address without altering rsp */

Loading…
Cancel
Save