-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some IR tests still fail on MacOS/AArch64 #55
Comments
Thanks for the report. The vararg passing on MacOS/AArch64 is not fixed yet. However this failure is not related to calling convention and it is not a serious problem. The difference is in usage of Probably we may always generate |
I'm wrong. This test uses expectation that is incorrect on MacOS. The third argument must be passed through stack and the result of the execution is incorrect. This is directly related to vararg passing. |
Thanks for your quick fix. We now have 12 failures, 11 of which are just caused by the diff in assembly code.
But the last one $ diff tailcall_001.out tailcall_001.exp
2d1
< sub sp, sp, #0x10
4,16c3,4
< movz w16, #0x2a
< str x16, [sp]
< sub sp, sp, #0x10
< adr x0, .L1
< movz w16, #0x2a
< str x16, [sp]
< movz x17, #0x9f54
< movk x17, #0x8857, lsl #16
< movk x17, #0x1, lsl #32
< blr x17
< add sp, sp, #0x10
< add sp, sp, #0x10
< ret
---
> movz w1, #0x2a
> b printf
21a10,12
> hello 42!
>
> exit code = 10 There is no |
Great! Thanks! According
The other test failures most probably are false positives and may be avoided by separating target apple-aarch64. |
The output for |
Just checked that there's no other failures, except those caused by the assembly difference. Thanks for it.
Is the assembly difference eventually caused by the different behavior of DynASM on Linux and MacOS? I'd like to know if it can be avoided by replacing current IR backend to something else. |
There are two reasons:
|
Oh yes, I understand that. Thanks for your explanation. |
Hi @dstogov,
I noticed that you had fixed the
ir_add_veneer()
assertion failure in 1671b3d. After your fix, there is no more assertion failure, but below IR tests still fail on MacOS/AArch64.The failures are caused by the difference between
.exp
and.out
, for example./tests/debug.aarch64/call.irt
call.out
call.exp
It looks that the issues are still related to calling convention differences between Linux/AArch64 and MacOS/AArch64. Perhaps you are still working on some complete fixes for this. But I'd like to add this issue here to track this.
The text was updated successfully, but these errors were encountered: