* Implement PowerPC block trampoline
* Adjust pagesize on ppc64
* Skip UnexpectedException test for PowerPC
* Move PAGE_SIZE to asmconstants.h
* Use PAGE_SIZE and PAGE_SHIFT macros for PowerPC
* Add ppc64el and powerpc qemu-crossbuild targets
* Add NO_SAFE_CACHING definition and guards
* Do not export objc_method_cache_version on ppc32
---------
Co-authored-by: David Chisnall <davidchisnall@users.noreply.github.com>
at the start of the structure, making it easier to change the layout in
the future.
Also clean up the growth of various fields and consolidate some of the
metadata into a pointer to the `struct objc_method`.
An interesting feature of the AArch64 ABI simplifies this code relative to other platforms. AArch64 reserves an extra register (x8) for the address of struct returns, giving the
This saves one load on the message send path for each tree depth (2
loads in the common case, 3 if you have a lot of selectors), which
should improve cache usage considerably.
Note: This is a checkpoint commit. Currently, every objc_msgSend()
implementation except for x86-64 is broken.