From 6046eb47e4b795f01500f5f3ce055138a5743332 Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Thu, 19 Jul 2018 17:17:26 -0500 Subject: [PATCH] Reorder registers in other x86_64 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