summaryrefslogtreecommitdiff
path: root/asmrun
diff options
context:
space:
mode:
authorChristoph Cullmann <cullmann@kde.org>2016-11-20 13:15:29 +0100
committerChristoph Cullmann <cullmann@kde.org>2016-11-20 13:15:29 +0100
commit75e0f787c97757a80e1f3dddc8bd16444e56dc08 (patch)
treebb66f1b57730a1dc51493d801d6021c0e8eb661a /asmrun
parentf68ff2e5b0bd1ba3efe37ec336c02226237cc48b (diff)
downloadocaml-75e0f787c97757a80e1f3dddc8bd16444e56dc08.tar.gz
PR#7417: ensure stack stays 16 bytes aligned
Diffstat (limited to 'asmrun')
-rw-r--r--asmrun/amd64.S5
1 files changed, 4 insertions, 1 deletions
diff --git a/asmrun/amd64.S b/asmrun/amd64.S
index 2d77e0f40a..efb8fd9b58 100644
--- a/asmrun/amd64.S
+++ b/asmrun/amd64.S
@@ -438,12 +438,15 @@ LBL(103):
CFI_ADJUST(8)
RECORD_STACK_FRAME(8)
#ifdef WITH_FRAME_POINTERS
- /* Do we need 16-byte alignment here ? */
+ /* ensure 16 byte alignment by subq + enter using 16-bytes, PR#7417 */
+ subq $8, %rsp; CFI_ADJUST (8)
ENTER_FUNCTION
#endif
call LBL(caml_call_gc)
#ifdef WITH_FRAME_POINTERS
+ /* ensure 16 byte alignment by leave + addq using 16-bytes PR#7417 */
LEAVE_FUNCTION
+ addq $8, %rsp; CFI_ADJUST (-8)
#endif
popq %rax; CFI_ADJUST(-8) /* recover desired size */
jmp LBL(caml_allocN)