@picknick. Latürnich Ich Depp.

@Sprinter: Mit dem Push meinte ich die Parameterübergabe über den Stack. R24 kann ja beliebig verwendet werden.

Was ist denn an meinem Vorschlag
Code:
void _VECTOR(2)( void )  __attribute__ ((naked));
void _VECTOR(2)( void )
{
   foo(2);
    __asm__ __volatile__ ("reti" ::);
}
auszusetzen? Kleiner ist der Assembler Code kaum zu bekommen.
Das funktioniert auch für mehr als zwei ISRs und die aufgerufene Funktion foo() weiss, von welcher ISR der Aufruf stammt.

BTW. RJUMP wird, da die maximale Sprunglänge begrenzt ist, nicht immer funktionieren.