We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Assuming that interrupts are enabled (CPSR.I=0) the processor will automatically switch to IRQ mode when the IRQ is signaled. It will also automatically start executing from the IRQ entry in the vector table.It is up to the boot code to make sure the vector table is in place, with the correct handlers set up.
I'd highly recommend the ARM System Developer's Guide book if you are interested in any of this low level platform setup; I always a copy open on my desk!
I think what you missing is that these steps (CPSR -> SPSR_irq, updating the CPSR and branching to the vectors) are ALL AUTOMATIC. That is the hardware does it for you when it recognizes the IRQ exception. So you are correct - the User mode software would not be able to perform these steps. But that does not matter, as it is the hardware that is taking care of it.