Andrew S. Tanenbaum, in his book Modern Operating Systems, states that
Once the CPU has decided to take the interrupt, the program counter and PSW are typically then pushed onto the current stack and the CPU switched into kernel mode.
Once the interrupt handler (part of the driver for the interrupting device) has started, it removes the stacked program counter and PSW and saves them, then queries the device to learn its status.
I am not able to understand, why the CPU first stores the registers in the stack and then later the interrupt handler saves them in the Process Table. Wouldn't it be better if it could directly save the current registers in the Process Table without pushing them into the stack?