编译器是否总是按顺序使用R0?
答案 0 :(得分:1)
您的问题可能需要更多的上下文才能清楚地说明您所指的是什么,但是ARM Procedure Call Standard定义了符合的编译器如何专门使用5.1.1节中的特定寄存器。
R0用于保存函数调用的第一个参数,并返回结果值。它也可以随便用作暂存器,以随函数调用保存临时或中间值。
答案 1 :(得分:1)
float fun ( float a )
{
return(a+1.0F);
}
00000000 <fun>:
0: eddf7a01 vldr s15, [pc, #4] ; c <fun+0xc>
4: ee300a27 vadd.f32 s0, s0, s15
8: e12fff1e bx lr
没有r0不会总是被其他任何东西使用。