Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2469)

Unified Diff: Source/platform/heap/asm/SaveRegisters_x86.asm

Issue 941763002: Preserve required MS x64 call stack alignment when flushing registers. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/platform/heap/asm/SaveRegisters_x86.asm
diff --git a/Source/platform/heap/asm/SaveRegisters_x86.asm b/Source/platform/heap/asm/SaveRegisters_x86.asm
index 32bc73a6e02b99219116a747bdf35eeb65980ee3..35fa2c978e7ce51c598327e9ca7816c73f4fcc01 100644
--- a/Source/platform/heap/asm/SaveRegisters_x86.asm
+++ b/Source/platform/heap/asm/SaveRegisters_x86.asm
@@ -101,6 +101,10 @@ mangle(pushAllRegisters):
mangle(pushAllRegisters):
;; Push all callee-saves registers to get them
;; on the stack for conservative stack scanning.
+ ;; There is an 8-byte return address on the stack and we push
+ ;; 72 bytes which maintains the required 16-byte stack alignment
+ ;; at the call.
+ push 0
push rsi
push rdi
push rbx
@@ -117,7 +121,7 @@ mangle(pushAllRegisters):
call r9
;; Pop the callee-saved registers. None of them were
;; modified so no restoring is needed.
- add rsp, 64
+ add rsp, 72
ret
%elif IA32
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698