Существует подобное сообщение, которое охватывает обычные регистры. Что относительно регистров NEON. Насколько я помню, верхняя половина или нижняя половина регистров должны быть сохранены во всех вызовах функций. Я не могу найти эту информацию нигде, может кто-нибудь уточнить это?
спасибо
Из 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 и расширенное расширение SIMD):
- s16-s31 (d8-d15, q4-q7) должен быть сохранен
- s0-s15 (d0-d7, q0-q3) и d16-d31 (q8-q15) не нужно сохранять