The Man Who Fell From The Wrong Side Of The Sky:2019年8月11日分

2019/8/11(Sun)

[オレオレN6] 続・OpenSSL + MIPS

NではOpenSSLがlibcにあるSHA512実装を使うように改造されてる。なもんでsha512-mips.Sはビルドされんので気づかなかったのだが、このファイルを生成するためのsha512-mips.pl実行時にo32を指定してもなおdadduといった64bit拡張命令が使われとるので、どうやら最低要求のISAがMIPS IIIじゃねえのってことに気づくなど。

おそらくISAについて元々

を要求するようなので、そこは下をMIPS IIIに足切りしたってことなんだろうな *1、ならNのデフォルトであるgcc -mips1でビルド通らんコードになるわそら。

ちなみにN/hpcmipsで使われてるCPUはTOSHIBA TX39XX(MIPS I)やNEC VR41XX(MIPS II)だからCOPTS=-mips3するわけにもいかんので、こいつら全部無効にせんと駄目ってこった、またifdefが厚くなるな…

しかし問題はやっぱりAESがとんでもなく遅い理由よな、いちおうaes-mips.SはMIPS Iの命令だけしか使われてなようなんだが、MIPS III以上で動かさないと数分の1の速度でCコードより遅くなるなんてありえんと思うんだけどね、まぁトーシロ考えだけどさ…

とりあえずはN/hpcmipsではなくGXemul -emaltaでN/evbmipsでベンチとってみますかね、またバグ対策にシングルユーザーモードで起動とかめんどいのでMicrosoft GianoとN/emipsも試したんだけど、こっちはこっちで起動途中にCPU 100%のままに刺さるっぽいので諦めた、もしかするとマシンスペック足りねえのかな…

*1:かといって他のコードも全てISAはMIPS III以上を想定してるわけでもなく、Big NumberはMIPS IIとMIPS IIIで別のコードになっとるようで、ワイみたいなトーシロには混乱しかねえなこれ…