я демонтировал нарукавную бинарный ранее скомпилированный с неоновыми флагами:Почему команда vdiv генерируется с неоновыми флагами?
-mcpu = Cortex-A9 -mfpu = неон -mfloat-аби = softfp -ftree-векторизовать
Свалки показывает команду vdiv.f64 генерируемой компилятором. Согласно руководству руки для armv7 (cortex-a9) neon simd isa не поддерживает команду vdiv, но движок с плавающей запятой (vfp). Почему эта инструкция сгенерирована? это тогда инструкция с плавающей запятой, которая будет выполняться vfp? Как neon, так и VFP поддерживают добавление и умножение для с плавающей запятой, так как я могу отличить их от eahc other?
Да, это инструкция VFP. Вы можете легко это увидеть, потому что AArch32 neon не работает на 64-битной плавающей запятой вообще. – EOF
благодарю вас за ответ, но что, если я увижу «вадд», сгенерированный компилятором, как я могу узнать, является ли это инструкцией NEON или VFP, поскольку оба эти устройства выполняют эту инструкцию? Я работаю с процессором arm cortex-a9 и инструментальной цепочкой arm-none-linux-gnueabi *. –
neon использует имена регистров 'D [n]' и 'Q [n]' и инструкции-postfixes 'F32' (и' I [n] 'для целых инструкций), VFP использует' S [n] 'и' D [ n] 'и инструкции-postfixes' F64' или 'F32'. Оказывается, комбинация недвусмысленная. – EOF