This change add a support for preserve_most/preserve_all calling conventions to the AArch64 backend, similar to how it was done for X86-64.
There is also a subsequent patch on top of this one to add a tail-calls support for these calling conventions.
I think some more comments on the choices here would be useful. Obviously you can't preserve x16 or x17 because the linker may use them to resolve a PLT call, and x18 is the platform register on Darwin.
But you're excluding x15 too, which makes "RT_AllRegs" increasingly misnamed (it also excludes the high half of vector registers and the argument registers).