на iPhone / ARM, какие регистры ЦП должны сохранять функции, если таковые имеются?
Соглашение о вызовах iPhone/ARM
Ответы (2)
В статье Википедии о Соглашении о вызовах содержится хороший обзор соглашений для ARM.
Старый, но неверный ответ. Википедия часто бывает неточной (иногда совершенно неверной), и это пример первого случая. Существует общее соглашение о вызовах (это то, что документирует Википедия), но операционные системы могут отклоняться - как Android, так и iOS (и, вероятно, Win 8 будет, но мы узнаем об этом, когда начнут появляться двоичные файлы)
http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iPhoneOSABIReference/Introduction/Introduction.html содержит правильную спецификацию для iOS, поэтому нет смысла здесь повторяться. В частности, обратите внимание на использование r7 и r12. Также обратите внимание, что ARMv6 и ARMv7 отличаются. К настоящему времени вам нужны архитектуры ARMv7 (A4,5,6..)