Skip to content

Conversation

arnaud-lb
Copy link
Member

Fixes GH-19601.

On aarch64 we must set IR_USE_FRAME_POINTER to ensure that LR/x30 is saved. Also, fixed_stack_frame_size must be n*16, not n*16+8 like on x86. This was properly handled before, but this broke due to this change, which I failed to test on aarch64:

#if ZEND_VM_KIND == ZEND_VM_KIND_TAILCALL
jit->ctx.fixed_stack_frame_size = sizeof(void*) * 5; /* 5 spill slots (8 bytes) or 10 spill slots (4 bytes) */

@andypost
Copy link
Contributor

testing it, will report results

@andypost
Copy link
Contributor

Thank you! it's passed tests using clang21! log is https://gitlab.alpinelinux.org/alpine/aports/-/jobs/1990780

@arnaud-lb arnaud-lb marked this pull request as ready for review August 29, 2025 15:15
@arnaud-lb arnaud-lb requested a review from dstogov as a code owner August 29, 2025 15:15
@arnaud-lb arnaud-lb closed this in 95d52d5 Sep 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

JIT tests fail on aarch64 for 8.5beta2 using clang 19, 20, 21
3 participants