まあ、待て屋。(64ビット版)
Wed 07 Mar 2007


* パフォーマンスに関するメモ

AMD64 では、ALU 版の方が速いです。
Core2 マイクロアーキテクチャでは、やはり XMM 版の方が速いです。



* いじりかた

** Windows の場合

現時点では64ビットアプリ作成環境が限られています。
そのうち非 MSFT 環境でビルドできるようになるといいなと希望を持ってます。
私は Visual Studio 8 を使ってみました。

プリプロセッサシンボル USE_64_XMM(SSE2版) もしくは USE_64 (ALU版) を
定義すればコンパイルできます。
ただし、ソース構成の都合上、crypt64.S は手動で行います。
私は yasm を用いました。

http://www.tortall.net/projects/yasm/

1) プリプロセッサを通します。私はメンドくさいので GCC に行わせました。

  $ gcc -DUSE_64_XMM -E crypt64.S -o crypt64.asm

2) 中間ファイル crypt64.asm を手で修正します。現時点の yasm は
 gas 完全コンパチではないので、以下の作業を行う必要があるようです。

  -- .if から .endif を手動で切り取る
  -- セミコロン ; はコメント開始として扱われてしまうので、手で改行に置換。

3) アセンブル

  $ yasm  -f win64 -p gas -m amd64 crypt64.asm -o crypt64.obj

実行ファイルをインストール不要で再配布可能にするためには、ライブラリを
静的リンクする必要があります。Vista x64 付属のランタイム DLL は早くも
古くなってしまったようです。



** Linux の場合

シンボル USE_64_XMM を定義の上コンパイルしてください。
(てぬき)

$ gcc -DUSE_64_XMM -O3 -Wall -fomit-frame-pointer mty.c dt4.c crypt64.S -o mty

Suse 9.0 にてコンパイルおよび動作確認しました。



* 改版履歴

** 20070310

200509 版相当の、x64 ALU 版をつくってみる。


** 20070309

x64-sse.S を用いない x64 版をつくってみる。


** 20070307 - 20070303

64 ビット環境 (GCC, MSVC) のためにいろいろ調整。
Microsoft 環境のためにいろいろ調整。
相変わらず機能は増えていませんよ。



* How to contact me

mailto:chapuni@users.sourceforge.jp


*EOF
