Neon Intrinsic 版本的汇编代码

Posted

技术标签:

【中文标题】Neon Intrinsic 版本的汇编代码【英文标题】:Assembly code for Neon Intrinsic Version 【发布时间】:2014-06-30 10:14:29 【问题描述】:

我是 Neon Assembly 编程的新手,我开发了 Neon Intrinsic 版本的视频边缘检测算法,它获得了 2 倍的性能。现在我想尝试 Neon 程序集 - 我想查看编译器为 Neon Intrinsic 生成的程序集代码并尝试我自己的 Neon 程序集。我的问题是如何查看android NDK中Neon Intrinsic优化代码编译器生成的汇编代码?

当我尝试时

objdump -d kalifilters-intrinsics.o

kalifilters-intrinsics.o:文件格式elf32-little

objdump:无法为 UNKNOWN 架构反汇编!

我知道 objdump 失败,因为目标文件是 arm 架构的意思,请告诉我 arm 相关的 objdump 工具!

【问题讨论】:

【参考方案1】:

NDK 包含特定于架构的 objdump 二进制文件:

$ find ./ -iname \*objdump\*|grep arm
./toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/arm-linux-android
eabi/bin/objdump.exe
./toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/arm-linux-and
roideabi-objdump.exe
./toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64/arm-linux-android
eabi/bin/objdump.exe
./toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64/bin/arm-linux-and
roideabi-objdump.exe

【讨论】:

@Hans Kratz 感谢您的回答,它解决了我的问题【参考方案2】:

为此我推荐 IDA Pro:

https://www.hex-rays.com/products/ida/

只需将 .o / .so 文件拖到 IDA 中,您将获得可读格式的反汇编。

没有比这更好的了。还有一个 Linux 版本以及 OS X。

【讨论】:

很高兴他们支持这么多 ARM 变体。评估版加载了我的ARMv7.so,没问题。

以上是关于Neon Intrinsic 版本的汇编代码的主要内容,如果未能解决你的问题,请参考以下文章

优化系列汇编优化技术:ARM架构Intrinsic汇编优化及demo

优化系列汇编优化技术:x86架构Intrinsic优化及demo

NEON 汇编代码,如何将 BYTE 转换为浮点数?

NEON 汇编代码在 Cortex-A72 与 Cortex-A53 上需要更多周期

优化系列汇编优化技术:MIPS架构MSA Intrinsic优化及demo

优化系列汇编优化技术:MIPS架构MSA Intrinsic优化及demo