diff options
author | Alexander Monakov <amonakov@ispras.ru> | 2020-08-11 21:11:16 +0300 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2020-08-11 14:43:20 -0400 |
commit | 59b64ff686cef2a87e9552658b2c8d2531f87176 (patch) | |
tree | 7baac904e666314dbe3bbf0fbb1697e476952c73 | |
parent | c6a6fe4ccdba92c518dfbf337cda1bf0f697527d (diff) | |
download | musl-59b64ff686cef2a87e9552658b2c8d2531f87176.tar.gz musl-59b64ff686cef2a87e9552658b2c8d2531f87176.tar.bz2 musl-59b64ff686cef2a87e9552658b2c8d2531f87176.tar.xz musl-59b64ff686cef2a87e9552658b2c8d2531f87176.zip |
setjmp: optimize x86 longjmp epilogues
-rw-r--r-- | src/setjmp/i386/longjmp.s | 6 | ||||
-rw-r--r-- | src/setjmp/x32/longjmp.s | 6 | ||||
-rw-r--r-- | src/setjmp/x86_64/longjmp.s | 6 |
3 files changed, 6 insertions, 12 deletions
diff --git a/src/setjmp/i386/longjmp.s b/src/setjmp/i386/longjmp.s index 772d28dd..b429f135 100644 --- a/src/setjmp/i386/longjmp.s +++ b/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) diff --git a/src/setjmp/x32/longjmp.s b/src/setjmp/x32/longjmp.s index e709acad..bb88afa1 100644 --- a/src/setjmp/x32/longjmp.s +++ b/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 */ diff --git a/src/setjmp/x86_64/longjmp.s b/src/setjmp/x86_64/longjmp.s index e709acad..bb88afa1 100644 --- a/src/setjmp/x86_64/longjmp.s +++ b/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 */ |