我想在C代码中编写一些内联ARM汇编。对于这段代码,我需要使用一个或两个不仅仅是作为输入和输出声明的寄存器来进行操作。我知道如何使用clobber列表告诉GCC我将使用一些额外的寄存器来完成计算。
然而,我确信GCC在优化时可以随意调整使用哪些寄存器。也就是说,我觉得使用固定的寄存器进行计算是不好的选择。
那么,在没有使用固定寄存器的情况下,使用一些额外的既不是输入也不是输出的寄存器的最佳方法是什么?
附言:我考虑使用一个虚拟的输出变量可能会起到作用,但我不确定那样做会有什么奇怪的其他影响...
然而,我确信GCC在优化时可以随意调整使用哪些寄存器。也就是说,我觉得使用固定的寄存器进行计算是不好的选择。
那么,在没有使用固定寄存器的情况下,使用一些额外的既不是输入也不是输出的寄存器的最佳方法是什么?
附言:我考虑使用一个虚拟的输出变量可能会起到作用,但我不确定那样做会有什么奇怪的其他影响...