Существует аналогичный пост , который охватывает обычные регистры. Как насчет НЕОН регистров. Насколько я помню, либо верхняя, либо нижняя половина регистров должны сохраняться при вызовах функций.
Я нигде не могу найти эту информацию, кто-нибудь может это уточнить?
спасибо
С AAPCS, §5.1.1 Регистры ядра :
- r0-r3 - регистры аргумента и нуля; r0-r1 также являются регистрами результата
- r4-r8 - регистры сохранения вызовов
- r9 может быть регистром сохранения вызываемого абонента или нет (в некоторых вариантах AAPCS это специальный регистр)
- r10-r11 - регистры сохранения вызовов
- r12-r15 - специальные регистры
С AAPCS, §5.1.2.1 Соглашения об использовании регистра VFP (VFP v2, v3 и Advanced SIMD Extension) :
- с16 – с31 (d8 – d15, q4 – q7) должно быть сохранено
- s0 – s15 (d0 – d7, q0 – q3) и d16 – d31 (q8 – q15) не требуется сохранять