You are correct that adding a return does make test() use R0.
Changing the return value from 0, results in the new value being loaded into R0.
The x86 version don't do the equivalent of extra R4 register push/pop.
You are correct that adding a return does make test() use R0.
Changing the return value from 0, results in the new value being loaded into R0.
The x86 version don't do the equivalent of extra R4 register push/pop.