MIPS の演算命令って,
てな風に,即値を使う命令は後ろに i がつくの場合がほとんどなのだけど,なぜかシフト命令だけはそうなっていません.これってどういう経緯でこうなったんでしょう?
例えば左論理シフトの場合,シフト量を即値で指定する命令が sll (shift left logical) で,シフト量をレジスタで指定する命令が sllv (shift left logical variable) となっています.
歴史的事情なのかなあとも思ったのだけど (sllv とかが後から追加されたとか),命令のビットエンコーディングを見てもあまりそうは思えないし,少なくとも Hennessy らの 1982 年の論文の時点で既にバレルシフタは用意されていたようです.
いや,単に名前の話なのでどうでもいいのですが,授業で扱うときにちょっと面倒です (エンコーディングの説明も面倒).
(参考)
最終更新時間: 2009-01-04 15:31