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.
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.