(TIのOMAPとかはDSPにアクセラレータが入ってた記憶があるけど)。aarh64でもコンパイル時にオプションが必要なので標準命令に入ってないっぽいからIP的にはオプションなのかも。IntelでもNehalemで同様にAES用の命令が追加されていて、既にOpenSSLとかNSSとかLinuxカーネルとかで既に使われてる。ARMv8ではAES用、SHA1用、SHA2用の命令が追加されているのだけど、今日はAESの話。AddRoundKeyShiftRowsSubBytesAddRoundKeyと表せる。ARMv8の場合は、このアルゴリズムをいくつかの専用命令で実装できるようになった。aeseは、AESのアルゴリズムの内以下の命令を実行する。AddRoundKeyShiftRowsSubBytesaesmcは、AESのアルゴリズムの内以下の命令を実行する。MixColumns同様に復元化はaesdとaesimcで可能。このようにこの2つの命令を使うことで、AESの暗号化の実装が可能になってる。暗号化の際にはaeseとaesmcでRound処理をして最後のラウンドだけaeseとveor使って実装することができる。aesmcaeseveorということになる。Denver、Cortex-A57/53ベースのもの)であれば32ビットモード(aarch32)であっても利用可能。サポートされているかどうかについてはLinuxであれば、/proc/cpuinfoを見れば、Featuresにaesがあるかどうかで確認できる。33410787また参考としてx86のAES専用命令の場合は、aesencとaesenclastを使って暗号化、aesdecとaesdeclastを使って復元化する。aesencaesenclastということ。ARMとIntelで実装アイデアが違うのは興味深い。共有2015-04-06Python本体のしょうもないバグを直したのでその時のメモServoというプロダクトでmachというビルドツールを使ってるのだが、こいつがPythonで書いてある。machをMSYS2で実行するとなんかPython本体がクラッシュするので軽く調べてみると、Python内部でエラー時の処理が間違ってて、ctypes経由でPythonがクラッシュするという現象らしいということがわかった。したんだけど、その際の手順。(http://bugs.python.org/)にバグを登録する。選択して、タイトルなどいろいろ書きこむ。最近のプロダクトだとレビュープロセス用の操作があったりするのだけど、どうもPythonの場合は存在しないみたい。そのため、バグを登録するだけらしい。いうしょぼいバグでもだいたい2か月くらいでハンドルされるので、バグを登録してもすぐ直してくれるってことではない感じだね。