- 100 名前:デフォルトの名無しさん mailto:sage [2006/02/17(金) 21:01:05 ]
- 8bitビットマップ(グレースケール)から32bitビットマップへの変換を、MMX使って
実装しようとしているのですが、思っていたよりも早くならずに難渋しています。 適当なやり方しているのは自覚しているのですが、同じく適当にCで書いたルーチン と、リリース版の最適化コミで速度変わらずってのはかなり凹みました。 どこかもっと最適化する場所があるのでしょうか? ご存じの方ご教授願います。 void testcopy( void *dst, const void *src, int size ) { int size2 = size >> 1; if(size2 != 0){ __asm{ mov edi, dst; mov esi, src; mov ecx, size2; loop_mp: movq mm0, [esi]; punpcklbw mm0, mm0; punpcklbw mm0, mm0; movq [edi], mm0; lea esi, [esi + 2]; lea edi, [edi + 8]; dec ecx; jnz loop_mp; emms; } } }
|

|