Hi,
I don't think it is necessary to manually store these registers on stack.
The compiler will do that automatically. You can disassemble the function to see that all used nonvolatile registers (given by EABI standard) are stored automatically.
Simple example:
lukaszadrapa_0-1633946600919.png
This is translated as:
lukaszadrapa_1-1633946636575.png
Used r0 and r8 are volatile registers, it's not necessary to keep them. So, the stack frame is even not created here.
Now let's add this - explicitly touch r29:
lukaszadrapa_2-1633946728184.png
As you can see, r29, r30 and r31 are now put on stack:
lukaszadrapa_3-1633946806120.png
So, it doesn't make sense to do that manually again.
Regards,
Lukas