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