In article news:3992755news.pl@rananim.ie.u-ryukyu.ac.jp
 Shinji KONO wrote:

>>     leap_asm   1.385
>>     leap_asm2  1.286
>>     leap_std   4.762
>> 四分の三は同じ処理なので、ほとんど差が出ませんね。(^^;
>
> いや、差がある方じゃないかな。

 leap_std の事ですね。これは、ボケてました、m(__)m
- return( y % 4 == 0 && y % 100 != 0 || y % 400 == 0 );
+ return( y % 4 == 0 && (y % 100 != 0 || y % 400 == 0) );
ですね。

 さらに、条件をアセンブラルーチンと合せるために、
  return( y % 4 == 0 && ((unsigned short)y % 100 != 0
    || (unsigned short)y % 400 == 0) );
として、gcc version 3.4.4 [FreeBSD] 20050518 の -O2 オプションで再測定。

    leap_asm   1.160
    leap_asm2  1.039
    leap_std   1.432

まだ、leap_asm と leap_std では、ニ割ほど遅くなってますね。
さすがに、-O2 でも 100で割った後で、400で割ってます。

-- 
山口@福岡 <hyama@mx7.tiki.ne.jp>