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本もあれば十分な気がするけんども。