Skip to content

arm: Implement checked_call for Apple platforms

This series of patches contains a number of different implementations of checked_call for Apple; while we probably want to settle on the last form, I'd like to include all the intermediate steps, to show off the different evolution stages and their pros and cons.

Initially I do different, more targeted ways of handling the Apple specific quirks about how arguments on the stack are packed, but in the end, I settle on an implementation that almost entirely avoids any differences between Apple and other platforms - the same solution that is used on x86_64 these days as well (since 6fefa6a55cc1cc1cefad93e9f78efd0725fd8efa in dav1d).

With this in place, #19 (closed) wouldn't have happened, but we would have gotten a clear error inication right away. And with this in place, we can enable essentially all of the aarch64 selftests on Apple platforms too.

And to clarify the original context - initially, when Apple on arm64 only was iOS and similar platforms, it wasn't a big deal that checkasm didn't have all the check ergonomics as elsewhere, but these days, we want to provide as many checks as possible for developers on macOS.

CC @ccawley2011

Merge request reports

Loading