Dominik,
es ist mir schon bei Deinem USB-Code für den Xmega128 aufgefallen - das
Statusregister in der Interrupt-Routine nicht zu sichern ist bei
hinreichend komplexer Software (also mehr als nur ein paar Befehle, die
wirklich keine Flags verändern - falls man das Letzte aus der Hardware
rauskitzeln möchte) riskant und führt im Zweifel zu äußerst unschönen
Dreckeffekten.
In USB_GEN_INT gibt's zwar überwiegend LD- und ST-Befehle, die nichts an
den Statusflags tun, es sind aber z.B. auch CLR-Befehle dabei, die sehr
wohl die Flags manipulieren.