[3/3] setjmp: optimize x86 longjmp epilogues

Submitted by Alexander Monakov on Aug. 11, 2020, 6:11 p.m.

Details

Message ID 20200811181116.8433-3-amonakov@ispras.ru
State New
Series "Series without cover letter"
Headers show

Commit Message

Alexander Monakov Aug. 11, 2020, 6:11 p.m.
---
 src/setjmp/i386/longjmp.s   | 6 ++----
 src/setjmp/x32/longjmp.s    | 6 ++----
 src/setjmp/x86_64/longjmp.s | 6 ++----
 3 files changed, 6 insertions(+), 12 deletions(-)

Patch hide | download patch | download mbox

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 */