This patch adds Arm's Scalable Vector Extension vector length support. The vector length is determined at runtime on startup in get_processor_specific_info() and available using proc_get_vector_length().
Cleancall, machine and signal context code have been updated to handle SVE registers as have API functions like reg_get_size() which will return the hardware's vector size rather than OPSZ_SCALABLE.
The SVE specification allows for a maximum vector length of 2048 bits. We currently support 512 bits maximum due to DR's stack size limitation. There is currently no stock SVE hardware with vector lengths greater than 512 bits.
There will be follow on patches to add:
- Predicate registers.
- Handling of First Fault Register (FFR).
- Targetted SVE tests.