Регистры расширения NEON можно рассматривать как 16 четверных слов или 32 двойных слова. В большинстве программ конкретный используемый регистр является фиксированным. Например,
vmov.i8 d0, 0xff
vmov.i8 d1, 0xee
vmov.i8 d2, 0xdd
В моей задаче количество необходимых регистров двойного слова зависит от аргумента в вызове функции. Например, если аргумент равен 2, мне нужно сделать
vmov.i8 d0, 0xff
vmov.i8 d1, 0xee
Если аргумент равен 4, мне нужно сделать
vmov.i8 d0, 0xff
vmov.i8 d1, 0xee
vmov.i8 d2, 0xdd
vmov.i8 d3, 0xcc
Можно ли как-то выбрать регистр, имя которого основано на переменной? то есть что-то в этой строке (следующее не является допустимым кодом сборки ARM):
mov r0, #1
vmov.i8 d{r0}, 0xff