about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAlexander Monakov <amonakov@ispras.ru>2020-08-11 21:11:16 +0300
committerRich Felker <dalias@aerifal.cx>2020-08-11 14:43:20 -0400
commit59b64ff686cef2a87e9552658b2c8d2531f87176 (patch)
tree7baac904e666314dbe3bbf0fbb1697e476952c73 /src
parentc6a6fe4ccdba92c518dfbf337cda1bf0f697527d (diff)
downloadmusl-59b64ff686cef2a87e9552658b2c8d2531f87176.tar.gz
musl-59b64ff686cef2a87e9552658b2c8d2531f87176.tar.xz
musl-59b64ff686cef2a87e9552658b2c8d2531f87176.zip
setjmp: optimize x86 longjmp epilogues
Diffstat (limited to 'src')
-rw-r--r--src/setjmp/i386/longjmp.s6
-rw-r--r--src/setjmp/x32/longjmp.s6
-rw-r--r--src/setjmp/x86_64/longjmp.s6
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 */