豊福です。

[ruby-dev8:8441] まつもとさん
> |  bignum.c の
> |    #define BIGDN(x) (((x)<0) ? ~((~(x))>>BITSPERDIG) : (x)>>BITSPERDIG)
> |
> |    ((x)>>BITSPERDIG)
> |と結果が違うときあるんでしたっけ。
> 
> おぼろげな記憶によれば >> 演算子の挙動は符号の扱いについて処
> 理系依存の部分があるのに対応するためだと思いました。

  そういう処理系もあるのですか。
   #define BIGDN(x) ((x)/(1L<<BITSPERDIG))
ならどちらでもOK?

> ほとんど
> の場合には無駄な処理です。が、たいがいは最適化されるんじゃな
> いですかねえ。

  最適化されないのならば

[ruby-dev:546] えぐちさん
| Date: Fri, 26 Sep 97 17:40:40 +0900
| bigsub()
| 	+ ループの底の if を同義の演算に変形
| 	  パイプラインのストールを防ぐため

というのを読んで(今頃古いメールをじっくり読ん
でる私 (^_^;)config 時に BIGDN(x) を設定すれば
少しでも Bignum が速くなるかなと思った次第でした。
---
                        豊福
                        toyofuku / juice.or.jp