現在、ARMアセンブリコードを使用してiPhoneのVFPユニット用のプログラムを作成しようとしています。VFPは浮動小数点計算を実行できますが、AFAIKは整数演算を実行できません。ただし、floatを符号付き整数(4バイト)に変換できます。また、このクイックリファレンスによると:http ://www.voti.nl/hvu/arm/ARMquickref.pdf シフト操作をサポートしていないようです
私がやりたいのは、それぞれが-127より大きく127より小さいと確信している4つのfloatを4つの符号付きバイトに変換することです。
シフト操作を使用できる場合は、floatを符号付き整数に変換してから、値を左に12バイト(次の2つの値はそれぞれ8バイトと4バイト)シフトし、4つすべてをビット単位でORします。
ただし、シフトは利用できないため、別の方法を見つける必要があります。また、整数演算を使用することはできません(したがって、シフトするために、すでに変換された整数に2 ^ nを掛けることはできませんが、代わりにfloatで作業する必要があります)。
誰もが私がそれを達成する方法を知っていますか?
ところで、ARMアーキテクチャに精通している人のために-これは多くの要素で動作するループで行われ、このループ内でサム命令とアーム命令を切り替えたくないので、サム命令に切り替えたくありません(それは高価な)
ありがとう!
編集:
追加の質問:3つの要素でベクトルを正規化するにはどうすればよいですか?