Поскольку вы говорите на самом деле ориентации ARMv7, то лучше всего делать это предупреждение, чтобы просто игнорировать или отключить это, в идеале, не нацеливая ARMv8-A, чтобы спровоцировать его в первую очередь.
Для процессоров V7 это совершенно неуместно; для существующих процессоров v8-A, это в значительной степени не имеет значения, потому что главная точка AArch32 заключается в обратной совместимости с существующим кодом v7, и если бы они не запускали этот код, по крайней мере, так же как и их предшественники v7, они бы не были очень популярны. Для будущих процессоров v8-A, как только значительная часть программного обеспечения перешла на AArch64, может потенциально может быть частью реструктуризации вашего кода AArch32, чтобы избежать блоков ИТ, где это возможно, но в любом случае самое худшее, что нужно сделать: просто закончите с несколькими однонаправленными блоками.
Все это немного глупо, на самом деле. Что ARMv8-A Архитектура Справочное руководство говорит о «частичном устаревания ИТ» является:
ARMv8-А некоторые осуждает использование инструкции T32 IT
, по соображениям производительности. [...] Полная функциональность команд ARMv7 IT
остается доступной для выполнения устаревшего кода T32. [...]
Да, может быть дополнительный бит управления в ловушку «устаревшим» не использует, но даже если v8-A CPU делает осуществить это, не OS, которая ожидает запуска кода v7 когда-либо собирается его установить. Многоэтажные ИТ-блоки по-прежнему должны поддерживаться будущими реализациями AArch32, они могут быть медленнее, чем альтернативный код, поэтому ARM пытается убедить нас избежать их.Честно говоря, я бы представил теоретические будущие процессоры v8-A, которые не нацелены на запуск существующего 32-битного кода, поэтому могут сделать оптимизацию, из-за чего нежелательно поддерживать многопользовательские IT-блоки эффективно, вероятно, более вероятно в любом случае просто отказаться от поддержки AArch32.
v7-M и v8-A (где применяется эта устаревание) - это очень разные вещи - какой из них действительно имеет значение здесь? – Notlikethat
@Notlikethat Я работаю над процессором ARMv7 rev 4 (v7l) '(Raspberry Pi 2B), но хочу генерировать Thumb-only. Я действительно генерирую этот код и хочу, чтобы он был применим для процессоров, у которых есть только Thumb (например, Cortex M). – Keelan
В этом случае вы не должны настраивать ARMv8 вообще. FWIW, однако, лучше всего просто отключить это предупреждение. – Notlikethat