我目前尝试使用 ARM 汇编代码为 iPhone 的 VFP 单元编写程序。VFP 可以进行浮点计算,但 AFAIK 没有整数运算。但是,它可以将浮点数转换为有符号整数(4 个字节)。此外,根据此快速参考:http ://www.voti.nl/hvu/arm/ARMquickref.pdf 似乎它不支持任何移位操作
我想做的是将4个浮点数转换为4个有符号字节,我确信每个浮点数都大于-127且小于127。
如果我有可用的移位操作,我可以将浮点数转换为有符号整数,然后将值向左移动 12 个字节(接下来的两个值分别为 8 和 4 个字节)并将所有四个值按位或。
但是,由于无法转移,我需要找到另一种方法来做到这一点。另外 - 我不能使用整数算术(所以我不能将已经转换的整数乘以 2^n 以进行移位,但我必须改为使用浮点数)。
任何人都知道我怎么能做到这一点?
顺便说一句,对于那些熟悉 ARM 架构的人来说——我不想切换到 Thumb 指令,因为这是在一个对许多元素进行操作的循环中完成的,我不想在这个循环内在 thumb 和 arm 指令之间切换(因为那是昂贵的)
谢谢!
编辑:
附加问题:如何规范化具有三个元素的向量?