Currently, unw_context_t and unw_cursor_t are sized to allow the virtual register set of any target architecuture supported by libunwind. This does not work well for baremetal ARM targets (where memory is at a premium).
This patch makes unw_context_t and unw_cursor_t use just enough space to hold the ARM virtual register set on baremetal arm targets.
The various Registers_xxx definitions (and their dependencies) had to be conditionally compiled out in order to allow each of the targets to perform size checks independently.
This change saves about 1500 bytes of stack on ARM v7 (similar amount on AArch32).
__aarch64__ is defined for iOS too, so no need for both.