强制编译器将某个寄存器用于某个变量

Met*_*est 16 c linux gcc x86-64 clang

是否有可能迫使编译器(gccclang在我的情况)使用特定的寄存器,可以说R15x86_64一定的变量,并且还使用禁止它R15的除了变量任何其他目的.

flo*_*olo 6

gcc可以做到.

已经引用的gcc文档回答了你如何强制变量进入某个寄存器的问题.

要阻止编译器使用此寄存器生成代码用于其他目的,请使用gcc开关-ffixed-reg(有关详细信息,请参阅gcc doc).