IA64 と VS2005
<intrin.h> なる、汎用レジスタ用の組み込み関数が定義されているヘッダーを諸事情で眺めていたのですが、その中に (使い道はよく分からないけど) IA64用のレジスタの定義がされていたのですが…
(intrin.h - L1135近辺) /* General-Purpose Registers */ /* Integer registers */ #define __REG_IA64_IntR0 1024 #define __REG_IA64_IntR1 1025 #define __REG_IA64_IntR2 1026 : : : #define __REG_IA64_IntR29 1053 #define __REG_IA64_IntR30 1054 #define __REG_IA64_IntR31 1055 /* Register Stack */ #define __REG_IA64_IntR32 1056 #define __REG_IA64_IntR33 1057 #define __REG_IA64_IntR34 1058 : : : #define __REG_IA64_IntR125 1149 #define __REG_IA64_IntR126 1150 #define __REG_IA64_IntR127 1151
まじで レジスタ128本ふいた
0〜127 が定義されている姿は圧倒でした。
…とはいえ、32番からは "Register Stack" になってるって事は、実際に演算できるレジスタって 0〜31 なのかしら〜? …んまぁ、仮にそうだとしても 32本もあれば十分な気がするけんども。