In case of ARM processors and linux kernel,
During the software interrupt control jumps to the vector_swi routine defined in http://lxr.free-electrons.com/source/arch/arm/kernel/entry-common.S.
346 /*=============================================================================
347 * SWI handler
348 *-----------------------------------------------------------------------------
349 */
350
351 .align 5
352 ENTRY(vector_swi)
353 #ifdef CONFIG_CPU_V7M
354 v7m_exception_entry
355 #else
356 sub sp, sp, #S_FRAME_SIZE
.
.
.
461 sub lr, lr, #4
462 str lr, [sp, #S_PC]
463 b ret_fast_syscall
464 #endif
465 ENDPROC(vector_swi)
The current execution context is stored at the stack of the same process which executed the swi instruction. And system starts executing routine defined above.