File tree Expand file tree Collapse file tree 1 file changed +8
-0
lines changed Expand file tree Collapse file tree 1 file changed +8
-0
lines changed Original file line number Diff line number Diff line change @@ -2733,7 +2733,15 @@ static void zend_jit_init_ctx(zend_jit_ctx *jit, uint32_t flags)
2733
2733
/* Stack must be 16 byte aligned */
2734
2734
/* TODO: select stack size ??? */
2735
2735
#if ZEND_VM_KIND == ZEND_VM_KIND_TAILCALL
2736
+ # if defined(IR_TARGET_AARCH64)
2737
+ /* Must save LR */
2738
+ jit->ctx.flags |= IR_USE_FRAME_POINTER;
2739
+ /* Same as HYBRID VM */
2740
+ jit->ctx.fixed_stack_frame_size = sizeof(void*) * 4; /* 4 spill slots (8 bytes) or 8 spill slots (4 bytes) */
2741
+ # else
2742
+ /* Same as HYBRID VM, plus 1 slot for re-alignment (caller pushes return address, frame is not aligned on entry) */
2736
2743
jit->ctx.fixed_stack_frame_size = sizeof(void*) * 5; /* 5 spill slots (8 bytes) or 10 spill slots (4 bytes) */
2744
+ # endif
2737
2745
#elif defined(IR_TARGET_AARCH64)
2738
2746
jit->ctx.flags |= IR_USE_FRAME_POINTER;
2739
2747
jit->ctx.fixed_stack_frame_size = sizeof(void*) * 16; /* 10 saved registers and 6 spill slots (8 bytes) */
You can’t perform that action at this time.
0 commit comments