Tell the unwinder we can't unwind swi_entry. This fixes an infinite loop
when the kernel attempts to unwind through this function.

The .fnstart and .fnend in this function should be moved to macros but we
are currently missing an END macro on ARM.
Update how we read the stack pointer to work on both GCC and clang.
Fix a typo where db_printf was spelt printf.