Changed swi to specify destination register for return address

Storing the return address is all that is needed to implement
software based interrupts. The actual swi does not need to be
stored and can actually be accessed like so:

inthandler:
    ld r0,r5-$1
    ; r0 now contains the swi instruction