2005-12-01から1ヶ月間の記事一覧

Lua話 + 化物というか・・・ライバル!!!

前回の記事:(http://d.hatena.ne.jp/studiokingyo/20051218) ちっす!大晦日です!d金魚です!!年越しそばはgoogle:どん兵衛で済ませてますか〜!! でも書いているの12月30日です。おrz!!! Mistyさん、前回は詳細なコメントありがとうございま…

変数の値交換、Swap,Swapping?処理祭りリンク集

http://d.hatena.ne.jp/skooler/20051228/1135774130 http://d.hatena.ne.jp/ku__ra__ge/20051228/p2 http://d.hatena.ne.jp/tailliar/20051228 http://d.hatena.ne.jp/blueWiz/20051229

待ったまってくれ!!!私が間違っていた。

&a==&bを考慮していなかった・・・おrz!!! それを考慮しなかったらSWAP_NUM()はC言語最速かもしれないけどね・・・。 やっぱり、safeかつ最速を目指すならばSWAP_FAST32()らしいですよ。旦那。(すなわちPODをswapさせるにはinline assemblerが最高って事ね。…

学生プログラマの為の最速swapping入門

前回の記事 http://d.hatena.ne.jp/studiokingyo/20040322 もう一年以上前か・・・ あの時は私はアセンブラを覚えていなかった。 それでもあのスワップ方法は早いと思っていた。 しかし、それを揺るがす記事を目撃してしまった。 http://d.hatena.ne.jp/Will_NE…

MD5 Optimized in MMX part9 speed test

前回の続き:(http://d.hatena.ne.jp/studiokingyo/20051228) さて、前回残酷なまでの現実を突きつけられ打ちひしがれていた私(わたくし)ですが、さらに現実を見せようじゃありませんか!はい。 どうぞ!

MD5 Optimized in MMX part8 complate!!! but...

前回の続き:(http://d.hatena.ne.jp/studiokingyo/20051225) やったぞ!ついに完成した!MMXを使うための良い練習になった。 もっとがんばれば細かいところを最適化できるかもしれない。 この場を借りましてこのソースコードの製作に関することでアドバイ…

ニ分木はどのように組みますか?

http://d.hatena.ne.jp/bake_3572/20051216/p1 より。 木についての話題があった。いわいるiteration処理をどうするかについてであった。 http://d.hatena.ne.jp/tailliar/20051216#p1 にてその改善方法が語られていた。 なるほど。 私も木の処理には悩んだ…

2005年度 dKingyo Utility Toolkit Project の まとめ

最近のワタシの活動に対する反響を調べてみた。 http://diary.okotama.org/?date=20051024#p03より ライブラリ作りたがりアンとでも言うか、ライブラリに凝ってしまうタイプの人間ってのはそれなりに人口が居るんじゃないかと思う。dKingyoの人とか。 あざっ…

MD5 Optimized in MMX part7

以下のような感じのマクロでワタシのMD5テストには合格した。よって示しておこうと思う。

MD5でのrotate部

#define MD5_VC_MMX_ROTATE(d,w,s)\ _asm movq d,w\ _asm psllq d,s\ _asm psrlq w,32-s\ _asm por d,w#define MD5_VC_MMX_ROTATE2(d,a,s)\ _asm movq d,a\ _asm pslld d,s\ _asm psrld a,32-s\ _asm por d,aどちらとも同じ処理結果なのだが・・・ウーム。自爆!…

__asm{}内でのアセンブラの#define定義に注意

__asm{ #define COPY(a,s) \ mov a,s mov eax,s\ mov ebx,s COPY(ecx,10) }このように\が抜けているとバグルので注意!(上記の例は厳密には当てはまらないかもしれないが・・・)

MD5 Optimized in MMX part6

前回の続き:(http://d.hatena.ne.jp/studiokingyo/20051224) はい!早速バグ発見。アホですね。ワタシ・・・あはははは・・・。。。 おrz!!!! #define MD5_VC_MMX_F1(d,x,y,z)\ _asm pxor y,z\ _asm pand x,y\ _asm pxor z,x\ _asm movq d,z 早速アップデ…

MD5 Optimized in MMX part5

前回の続き:(http://d.hatena.ne.jp/studiokingyo/20051216) MD5のMMX用のマクロは以下ので間違いないはずなんですが・・・(テストをしましたが多分どこか間違っている。) どうも、マクロなためデバッガで追いにくいのでバグがチマチマと発生しているよう…

inline assembler is not a macroassembler.

http://www.microsoft.com/japan/developer/library/vccore/_core_masm_macro_directives_in_inline_assembly.htm (ノ_ インラインアセンブラでもデバッガで追えるマクロ機能がほしいよぉ!

アセンブラではC言語の配列の参照できない!?

http://www.nk.rim.or.jp/~jun/lxasm/asm02.html より。 例えば次の例ではラベルの宣言が異なりますが, foo equ 1 bar dw 2 mov ax, foo mov ax, bar この場合は ax には定数値が代入され, move ax, [foo] move ax, [bar] この例では,ax には メモリの内…

GLIBとSTLを比較

google:GLIB STL 比較というキーワードで引っかかっていたので私なりの独断的で先入観バリバリな答えを示そうと思う。 GLIBはC言語のみの環境では非常に有用だ。基本的にDLLとしてリンクすればLGPLライセンスの再配布やソースコード公開の義務から自分のソフ…

dKingyoUtility3 1.0.0.0をリリースしました。

http://sourceforge.jp/projects/dkingyoutility/ にてダウンロードできます。 使用方法などリファレンスマニュアルは今のところありませんが、ただ、なんとなく・・・したかったので・・・。いいよね^^;

カレー+クリームソーダ

カレーを食べた後にクリームソーダを飲むとワキガ気味の…を((どこを?と聞くのは野暮である(--) ))舐めたような味が残る。実際それがわかる人はコメントに書くこと!(苦笑) それから奇妙な食べ合わせネタを無差別にバトン化します!我こそは!という方はト…

確かにカプセル化面倒です(>_<)

http://d.hatena.ne.jp/kenmo/20051218#p1 にてカプセル化について語られてます。 私はライブラリ組んでいるのでカプセル化は往々にして行っているのだが・・・ 確かに面倒。 で、ちょっと思い出したことはWTL7.1のクラスってほとんどがpublic:なんだよね。(こ…

ファイル収集ソフトウェアの為のXMLによる定義ファイルを提案

昔々、XMLによるシグネチャ定義の提案をしたことがあった*1が、今度はファイル収集に関するXML定義を考えてみようと思う。 #defineマクロみたいに定義するには以下の構文 <def name="定義名" value="定義値"></def> ファイル検索定義 <file_search uri="URLとかfile://とかftp://とか?" timeout="どのくらいでさじを投げるか" その他拡張してもろもろ> <file name="ファイル名前 ワイルドカードOK" size="ファイルのサイズ 無くてもOK" その他もろもろelements> </file></file_search>

config file == text file == character code problem

そういえばコンフィグファイル系等のテキスト処理の場合文字コード問題もありましたね。これ系のライブラリもあるので特集しなきゃなァ〜(前やった覚えがあったけど・・・ http://d.hatena.ne.jp/studiokingyo/20040719#p5)実はakaxiso2やicuやGreenPadを覗く…

config fileは皆さんどうやっていますか?

前回(http://d.hatena.ne.jp/studiokingyo/20051217#p1)、mcppというツールを紹介していただいたid:toge氏のはてなに訪問。 http://d.hatena.ne.jp/toge/20051218#1134905287 にてコンフィグファイルはどうするかについて少しふれられていた。 今まで、私は…

C言語のファイルをマクロ展開する方法

cppというコマンドラインツールを使うらしい。 via http://www.wakhok.ac.jp/~kanayama/C/03/node114.htmlが、その他にはなにかいいツールはないのかなぁ〜。 なんかcpp使うと#の付いたいらない行が出力されるしなぁ〜。 う〜ん。 解決: mcpp(http://www.m1…

MD5 Optimized in MMX part4

前回の続き:(http://d.hatena.ne.jp/studiokingyo/20051214) ただ今、MMXでMD5を最適化中。 結構曲者である。MMXレジスタほとんどを使用してしまう勢いだ。(ただ単に考え方が未熟なだけかもしれないが・・・) ちょっと他力本願質問なのだが、0xd76aa478と…

DLLに定義されている関数を列挙して出力するソフト

数ヵ月後に通りすがりの方に教えていただき解決しました。http://d.hatena.ne.jp/studiokingyo/20060726 情報ありがとうございました。感謝します。 http://www.chiyoclone.net/details.html#listexp

DLLから関数の名前を抽出してLoadLibraryするソースコードを吐くツールをどこかで見かけたはずなのですが・・・

ご存知の方、URL先教えていただけませんか。m(>_

VCのインラインアセンブラでC言語のマクロが使えない・・・

解決:一つ一つの命令に_asmをつければ#defineしたインラインアセンブラ構文も認識してくれるらしいですよ。hoshu氏に感謝。 例: #define MD5_VC_MMX_F3(d,x,y,z)\ _asm pxor y,z\ _asm pxor x,y\ _asm movq d,x 以下、解決前の記事

MD5 optimized in MMX part3

#define MD5STEP(f, w, x, y, z, data, s) \ ( w += f(x, y, z) + data, w = w<<s | w>>(32-s), w += x )ってのがMD5のコアの部分をマクロ化した所なのですよ。*1 f()関数、rotation部*2はpart2で発見した最適化ですべてMMX化できます。 問題は足し算しているところ</s>…

MD5 optimized in MMX part2

MMXで最適化する場合、プロセスを二つ立てることくらいしか思いつかないよぉ〜 つまり mm0,mm1...それぞれに二つの32bitの対象分のデータを詰め込んで二つ同時に計算するって言う・・・MMX利用の際に考えられる初歩の初歩のテクニック。 例えば、file0とfile1が…

MD5 optimized in MMX

久々にプログラミングがしたくなった。 MD5はまだまだ現役のようで最適化したら皆さん使ってくれるかな〜 なんて思ったりして。 なのでgoogle:MD5 optimize][google:MD5 MMX | SSE | SSE2 | 3DNowとかしてちょっと探してみても出てこないので自分で作ってみ…