最快的Cortex M0 + Thumb 32x32 = 64倍增功能?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最快的Cortex M0 + Thumb 32x32 = 64倍增功能?相关的知识,希望对你有一定的参考价值。

有没有人(或者可以很容易地编写)Thumb模式下ARM Cortex M0 +处理器的最佳内联汇编函数来乘以两个32位数并返回一个64位数?

由于M0 +不具有长乘法,因此可以实现的唯一方法是通过基元乘法,编译器调用__aeabi_lmul,其在34条指令中执行64x64 = 64乘法。我希望存在一个明显更快的算法,因为输入只有32位。

答案

所以你在谈论无符号或有符号乘法?如果签名然后你做64x64 = 64无论如何不是32x32 = 64。如果未签名,则获取gcc库函数的源代码并修改它,因为您知道操作数的上半部分为零。

或者看看Hackers Delight(hackersdelight.org),看看是否存在比gcc库更快实现的算法。

以上是关于最快的Cortex M0 + Thumb 32x32 = 64倍增功能?的主要内容,如果未能解决你的问题,请参考以下文章

Cortex-M的比较

组装 THUMB 指令以在 Cortex-M3 上执行

谁有cortex M0的学习视频?学习历程也行!如何学习cortex M0,从哪里入手。怎样提高。好的话另外有加分

从Cortex M0 +上的硬故障中恢复

Cortex M0 不进入睡眠模式

STM32 Cortex M0 上的 ThreadX 内存分配