Develop and Download Open Source Software

Browse Subversion Repository

/[naniya]/mty/mty.c

Log of /mty/mty.c

Parent Directory Parent Directory | Revision Log Revision Log


Sticky Revision:
(Current path doesn't exist after revision 113)

Revision 108 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 6 02:49:57 2007 UTC (17 years ago) by chapuni
File length: 20597 byte(s)
Diff to previous 99
PARAM::hit[] を廃止し、PARAM::t[] を伸ばす方向に記述を変更しました。
随所に散らばっていた t 関係のマジックナンバーを、crypt64.h, synth.h にて定義しました。
ワークエリア割り当ては、PARAM::hit[]廃止に伴い、tにさしかかるように取ることにしました。

disp_rm() において、disp==0 の最適化を入れました。

USE_64 時においても PTR_T は SI のまま使えるようにしたので、レジスタ割り当てを本来あるべき(に近い)姿に変更しました。

合成中に頻出する操作をまとめ、 reg_not(), reg_clr() を新設しました。

synth_assemble_lr() において、最初の積項を R6 で計算し R7 へ移動していましたが、これを直接 R7 上に展開するように最適化しました。

Revision 99 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Apr 5 11:09:59 2007 UTC (17 years ago) by chapuni
File length: 20585 byte(s)
Diff to previous 93
モジュール wdict.[ch] を新規作成し、辞書関係の記述を移動。
ついでに popcnt32() などを util.h へ移す。
動作に影響はない、ハズ。

Revision 93 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Apr 4 14:57:28 2007 UTC (17 years ago) by chapuni
File length: 20579 byte(s)
Diff to previous 84
辞書だけじゃなく、論理項の結果もちゃんと出るようにしました。これで実用になるでしょう。

…って思って検証してたら、どうやら被覆最適化がバグってたもよう。一時的に殺してあります。

Revision 84 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 3 04:20:09 2007 UTC (17 years ago) by chapuni
File length: 20499 byte(s)
Diff to previous 77
転置のつくりかた/取り出し方が x64 では根本的にマズかったので修正。USE_64, USE_64_XMM にて確認。
ついでに、比較ビット中ヒット率も表示するようにした(デバッグモード)。

Revision 77 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Apr 2 05:32:38 2007 UTC (17 years ago) by chapuni
File length: 20186 byte(s)
Diff to previous 74
開発者にしか関係ないけど、デバッグメッセージを役に立つ方向に変更。

Revision 74 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Apr 1 08:38:32 2007 UTC (17 years ago) by chapuni
File length: 19940 byte(s)
Diff to previous 46
大量検索もどきを実装。
すでにわかっている不具合がたくさんあるので、超地雷です。
あちこちに残っている制限はあとで外します。
数十万行を喰わせると死ぬほど遅いのはどうにかします。

Revision 46 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 28 08:05:12 2007 UTC (17 years ago) by chapuni
File length: 19809 byte(s)
Diff to previous 42
これまで仕込んできたモジュールを晴れて結合できます。ターゲット数制限が変わりました。制限がかかってる場所があるため、無制限ではありません。また、比較器前段を、 cmp.S を用いずに自前で生成するようにしたため、タゲ数が少ないときにやや速度が上がります。
そんなワケで、cmp.S および expr.[ch] は、晴れて用済みになりました。
ついでにもう使うことがないであろう x64-sse.S も、用済み扱いにしました。

Cycle表示は、デバッグ版でないときは殺すようにしました。C2Dなどではどうやら RDTSC 命令がエミュレート実行されているもようです。

Revision 42 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 28 04:35:27 2007 UTC (17 years ago) by chapuni
File length: 20587 byte(s)
Diff to previous 41
crypt64 に関する定義(SLICEなども)を、crypt64.hに切り離しました。

Revision 41 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 28 03:20:38 2007 UTC (17 years ago) by chapuni
File length: 21616 byte(s)
Diff to previous 39
DES定数テーブル
tr_pc1, tr_fp, ks_ls
を、ファイル desconst.c に分離しました。

Revision 39 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Mar 27 10:53:45 2007 UTC (17 years ago) by chapuni
File length: 22455 byte(s)
Diff to previous 29
ヲナヌー辞書の痕跡(USE_DT)を条件除外した。
cp932[] を、cp932.[ch] に切り離した。(ちうか名前変えたいよね)
translate.h の文字コードがやや腐ってたので変換。

Revision 29 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 19 04:56:09 2007 UTC (17 years ago) by chapuni
File length: 22345 byte(s)
Diff to previous 26
@14における、[64:65]のクリアは、ループ回す必要がないね。という些細な変更。

Revision 26 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Mar 18 07:40:49 2007 UTC (17 years ago) by chapuni
File length: 22375 byte(s)
Diff to previous 25
ソースを分割。
expr.c ... 式から命令列を生成
translate.c ... キーバイナリ列から鳥屋っぽいキー文字列生成を試行。
ターゲット依存は config.h に押し込めてみました。
キースケジューリングも切り離そうと思ったけどそれは次の機会に。

Revision 25 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Mar 17 12:20:48 2007 UTC (17 years ago) by chapuni
File length: 32783 byte(s)
Diff to previous 24
key_inc() にて、 N_STRIDE の変更に弱い部分が1箇所あったので清書。

Revision 24 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Mar 17 12:11:18 2007 UTC (17 years ago) by chapuni
File length: 32812 byte(s)
Diff to previous 23
ログ出力周りを整理。ついでにエラー処理を盛り込む。
実際のエラーにおける挙動に関しては未検証。

Revision 23 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Mar 17 10:23:30 2007 UTC (17 years ago) by notanpe
File length: 32867 byte(s)
Diff to previous 22
expr_buf の宣言部も TARGET_SIZ で。
ついでに SIZE にしようかと迷ったけど、宗教問題になるので遠慮。w

Revision 22 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 16 15:17:25 2007 UTC (17 years ago) by notanpe
File length: 32862 byte(s)
Diff to previous 21
target.txt が無い場合の対策。
鳥屋は assert() が好きなようなので、あわせてみた。
決してコミットのテストではない。

Revision 21 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 16 02:13:44 2007 UTC (17 years ago) by chapuni
File length: 32840 byte(s)
Diff to previous 20
MSVCRTでは行バッファリング(_IOLBF)が古バッファリングになってしまうため、ログファイル log.txt がキレイに書き出せていなかった。 _IONBF で定義し直す。
(Cygwin, glibc ではこれで問題なかったんだよなぁ…)

Revision 20 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 12 09:25:48 2007 UTC (17 years, 1 month ago) by chapuni
File length: 32788 byte(s)
Diff to previous 15
BSDに敬意を表して、MMAP(2)に与えるシンボルは MAP_ANON だろっ。(の談)
ptrdiff_t は、stddef.h にいるよ!

ついでに、CRYPT64_CLOBBER を、USE_64 においても定義しておく。

そろそろ autoconf だなおい。

Revision 15 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 9 11:18:28 2007 UTC (17 years, 1 month ago) by chapuni
File length: 32713 byte(s)
Diff to previous 14
* 鍵シフトスケジュール(ksd)を、 crypt64.S から mty.c へ移動。この改造は元々200509版にて行われていた。
ks_ls[]の内容を、key64.ks[] に移動しているので注意。

* 比較器生成部で、param.hit[]へのポインタをTに割り振っていたが、LRを指しているDIのみを使用するように変更。

* 呼び出し規約のレジスタ破壊を記述するためのマクロ CRYPT64_CLOBBER を定義。

* crypt64.S 中、CNT, KSI はそれぞれ幅の狭いレジスタを採用。姑息な最適化のため。KSIはもはやインクリメントカウンタになった。
また、レジスタ待避の都合上、DX(破壊)とBX(待避)を入れ替えた。

* 初期LRクリアの際、ゼロレジスタとしてR(0)を用いていたが、AMD64ALUだと予約レジスタとかぶってしまいかねないため、R(7)に変更。

Revision 14 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 9 06:49:26 2007 UTC (17 years, 1 month ago) by chapuni
File length: 32107 byte(s)
Diff to previous 13
種別 USE_64 (64-bit ALU 使用) を追加。
ただし、今回追加のアセンブラモジュールには対応コードが含まれていません。
準備だけ。

準備として、以下の変更を行う。
* ポインタ BP, SI の役割を入れ替えた。(BP) のとき disp 0 が省略できないため。
* LRがBPとなったため、デフォルトで disp8 がつくようになった。そのためアセンブル時のゲタ OX は、64ビット演算時は 0x00 に固定した。Salt固定のときは crypt64 のエントリを直接呼べる(ハズ)。
reg_op(), reg_mem() 周りを抽象化した。比較器に対して正しいコードが吐けている(200509相当の拡張)。

ついでに、LRがはみ出ている分[64:65]のゼロクリアを、ループ内に移動。

Revision 13 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 7 12:41:41 2007 UTC (17 years, 1 month ago) by chapuni
File length: 30597 byte(s)
Diff to previous 10
Suseでなぜか ptrdiff_t が定義されていないので、てきとうなヘッダでごまかす。
Visual Studio 8 で、 USE_MMX 時に定義すべき int8_t が欠落していたため追加。

Revision 10 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 7 07:07:03 2007 UTC (17 years, 1 month ago) by chapuni
File length: 30554 byte(s)
Diff to previous 9
Visual Studio 8 (W32/x86)にて調整。
シンボルが USE_MMX になっていなかった箇所が残っていたため修正。
他、GCC(Mingw) Linux x86-64 にて動作ひととおり確認。

Revision 9 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Mar 6 12:37:55 2007 UTC (17 years, 1 month ago) by chapuni
File length: 30660 byte(s)
Diff to previous 6
AMD64 対応。Suse(x86-64)某にて確認。
64ビット版では、通常演算で uint64_t を多用するため
そのへんに気をつけていろいろ改修。
crypt64.S は、実質的な変更は少ないが、変更行数は多い。

Revision 6 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 2 18:15:39 2007 UTC (17 years, 1 month ago) by chapuni
File length: 30379 byte(s)
Diff to previous 2
XMMに対応。ついでにMMXとXXMのコードベース統一を図る。

Revision 2 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 2 07:03:17 2007 UTC (17 years, 1 month ago) by chapuni
File length: 29957 byte(s)
Diff to previous 1
W2k などにおいて、XP 拡張された引数を mmap しようとし失敗していたため、
対策として、legacy malloc() を試みるように変更。

Revision 1 - (view) (download) (as text) (annotate) - [select for diffs]
Added Thu Mar 1 14:32:05 2007 UTC (17 years, 1 month ago) by chapuni
File length: 29732 byte(s)
John由来の x86-mmx.S をくっつけてみた。

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26