[pypy-commit] pypy default: More missing stack alignment
arigo
noreply at buildbot.pypy.org
Sat Mar 7 09:31:03 CET 2015
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r76266:df8de9ee47b5
Date: 2015-03-07 09:31 +0100
http://bitbucket.org/pypy/pypy/changeset/df8de9ee47b5/
Log: More missing stack alignment
diff --git a/rpython/translator/c/src/stacklet/switch_x86_64_gcc.h b/rpython/translator/c/src/stacklet/switch_x86_64_gcc.h
--- a/rpython/translator/c/src/stacklet/switch_x86_64_gcc.h
+++ b/rpython/translator/c/src/stacklet/switch_x86_64_gcc.h
@@ -10,7 +10,10 @@
"pushq %%r12\n"
"pushq %%r13\n"
"pushq %%r14\n"
+ "movq %%rsp, %%rbp\n"
+ "andq $-16, %%rsp\n" /* <= align the stack here... */
"pushq %%r15\n"
+ "pushq %%rbp\n" /* ...so that rsp is now a multiple of 16 */
"movq %%rax, %%r12\n" /* save 'restore_state' for later */
"movq %%rsi, %%r13\n" /* save 'extra' for later */
@@ -34,7 +37,9 @@
/* The stack's content is now restored. */
"0:\n"
+ "popq %%rbp\n"
"popq %%r15\n"
+ "movq %%rbp, %%rsp\n"
"popq %%r14\n"
"popq %%r13\n"
"popq %%r12\n"
More information about the pypy-commit
mailing list