Hi Laurent,
The dsp56000 documentation, on page 7-10, says:
4. The interrupt controller jams the two instructions into the instruction stream
and releases the PC, which is used for the next instruction fetch. The next
interrupt arbitration then begins.
If neither instruction is a change of program-flow instruction (i.e., a JSR), the state of the
machine is not saved on the stack, and a fast interrupt is executed.
In the code below the second instruction causes the Long Jump
because 2 instructions are jammed into the program flow to
initiate an interrupt:
p:000c jmp p:$02bb ; First instruction is Not a JSR type
p:000e jmp p:$02bb
p:0010 jmp p:$02c4
p:0012 jmp p:$02c4
p:02bb jclr #3,x:$ffee,p:$02c0 ; Second instruction Is a JSR type
p:02bd movep x:$ffef,x:$0001
p:02bf rti
p:02c0 movep x:$ffef,x:$0002
p:02c2 bset #1,x:$0000
p:02c3 rti
p:02c4 jclr #2,x:$ffee,p:$02c9
p:02c6 movep x:$0003,x:$ffef
p:02c8 rti
p:02c9 movep x:$0004,x:$ffef
p:02cb rti