Develop and Download Open Source Software

Browse Subversion Repository

Log of /branches/mty-makai/crypt64.S

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (download) (annotate)
Sticky Revision:

Revision 192 - (view) (download) (annotate) - [select for diffs]
Modified Mon May 26 06:29:35 2008 UTC (15 years, 10 months ago) by notanpe
File length: 7501 byte(s)
Diff to previous 148
シーズン 2 に向けて

Revision 148 - (view) (download) (annotate) - [select for diffs]
Modified Mon Apr 23 14:02:47 2007 UTC (16 years, 11 months ago) by notanpe
File length: 7571 byte(s)
Diff to previous 125
マージとFreeBSD&Solaris対応。

Revision 125 - (view) (download) (annotate) - [select for diffs]
Modified Mon Apr 16 14:50:11 2007 UTC (16 years, 11 months ago) by notanpe
File length: 7183 byte(s)
Diff to previous 121
魔改造用ブランチ

Revision 121 - (view) (download) (annotate) - [select for diffs]
Modified Sun Apr 15 06:23:51 2007 UTC (16 years, 11 months ago) by chapuni
Original Path: trunk/naniya/mty/crypt64.S
File length: 7183 byte(s)
Diff to previous 114
デバッグモードにおけるCycle計時を、コアループ/比較器別に集計するように改良。
リリースバージョンには関係ない…ハズ!

Revision 114 - (view) (download) (annotate) - [select for diffs]
Modified Tue Apr 10 02:22:06 2007 UTC (17 years ago) by chapuni
Original Path: trunk/naniya/mty/crypt64.S
File length: 6935 byte(s)
Diff to previous 107
リポジトリ構造を慣例のものに変更。
ついでに、svn:keywords のプロパティを付加。
(auto-propsってリポジトリ属性だっけ?)

Revision 107 - (view) (download) (annotate) - [select for diffs]
Modified Fri Apr 6 02:42:35 2007 UTC (17 years ago) by chapuni
Original Path: mty/crypt64.S
File length: 6935 byte(s)
Diff to previous 85
USE_64 時、演算で破壊される T (%rsi) をポインタで利用するため、演算後に設定するようにしました。

Revision 85 - (view) (download) (annotate) - [select for diffs]
Modified Wed Apr 4 02:08:01 2007 UTC (17 years ago) by notanpe
Original Path: mty/crypt64.S
File length: 6784 byte(s)
Diff to previous 83
Fastcall がダメな環境への対応。

Revision 83 - (view) (download) (annotate) - [select for diffs]
Modified Tue Apr 3 04:15:10 2007 UTC (17 years ago) by chapuni
Original Path: mty/crypt64.S
File length: 6671 byte(s)
Diff to previous 46
ワークエリアを、Johnオリジナルで定義されていた場所ではなく、mty.c にて用意した場所を用いるようにした。その結果、なんとなく含めていたムダなコードを排除せり。
ていうかなぜかRev.79にて速度低下の副作用があった。キャッシュ干渉の可能性があるようなので、Rev.79は再度調査する必要があるだろう。
ついでに、x64 ABIにおいて、 r8-r11 が破壊される前提に書き換えた。

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

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

Revision 18 - (view) (download) (annotate) - [select for diffs]
Modified Sun Mar 11 01:00:25 2007 UTC (17 years, 1 month ago) by chapuni
Original Path: mty/crypt64.S
File length: 7062 byte(s)
Diff to previous 17
64ALUにて、現在のインデクス指定でスタックを突き破っていたので対処。

Revision 17 - (view) (download) (annotate) - [select for diffs]
Modified Sat Mar 10 17:22:11 2007 UTC (17 years, 1 month ago) by chapuni
Original Path: mty/crypt64.S
File length: 7055 byte(s)
Diff to previous 15
x64(ALU)サポートを入れたことによる大改変。というよりは200509版に追従したりしなかったり。
この版で使用する式はJohnのものではないので、昔使っていたマクロをブラッシュアップして復活。
ついでにx64 XMM版をつくってみたところ、思ってたより成績がいいので採用。つまり x64-sse.S は今のところお役ご免。

Revision 15 - (view) (download) (annotate) - [select for diffs]
Modified Fri Mar 9 11:18:28 2007 UTC (17 years, 1 month ago) by chapuni
Original Path: mty/crypt64.S
File length: 5140 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) (annotate) - [select for diffs]
Modified Fri Mar 9 06:49:26 2007 UTC (17 years, 1 month ago) by chapuni
Original Path: mty/crypt64.S
File length: 5564 byte(s)
Diff to previous 11
種別 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 11 - (view) (download) (annotate) - [select for diffs]
Modified Wed Mar 7 09:27:00 2007 UTC (17 years, 1 month ago) by chapuni
Original Path: mty/crypt64.S
File length: 5561 byte(s)
Diff to previous 9
AMD64 では、32ビットオフセットがメモリ全域を指せなくなることがあるため、 ksd のポインタ方法をPC相対可能なように改め、コピーされるコードブロックのどまんなかに移動。
ついでに movs しなければならないアーキテクチャ用に、インデクスのサイズを可変にする。

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

Revision 5 - (view) (download) (annotate) - [select for diffs]
Modified Fri Mar 2 18:15:00 2007 UTC (17 years, 1 month ago) by chapuni
Original Path: mty/crypt64.S
File length: 5823 byte(s)
Diff to previous 1
姑息な最適化を施す。
大幅に整理。
XMM統合。

Revision 1 - (view) (download) (annotate) - [select for diffs]
Added Thu Mar 1 14:32:05 2007 UTC (17 years, 1 month ago) by chapuni
Original Path: mty/crypt64.S
File length: 6056 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