فهرست منبع

setjmp: optimize x86 longjmp epilogues

Alexander Monakov 4 سال پیش
والد
کامیت
59b64ff686
3فایلهای تغییر یافته به همراه6 افزوده شده و 12 حذف شده
  1. 2 4
      src/setjmp/i386/longjmp.s
  2. 2 4
      src/setjmp/x32/longjmp.s
  3. 2 4
      src/setjmp/x86_64/longjmp.s

+ 2 - 4
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)

+ 2 - 4
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 */

+ 2 - 4
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 */