今日の作業

7:29

crosstoolでBINTUILS_DIR=binutils-050606にしてビルド開始したら、gccglibcのconfigureのバージョンチェックで跳ねられた。とりあえずインストールされたgasを実行して確認してみたところ、件の問題は解消されている。よし! なんとかこのバージョンのbinutilsでtoolchainを作れるようにしよう。

21:57

binutilsのconfigureでVERSION=050606になっているところをVERSION=2.17に書き換えてやると、crosstoolで無事ビルド出来た。

で、IPPをsoftfpaでリンク出来るように書き換え。

>>> softfpa.py
import sys

buf = file(sys.argv[1], "rb").read()
for i in range(len(buf)):
        if buf[i:i+3] == "ELF":
                if ord(buf[i+36]) == 0x06:
                        buf = buf[0:i+36] + chr(0x02) + buf[i+37:]
file(sys.argv[1], "wb").write(buf)

>>> for i in *.a; do softfpa.py $i; done

22:05

むぅ、無理矢理softfpaに変更したIPPだと映像のデコードが少しおかしい。レジスタ保存まわりのABIが違うんかな。

これを機にiWMMXt版はIPPから脱却するか。ライセンス的に不安なところがあるし。

22:14

って、上記の件は自分で入れ込んだバグだった。

22:44

うーむ、最新のbinutilsでもプリ/ポストインデックスは使えないようだ。アセンブル自体は通るんだけど、意図した結果が出ない。ARMでの命令エンコーディングが分からないのでハッキリとは言えないんだけど、アセンブラのバグなんじゃないかと思う。はてさて。

ARMアーキテクチャのマニュアルが欲しいんだけど、オンラインマニュアルは無くて本を買わないといけないみたい。10000円だって。どうしよう。