其他分享
首页 > 其他分享> > android – ARM Neon Assembler – 奇怪的管道问题

android – ARM Neon Assembler – 奇怪的管道问题

作者:互联网

我试图使用Neon指令提高ARM Assembler中编写的代码的性能.

为了测试和计算我使用这个计算器:
http://pulsar.webshaker.net/ccc/sample-706454b3

我注意到在“n.34-0 1c n0”线突然,霓虹灯装置似乎必须等待(?)10个周期.可能是什么原因或者只是计算器中的错误?

另外,我需要一些一般信息来了解如何提高ARM / Neon汇编程序的性能.

Target是ARM Cortex-A9.
为了编译,我使用最新的android-ndk和内联汇编程序.谢谢.

解决方法:

实际上这有点复杂.
BitBank是对的,NEON必须等待D4.

但是你必须等待10个周期,因为Neon有一个加载/存储队列.
并且在之前队列中充满了其他指令

vld1.64 d4, [r7, :64]

所以当你需要D4时,你必须等待执行这条指令
但要执行此指令,必须执行推入NEON加载/存储队列的所有先前加载/存储指令.

标签:neon,android,assembly,arm,android-ndk
来源: https://codeday.me/bug/20190729/1574123.html