This actually is very simple. gcc provides the means to mark a function as an interrupt service routine, namely __attribute__(interrupt)
__attribute__(interrupt)