Я пытаюсь уменьшить размер своего приложения для iOS (раздел кода двоичного файла составляет 70 МБ), используя инструкции для большого пальца. Кажется, существует много дискуссий по поводу использования версии armv7 для большого пальца, например. здесь: http://wanderingcoder.net/2010/07/19/ought-arm /а> . Однако я не могу найти очень много о arm64 + Thumb. Это вообще возможно? Если да, то как я могу компилировать clang таким образом?
Могу ли я использовать инструкции Thumb в двоичном файле arm64?
Ответы (1)
Из Справочного руководства ARMv8, §A1.3.2 (стр. A1- 35):
Состояние AArch64 поддерживает только один набор инструкций, называемый A64. Это набор инструкций фиксированной длины, в котором используются 32-битные кодировки инструкций.
Так что нет, 64-битный Thumb не вещь.
person
Siguza
schedule
07.09.2017
Стоит отметить, что вы можете скомпилировать двоичный файл с инструкциями T32, который работает в состоянии AArch32 на ядрах ARMv8.
- person chrisvarnz; 06.04.2020
@chrisvarnz, в свою очередь, стоит отметить, что не все ядра ARMv8 поддерживают AArch32.
- person Siguza; 06.04.2020
Абсолютно, я думаю, что Android тоже не поддерживает это!
- person chrisvarnz; 07.04.2020
@Siguza, действительно ли некоторые ядра не поддерживают AArch32? Ваша цитата относится к состоянию выполнения AArch64, но в руководстве четко указано, что AArch32 является допустимым состоянием выполнения и что процессор может переключиться на другое состояние выполнения.
- person Benni; 12.06.2020
@Benni Регистр функций
ID_AA64PFR0_EL1
указывает, поддерживается ли AArch32 в каждом из EL3, EL2, EL1 и EL0. AArch64 подразумевается/требуется, а AArch32 — нет. И, например, если вам удастся проверить этот регистр на процессоре Apple A11 или более поздней версии, вы обнаружите, что AArch32 действительно не поддерживается ни на одном уровне исключений.
- person Siguza; 12.06.2020