I'm not really sure if anyone can really help me with this, because I've never seen it actually being used in other people's codes, but...

There's a few things I wanna know.
For example, I wanna preserve registers in THUMB and convert back to ARM then restore them. I tried stacks, and they've been working for me, but in one of my recent codes it doesn't seem to be working...like...let's say I'm using r0 for something and I'm in THUMB, but I need to go back to ARM to do something THUMB can't do.

Code:
push {r0}
bx pc
.arm
pop {r0}
shouldn't that work? It does 99% of the time, but I have no idea what's going wrong THIS time. If anyone wants to help I'll PM you the entire code, and note it.