Я работаю с компилятором llvm-clang, собирая простые функции C вплоть до сборки на процессоре ARMv7-A.Я пытаюсь выяснить, что делает эта инструкция.
SUB sp, sp, #65, 30
Очевидно, что в указателе стека остается место для некоторых локальных переменных, но я никогда не видел инструкции ARM SUB с четырьмя операндами.Я предполагаю, что 30 каким-то образом модифицирует # 65, но я не знаю как, и я не смог найти подробностей в Справочном руководстве по архитектуре ARM.Любые предложения?
Для любопытных, это в начале программы, которая создает 8x8 единичную матрицу целых чисел, поэтому я ожидаю, что sp должен освободить место как минимум для 8 x 8 x4 байта в стеке.