1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
From 42c84cbe58c3c9089cc2a46a425210f20b47bcc9 Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Thu, 19 Jul 2018 17:17:26 -0500
Subject: [PATCH] Reorder registers in other assembler files
This fixes the previous commit which changed the register order in
swapcontext only, which caused setcontext to subtly corrupt the stack.
---
arch/x86_64/getcontext.S | 4 ++--
arch/x86_64/setcontext.S | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/x86_64/getcontext.S b/arch/x86_64/getcontext.S
index 7e56a1a..24cc1d3 100644
--- a/arch/x86_64/getcontext.S
+++ b/arch/x86_64/getcontext.S
@@ -22,8 +22,8 @@ __getcontext:
movq %r14, 88(%rdi)
movq %r15, 96(%rdi)
movq %rdi, 104(%rdi)
- movq %rbp, 112(%rdi)
- movq %rsi, 120(%rdi)
+ movq %rsi, 112(%rdi)
+ movq %rbp, 120(%rdi)
movq %rbx, 128(%rdi)
movq %rdx, 136(%rdi)
movq $1, 144(%rdi) /* $1 is %rax */
diff --git a/arch/x86_64/setcontext.S b/arch/x86_64/setcontext.S
index 607d40c..aba3775 100644
--- a/arch/x86_64/setcontext.S
+++ b/arch/x86_64/setcontext.S
@@ -21,8 +21,8 @@ __setcontext:
movq 80(%rdi), %r13
movq 88(%rdi), %r14
movq 96(%rdi), %r15
- movq 112(%rdi), %rbp
- movq 120(%rdi), %rsi
+ movq 112(%rdi), %rsi
+ movq 120(%rdi), %rbp
movq 128(%rdi), %rbx
movq 136(%rdi), %rdx
movq 144(%rdi), %rax
--
2.15.0
|