October 2009
26 posts
こういうこと
switch(aaa+4) { case 0: printf(“0\n”);break; case 1: printf(“1\n”);break; case 2: printf(“2\n”); printf(“5\n”);break; case 3: printf(“3\n”);break; case 4: printf(“4\n”);break; case 5: printf(“5\n”);break; }
printf(“5\n”);の部分がcase 2と5で重複している。 これがコンパイラにより、case...
バッファオーバーランを悪用するコード完成!!
/* バッファオーバーランを悪用するコード(VC++ 6.0向け) 参考: http://d.hatena.ne.jp/sorataro2001/searchdiary?of=4&word=%a5%d0%a5%c3%a5%d5%a5%a1%a5%aa%a1%bc%a5%d0 */
#include <stdio.h> #include <string.h>
/* バッファサイズの宣言が紛らわしくも二種類ある */ #define BUFFER_SIZE_A (16) #define BUFFER_SIZE_B (24)
/* リターンアドレスを特定してpに格納する関数 */ void _put_ret_addr(unsigned int *p) { *p = *((unsigned int*)(&p-1)) + 0x30; }
...
Cのマクロを使えばこんな書き方だって出来る
#define ABCD_LUMP_OPERATOR(OPERATOR,VALUE) a OPERATOR VALUE; b OPERATOR VALUE; c OPERATOR VALUE; d OPERATOR VALUE; ABCD_LUMP_OPERATOR(+=, 5) hoge_func(); ABCD_LUMP_OPERATOR(++,)
台風でした。 (from Twitter : self post)
丁度目の前をJKが・・・!と思ったけどこういう時に限って風が弱いんだよ
今日スカートで出社してきてる子は勇気あると思う。約15時間前 Twitで
平日のこの時間から牧場重いのは、間違いなく台風のせい。(何約15時間前 Twitで
Intel-AVXと、その先のベクトルプログラミング時代について考える (from Twitter...
帰宅したのでAVXについて更に調べる。
何で笑っちゃったのか上手く言葉で説明できないけど・・・なんか笑っちゃった。(何 http://software.intel.com/en-us/avx/ 約2時間前 Twitで
. @_Livety_ 詳細は今調べてみてるところですが、SSEを単に128ビットから256ビットに拡張しただけ・・・?のように見えます約2時間前 Twitで
「Larrabee」なるものも出てきた約2時間前 Twitで
128bit→256bit 以外として、『SSEを根本的に見直し、スマートに整理する』と言う事だけれど・・・一体整理して・・・だから何?今後IntelがCPU作りやすくするだけ・・・?約2時間前 Twitで...
mulpsは3クロックか? / VC++2008のSSE最適化について (from Twitter...
ぉーすごい。多分、パイプラインのお陰だろうけど・・・SSEレジスタへの転送(movaps)は1クロックで終わるっぽいな
さて、mulps(浮動小数点掛け算)も3クロックとかで終わってるっぽいんだけど・・・これ、事実だとしたら、むちゃんこ早いぞ・・・?約3時間前 Twitで
とかまぁ、ここまでやってきた訳なんですけど、どうもVC++2008には”勝手にSSE化”機能があるらしいんよね。ま、折角ここまで勉強してきたんで、今とりあえずインラインアセンブリで書いてますけども。約3時間前 Twitで
後たぶんVC2008の勝手にSSE化は、多分、浮動小数点命令使う代わりにSSE命令使う、とかだと思う。多分パックド演算とかまではやってくれない。・・・と、思うんだけど・・・。約3時間前...
これはwwwwwwwwwRT @sygnas: あるのかww RT @inoken0315: こ れ は ひ ど い RT @ktpp:...
– _Livety_
SSEを使って4つの浮動小数点掛け算を実行するサンプル
/* SSEを使って4つの浮動小数点掛け算を実行するサンプル (VC++2008でコンパイルを確認。多分.NET以降ならイケる・・・?VC++6.0は確実に駄目 */ #include <stdio.h> #define _ALIGN_16 __declspec(align(16)) void main() { _ALIGN_16 float f[4] = { 1, 2, 3, 4 }; _ALIGN_16 float f2[4] = { 1.5f, 1.5f, 1.5f, 1.5f }; printf(“%f, %f, %f, %f\n”, f[0], f[1], f[2], f[3] ); printf(“ * * * *\n”);...