Add scatter/gather support for AArch64's Scalable Vector Extension (SVE)
We will shortly be upstreaming SVE scatter/gather instructions as part of AArch64 SVE codec and core/tools work (https://github.com/DynamoRIO/dynamorio/issues/5365, https://github.com/DynamoRIO/dynamorio/issues/3044). There are two aspects of this work:
-
IR and codec: new AArch64 addressing modes, an extension of the existing
opnd_create_base_disp_aarch64()
or a newopnd_create_base_disp_
function for SVE. - Core and tools: emulation of SVE scatter/gather for observing memory, similar to AVX512, see https://dynamorio.org/page_scatter_gather_emulation.html
In both cases we would like to be consistent with the design of the AVX512 IR API and emulation implementation, as much as possible. We would appreciate any advice on the best approach and the avoidance of pitfalls which you may have have encountered during your work on AVX512. As well as pointers to code which is relevant to and/or will help us with implementing for SVE.