这是一个奇怪的请求,但我有一种感觉,这可能是可能的。我想要的是在我的代码的区域中插入一些编译指示或指令(用C编写),以便GCC的寄存器分配器而不是使用它们。GCC:禁止使用一些寄存器
我知道我可以做这样的事情,这威力抛开这个寄存器此变量
register int var1 asm ("EBX") = 1984;
register int var2 asm ("r9") = 101;
的问题是,我插入新的指令(硬件仿真器)直接和海湾合作委员会和气体仍不承认这些。我的新指令可以使用现有的通用寄存器,并且我想确保我保留了其中的一些(即r12-> r15)。
现在,我在模拟环境中工作,我想快速做我的实验。将来我会追加GAS并将内在函数添加到GCC中,但现在我正在寻找一个快速解决方案。
谢谢!
您是否需要在任何时候保留它们,或者仅仅是在某些特定的内联asm块的过程中保留它们? – bdonlan
是的,我应该说明这一点。我只需要在小功能的环境中保留它们。我担心,通过在全球范围内保留它们,可能会对性能产生减少的影响。 – hayesti