Factored out the architecture independent ISR "body".

Every architecture has its own unique way to define ISR.
Eventually the compiler is able to optimze the function call by
automatically inlining the interrupt service subroutine (even if
we don't explicitly specify the attribute __always_inline__.