Next: , Previous: Emulated TLS, Up: Target Macros


17.27 定义MIPS target的协处理器的规范

MIPS规范允许MIPS的实现最多具有4个协处理器,其中每个最多具有32个私有寄存器。 GCC支持使用汇编形式的变量对这些寄存器的访问,寄存器以及内存间的传值。例如:

       register unsigned int cp0count asm ("c0r1");
       unsigned int d;
     
       d = cp0count + 3;

(“c0r1”是协处理器0的寄存器1的缺省名;可以按照下面的描述来增加可选名字, 或者可以通过SUBTARGET_CONDITIONAL_REGISTER_USAGE来覆写全部的缺省名字。)

协处理器寄存器被假设为epilogue-used;对它们的赋值将被保存, 即使在函数中的后面不会再使用该寄存器。

另一个需要注意的是:根据MIPS spec,协处理器1(如果存在)为FPU。 标准mips浮点支持的对COP1寄存器的访问,不包含在这个机制中。

下面描述的一个宏,用于定义MIPS协处理器接口, 可能在子目标(subtarget)中需要被覆写。

— Macro: ALL_COP_ADDITIONAL_REGISTER_NAMES

一个逗号分隔的列表(起始于逗号),是用于描述可选的协处理器寄存器的名字对。 每项的格式应该为

          { alternatename, register_number}

Default: empty. 缺省情况: 空