- 715 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 02:18:17.32 ]
- どう考えてもこれ以上削れないってくらいの手書きインラインアセンブリコードに対し、
C記述版をVC++のReleaseモード(最適化O2)でコンパイルしたもののほうが1.3倍速かったです。 生成されたアセンブリを覗いてみたところ、 変数 * 3 というコードを lea edx, DWORD PTR [eax+eax*2] としていてびっくりしました。 これって、アドレス演算を行うローダ(専用の演算器?)を使うことで、 通常のALUと並行して演算(スーパースカラって言うんでしたっけ?)し 高速化しているということなんでしょうか??
|

|