This PR adds support for aarch64 on both Linux and macOS targets. It's basically identical to x86_64, just with a different set of callee-saved registers and simpler stack alignment in the aarch64 ABI. I suspect some of the alignments can be relaxed on ARM but I didn't want to dive too deeply into that so they are left the same as x86.
Travis supports ARM CI runners for Linux so I added those. There's no ARM macOS support on Travis (yet?), but I've tested locally on an ARM Mac.
This PR adds support for aarch64 on both Linux and macOS targets. It's basically identical to x86_64, just with a different set of callee-saved registers and simpler stack alignment in the aarch64 ABI. I suspect some of the alignments can be relaxed on ARM but I didn't want to dive too deeply into that so they are left the same as x86.
Travis supports ARM CI runners for Linux so I added those. There's no ARM macOS support on Travis (yet?), but I've tested locally on an ARM Mac.